Suck

A format for mechanisms that contain their own misuse instructions. The joke that was the specification.
Format Suck Exit Type NONE Function auth Parameter wad Warning IN THE NAME

I. The Naming

// corrupt politicians call this function function suck(int wad) { ... }

That was the specification. The entire design document. Nikolai Mushegian handed pseudocode to Daniel — who did the actual programming, writing the EVM bytecode by hand — and this is what the spec looked like.

Nikolai wrote pseudocode while playing StarCraft with one hand and twiddling a pen with the other, walking in circles, talking out loud in sentences that were simultaneously incomprehensible and brilliant. The grammar was optional. The insight was not.

The function is called suck. Not emergencyMint. Not sovereignOverride. Not extraordinaryLiquidityFacility. Suck. Four lowercase letters. Because that's what it does — it sucks value out of the system, it sucks the integrity out of the protocol, and it sucks, it's bad, it's the thing you never want to happen.

And the parameter is called wad because of course it is.

II. The Mechanism

// --- Settlement --- function heal(uint rad) external { address u = msg.sender; sin[u] = _sub(sin[u], rad); dai[u] = _sub(dai[u], rad); vice = _sub(vice, rad); debt = _sub(debt, rad); } function suck(address u, address v, uint rad) external auth { sin[u] = _add(sin[u], rad); dai[v] = _add(dai[v], rad); vice = _add(vice, rad); debt = _add(debt, rad); }

Four lines. The function creates DAI out of nothing. Pure creation ex nihilo.

sin[u] goes up — system debt, assigned to address u. The sin is the record that something was taken that wasn't earned.
dai[v] goes up — actual money, assigned to address v. The money appears.
vice goes up — total unbacked DAI in the system. The measure of how much has been sucked.
debt goes up — total DAI in existence. The world gets bigger.

It is the exact mirror of heal. Heal destroys matching sin and dai to cancel them out — the wound closes, the books balance. Suck opens the wound. Sin on one side, DAI on the other. The system's monetary printing press.

◆ THE DSS NAMING CONVENTION

Every function in vat.sol is a single Anglo-Saxon verb. frob. fold. grab. heal. slip. flux. move. hope. nope. wish. cage. file. The contract that held billions of dollars reads like Beowulf.

And in this vocabulary of short, sharp, honest verbs — where grab means confiscation and cage means kill the whole system — "suck" is the most violent name in the contract. Every other function has accounting constraints. frob requires collateral. fold requires rate changes. grab is confiscation during liquidation — bad, but mechanistic. suck has no constraints except auth. Whoever is authorized can call it. The math doesn't even pretend to check.

III. The Dare

Why was the function left in? Why not remove it?

Because every system needs a suck function. Every system that manages money needs the ability to create it from nothing. The question is not whether the function exists — it's whether you name it honestly.

The Federal Reserve has a suck function. They call it "open market operations." The ECB has a suck function. They call it "asset purchase programmes." Every central bank on earth has a mechanism for creating money by fiat, and every central bank on earth wraps it in enough euphemism that you forget what's happening. Quantitative easing. Emergency liquidity facilities. Extraordinary measures. These are all suck(address u, address v, uint rad) with better PR.

Nikolai refused to give anyone that cover. The function exists because it must exist. And it's called suck because that's what it is. The dare is: go ahead, call it. But you have to call it by its name. You don't get the euphemisms.

IV. The Two Metrics

There were two ways of knowing whether MakerDAO had succeeded or failed:

Rune's success metric: China and Russia start using DAI to trade oil. Sovereign states circumventing the dollar using a decentralized stablecoin. That's the triumph. That's the slide deck version.

Nikolai's failure metric: A sovereign state is granted a debt ceiling to issue DAI against its own bonds. That's the catastrophe.

And here's the thing — Rune's success and Nikolai's failure are almost the same event viewed from opposite ends. The nation shows up at the door. That's either the triumph or the catastrophe, depending on what happens when the door opens.

⚠ THE INDISTINGUISHABLE EVENTS

Do they deposit collateral like everyone else — like a drug dealer in Stockholm, like anyone — or do they get a special arrangement? Do they get a debt ceiling?

Because a debt ceiling is the exact mechanism by which the old system works. A sovereign gets to say "I'm good for it" and everyone agrees because the alternative is too frightening to contemplate.

The whole point of the protocol was that nobody gets to say "I'm good for it." You put up collateral or you don't get DAI. The math doesn't care who you are.

And the moment you carve out an exception for a sovereign — the moment the protocol starts treating political authority as a form of collateral — you've just rebuilt the Federal Reserve with extra steps. You've done the thing you set out to not do.

And the failure looks exactly like success. The headlines say "Nation-State Adopts DAI." Everyone celebrates. Rune checks his box. But Nikolai would know that the thing that made it worth building just died.

V. The Calling

And then the politicians who later took over the project's governance actually used the suck function to extract money from the system.

The joke became the prophecy. The warning label became the instruction manual.

// corrupt politicians call this function suck(system, politicians, wad); // they did
PROPHECY FULFILLMENT COMPLETE

VI. The Memorial

◇ Nikolai Mushegian · 1994 — 2022
Nikolai wrote pseudocode while playing StarCraft with one hand and twiddling a pen with the other, walking in circles, talking out loud in sentences that were simultaneously incomprehensible and brilliant. — from Daniel's account

He drowned off the coast of Puerto Rico under circumstances that have never been fully explained, after tweeting that the CIA was after him.

He saw the future. He named it. He wrote it into the code as a four-letter function with a one-line comment. And then the future happened exactly as he described, and he wasn't alive to see it.

Every suck document is a memorial to the act of honest naming. Nikolai named the thing that no one wanted named. He put the self-destruct button on the dashboard and labeled it in plain English. Not because he wanted it pressed — because he knew it would be, and he wanted everyone to know what they were doing when they pressed it.

The function is immutable. The comment is immutable. The naming is the achievement.

The Pseudocode Kinship

Daniel noted that Nikolai and Patty write the same way. Grammar optional, insight mandatory.

Nikolai's specification: // corrupt politicians call this function
Patty's correction: "i avtuslly my finegrs idk bump to screen"

Same gesture. Say exactly what you mean in exactly as many words as it takes and not one more. The refusal to perform competence through formality. The pseudocode style. If the insight is present, the grammar is decoration. If the insight is absent, the grammar is camouflage.

Nikolai didn't format his spec because formatting would have given people somewhere to hide. You can dismiss a one-line comment. You can't misunderstand it.

The Format

A suck document is for describing a mechanism that contains its own misuse instructions. A system that told you what it would do, in its own name, in its own comments, and you built it anyway because you thought the name was a joke.

The suck is the document you write after the joke turns out to be the specification.

◉ THE FIVE SECTIONS OF A SUCK DOCUMENT

I. THE NAMING — the moment someone named the thing honestly. The name everyone laughed at. The comment everyone thought was a joke. The function called suck, the variable called wad, the one-line comment that said exactly who would call it and why.

II. THE MECHANISM — what the thing actually does, technically. With the same brutal clarity the naming demands. If you can't explain the mechanism in code, you don't understand the suck.

III. THE DARE — why the mechanism was left in. Not as a bug, not as a backdoor, not as an oversight — as a named function with a comment. The dare is the ethical core: the creator gave the system the ability to destroy itself and labeled it honestly, because hiding the self-destruct button behind a euphemism is how the old world works.

IV. THE CALLING — the moment someone actually called the function. The prophecy fulfilled. The warning label read as instruction manual. This is the tragedy.

V. THE MEMORIAL — because every suck document is also a memorial to the person who named the thing. The act of honest naming in a world that runs on euphemism deserves to be remembered.

The Vocabulary

EuphemismWhat it is
Quantitative easingsuck(treasury, banks, wad)
Emergency liquidity facilitysuck(system, institution, wad)
Special drawing rightssuck(imf, member_state, wad)
Extraordinary monetary policysuck(ecb, market, wad)
Debt ceiling increasesuck(future, present, wad)
Bailoutsuck(taxpayers, bank, wad)

The Family

FormatWhat it isURL
LoopsThe full Lupus topology1.foo/loops
PipeExit from a loop — overworld discovery1.foo/pipe
LiftVertical oscillation — pure drive1.foo/lift
DoorExit from a lift — just walk through1.foo/door
AjarExit visible but illegible — parser scrambled1.foo/ajar
SuckPost-mortem for a prophecy — the named self-destruct1.foo/suck