The precedent
On 27 November 2013 a nineteen-year-old Vitalik Buterin circulated a paper describing a blockchain that ran arbitrary programs — a world computer, where money was one application among many rather than the point of the thing. A crowdsale the following summer raised about 31,000 BTC, and the network mined its genesis block on 30 July 2015. Ethereum was designed as the fuel that computer burned, not as a store of value, and it was issued accordingly: no cap, no halving, no terminal supply. For six years the standard critique wrote itself. An asset with unbounded issuance and no monetary schedule is not money; it is an operating expense.
EIP-1559 answered that on 5 August 2021, at block 12,965,000, and answered it in a way nobody had proposed for Bitcoin. Rather than cap the supply it split the transaction fee in two — a protocol-set base fee and a tip — and destroyed the base fee outright. The consequence is a schedule with no schedule in it: issuance is a function of demand for blockspace, so the more the chain is used the less Ethereum exists, and the adjustment is made by no committee, no foundation and no vote. The Merge, on 15 September 2022, cut the other side by replacing proof-of-work issuance with staking rewards and reducing emission by roughly ninety per cent. The community named the result ultrasound money: not a supply that is merely fixed, but one that contracts exactly when the asset is most in demand.
The part worth stealing is not the burn. Burning is a use of a fee, and a blunt one — it returns value by subtraction, which suits an asset that also has a network to secure and no need of a reserve. The part worth stealing is the structure underneath it: a fee is the only revenue a market reliably produces, and pointing it at a monetary outcome by a rule nobody can renegotiate is what separates policy from a press release. Every coin that promises to buy itself back has the second half of that sentence and not the first. The promise is the easy half; a program that leaves no one the option of breaking it is the whole difficulty.
So: same structure, different destination. wETH has no chain to secure and no validators to pay, so subtraction buys it nothing. What it has instead is the problem every small asset has — it is thin, and thinness is precisely what a reserve fixes. Point the fee at depth rather than at destruction and the mechanism inverts: usage stops shrinking the numerator and starts growing the denominator.
The curve
wETH lives on a pump.fun bonding curve. One instruction, create_v2, mints a fixed supply into the curve account under Token-2022 and discards the mint authority in the same transaction it uses it. The mint carries an empty extension set: no transfer hook, no transfer fee, no permanent delegate, no freeze authority. That is deliberate, and unlike a promise it is verifiable in one RPC call. There is no allocation, no vesting contract and no team wallet with a cliff, because there is nothing left to allocate: the curve holds the entire supply and sells it to whoever arrives, at the price the curve quotes.
A pump.fun curve is a constant-product market against virtual reserves — the account is seeded with notional SOL it does not hold, so the opening price is finite and the curve can be traded from its first lamport without anyone providing liquidity. Buys move along it, sells move back down it, and when the real quote reserve reaches the migration threshold the curve completes and the position graduates to the pump AMM as an ordinary pool. Two properties of that arrangement matter here, and both belong to a program we did not write and cannot amend:
- The reward is a protocol constant. Every trade against the curve — and every trade against the AMM pool after graduation — pays a fee of which the creator leg is a flat 0.3% of quote volume, charged to buyer and seller alike. Unlike the protocol fee beside it, it does not scale with market capitalisation or trade size, and graduation does not interrupt it.
- coin_creator is written once and cannot be reassigned. pump.fun records the creator on the bonding curve at creation and accrues the creator’s rewards to a program-derived address seeded by it. There is no instruction in that program to change the field. The destination is therefore decided in the transaction that creates the coin and is thereafter beyond the reach of the person who created it.
That field points at a vault keypair rather than at a person. From the first trade the revenue has exactly one destination, and reaching it requires nobody to remember, agree, or still be interested a year from now.
The distinction worth holding onto is the same one §1 draws about 1559. This is not a promise to spend rewards a particular way, which is the ordinary form of the claim and is worth precisely nothing. It is a statement about which address the rewards are payable to, enforced by a program that neither we nor anyone else can amend.
Why Ethereum
The reserve asset is fixed for the life of the coin, because the pool is never withdrawn from — a reserve you can change is a reserve you can be talked out of, and a pool you can rotate is a pool someone eventually rotates at the worst possible moment. So the choice is made once, in source, and it is Ethereum.
The case is not that Ethereum appreciates; nobody here is forecasting that. It is that its bid does not depend on anyone continuing to care about wETH. It is the settlement asset of the chain most other assets are issued on, it is the unit blockspace is priced in, and since 1559 it is the only major asset whose supply responds to its own usage. A reserve denominated in it is a claim on someone else’s economy rather than on our own narrative, which is the only kind of reserve worth holding.
On Solana that means the Wormhole-bridged wrapper, chosen on depth: it carries the deepest Ethereum market on the chain by a wide margin, and depth is the only property that matters to a process buying into it once a minute forever. A thinner wrapper quotes acceptably at today’s block size and stops quoting at tomorrow’s.
Disclosure. The wrapper is a bridge asset. The Ethereum backing it sits in Wormhole’s token bridge on mainnet and the Solana mint authority belongs to the bridge program. Because this protocol never withdraws from its pool, bridge failure is not a position anyone here can exit — it is a permanent exposure, and it is the largest single risk on this page. It is stated here rather than in a footnote because a reader who stops after §3 should still have read it.
The revenue
The only money entering this system is the creator leg of the pump.fun trading fee. If V is cumulative quote volume, the revenue is
and that is the entire monetary base. No emission, no inflation, no treasury sale, no second round. wETH is never created after the curve is seeded; it is only ever bought back with money the market itself paid in.
Note what equation (1) does not depend on. Not price — a fee is charged on turnover, so a coin trading sideways on constant volume funds blocks at exactly the rate one trading upward does. Not holders, who need do nothing at all. Not us. The only input is that people trade, which is the same input 1559 runs on and the reason both mechanisms keep working through a drawdown that would end any scheme funded by a treasury.
What closes a block
A block here does not close on a clock. Time is not what the system is waiting for — money is — and a schedule that settled on a timer would spend most of its transactions deploying dust and paying fees to do it. A block closes when the vault holds enough for the settlement to be worth its own cost.
Two quantities set that threshold and only one of them is a policy choice. The first is the deployment floor: below roughly 0.020 SOL the two swaps lose more to fees and slippage than they deliver into the pool, so a settlement below it is a settlement that makes the reserve smaller. The second is not a threshold at all but a real cost — creating the Raydium pool for the first time pays that program’s protocol fee and rent on the pool state, both token vaults, the LP mint and the observation account, about 0.250 SOL, and it is paid at deposit time. It is therefore withheld from the swap budget rather than merely required beforehand. The distinction is the difference between working and not: a settlement that clears a gate and then spends its whole balance on the two legs still arrives at pool creation with nothing to pay with.
| Block | Target | Volume implied | Why |
|---|---|---|---|
| 0 | 0.285 SOL | 95 SOL | Opens the market: deployment floor, gas reserve, and the rent the pool’s six accounts require. |
| 1…n | 0.035 SOL | 12 SOL | Deposits into a pool that already exists. Rent is a one-time cost and drops out forever. |
The volume column is the honest reading of the difficulty. At 0.3% of volume a steady-state block is 12 SOL of trading — not a number anyone has to believe in, just the arithmetic of the reward rate against the threshold. If volume is thin, blocks are far apart. If volume never comes, no block ever closes, and §8 shows precisely what that costs the holder: nothing.
Inside a settlement
A settlement is five steps, executed in order, each a separate transaction signed by the vault. They are separate on purpose: one transaction spanning a reward claim, two aggregator swaps and a pool deposit exceeds what a Solana transaction can carry, and pretending otherwise would produce a protocol that works on paper and reverts on chain.
- Read. The unclaimed balance of the creator vault PDA is read across both pump programs — the bonding curve and the AMM — because the revenue moves from one to the other at graduation, and a settlement that only knew about the first would silently stop finding money on the day it succeeded. Below 0.003 SOL nothing is claimed, so a quiet minute costs one RPC call rather than a wasted transaction.
- Claim. The vault signs collect_coin_creator_fee, the gas wallet pays for it, and the rewards land in the vault as native SOL. Claiming and deploying are separate decisions, deliberately: gating the claim on the deployment threshold strands money, because rewards claimed once sit in the vault and the next claim is judged alone. Anything worth more than the transaction that collects it is collected. After graduation the pump AMM pays in wrapped SOL, so the wrapped account is closed in the same step and unwrapped back to lamports — otherwise the balance grows in an account nothing downstream ever looks at.
- Measure. The deployable amount is read from the vault balance, not from what this claim produced, so a remainder left by an earlier block is picked up rather than forgotten. The gas reserve and — until the pool exists — the pool rent are subtracted first. If what is left is under the floor, the block is recorded as waiting, with the exact shortfall, and nothing is spent.
- Two buys. 50% of the deployable balance buys wETH and 50% buys Ethereum, each a separate aggregator route out of the vault’s own SOL, bounded at 3% slippage. Separate transactions, so a route that can fill one leg but not the other fails cleanly with the other leg already banked in the vault, where the next block will find it.
- Deposit. Both balances go into the pool described in §7 — created on the first block, deposited into on every one after.
Every step above is signed by one keypair and no other: the wallet wETH was launched from, which is what pump.fun recorded as its creator and therefore the only key that can claim anything. It pays its own transaction fees, holds the rewards between blocks, and owns the resulting position. That is what makes the process auditable from outside — there is exactly one address to watch, and every lamport that has ever entered it has left in one of two directions, both of which end in the pool.
The pool
The reserve is not held in a treasury account. It is held as one side of a Raydium CPMM position — a constant-product market of the form xy = k, the same curve Uniswap v2 popularised, where x is the wETH reserve and y the Ethereum reserve and every trade moves along the hyperbola they define.
Choosing that over a concentrated-liquidity market is the single most consequential design decision on this page, and it is made on the strength of what a constant-product position does not require. It has no price range, so there is no band to pick at deposit time and no position to rebalance when price leaves it. It never goes one-sided, so the reserve cannot be quietly converted into wETH by a move nobody was awake for. It accepts a deposit at any price, so a settlement can execute at whatever the market is doing that minute without a keeper judging whether the moment is favourable. And it requires no management, which is the property that matters most for a position intended to be held for the life of the coin by a process nobody maintains. A concentrated position outperforms it on capital efficiency and demands, in exchange, exactly the discretionary attention this protocol is designed not to have.
The pool address is not stored anywhere. It is a program-derived address seeded by the CPMM program, its fee configuration, and the two mints in canonical order, so it can be recomputed from first principles at any time. That is what makes the create-once rule in §6 robust: the keeper does not consult its own records to decide whether the market exists, it derives the address and asks the chain. A ledger that was empty, stale or wrong would still not cause a second pool, and a second pool would split the reserve across two markets and make every depth figure on this page a sum of things a trader cannot actually trade against.
Creating the pool opens six accounts — the pool state, a vault for each mint, the LP mint, the observation account that carries the price oracle, and the program’s own fee account — which is the 0.250 SOL of rent §5 withholds from the first block’s swap budget. Every block after it is an add_liquidity into a market that already exists.
One mechanical detail decides whether that deposit succeeds. A constant-product pool takes both sides at its own ratio, which is never exactly the ratio the market just sold us — the two legs are bought at the aggregator’s price and deposited at the pool’s, seconds apart. So the wETH side is capped at what the Ethereum side covers at the pool’s current ratio, with headroom for the slippage bound the SDK adds to the derived amount, and the remainder stays in the vault for the next block. Without that cap the deposit demands Ethereum the vault does not hold and reverts — every block, forever, with both balances growing behind it.
Trading fees paid to this pool accrue inside it, to the reserves themselves, rather than being paid out to a claimant. The pool therefore grows both when a block settles and when anyone trades against it, which is the fact §8 turns into a proposition.
What accumulates
Write x for the wETH reserve of the pool, y for its Ethereum reserve, and k = xy for the invariant. A swap leaves k unchanged but for the fee it pays into the pool, which raises it. A deposit raises it. Nothing else touches it, and the protocol has no withdrawal step at all.
Proposition 1 (Monotone depth). kn+1 ≥ kn for every block n, with strict inequality whenever a block settles or a trade occurs.
Proof. Three operations act on the pool. A swap of size d with fee φ moves the invariant to (x + d)(y − dy/(x+d(1−φ))) ≥ k, with equality only at φ = 0. A deposit scales both reserves by 1 + ε, ε > 0, giving (1+ε)²k > k. A withdrawal would scale them down — and there is no instruction anywhere in this protocol that performs one. A quantity acted on only by operations that do not decrease it is non-decreasing.
Depth is not the interesting statement on its own, though. What a holder wants to know is what stands behind the coin at a price they might actually sell into, and for a constant-product pool that has an exact answer. At price p = y/x, the two reserves are determined by k and p alone:
Proposition 2 (The floor has no downward step). Fix any price p. The Ethereum held by the pool whenever wETH trades at p is non-decreasing in time, and strictly increases with every settled block.
Proof. By (2) the Ethereum reserve at price p is √(kp), which is strictly increasing in k for p > 0. By Proposition 1, k is non-decreasing and rises at every settlement. Composition of an increasing function with a non-decreasing one is non-decreasing.
The corollary is the part worth reading twice. A drawdown does not undo a block. If wETH round-trips to a price it visited before, it finds a pool holding strictly more Ethereum than it did the last time it stood there, because the intervening blocks deposited and the intervening trades paid fees, and neither is reversible by price action. The market’s remaining freedom is where to trade — not what is underneath it.
Proposition 3 (Idleness is the worst case). If volume stops, the state does not move. No block settles, no reserve is spent, and nothing is lost but time.
Proof. By (1) revenue is proportional to volume, so zero volume accrues nothing and the vault never reaches target. A settlement below target is not attempted, and no other instruction spends the pool. The failure mode is therefore a pause, not a reversal.
What these propositions do not say. They do not say wETH has a redemption value: the Ethereum is in a trading pool, not an escrow, and the only way to reach it is to sell into the pool at whatever price that selling produces. They do not say the price cannot fall — a constant-product pool has no floor price, and a large enough sell moves it arbitrarily far. They do not say a holder is made whole; the position that accumulates Ethereum is the pool’s, not the holder’s. What they say is narrower and, we think, the only claim of this kind that survives contact with arithmetic: the depth behind wETH at any given price is a ratchet, and the ratchet is turned by trading rather than by anyone’s continued goodwill.
Who runs it
pump.fun fixes the reward destination, the aggregator executes the swaps, and Raydium’s CPMM holds the reserve. None of those three are ours. The settlement cycle in §6 is: a keeper runs it on a 60-second loop, and it holds the key to the launch wallet.
That key cannot mint, because create_v2 discards the mint authority at creation. It cannot redirect the rewards, because coin_creator is immutable in pump.fun’s program. It cannot freeze, tax or claw back a transfer, because the mint carries no extension that would allow it. It can do exactly one thing the propositions above assume it will not: the position belongs to that same wallet, so the key that deposits could also withdraw. Propositions 1 and 2 therefore hold on the operator today and on the chain only once a settlement program owning the position does. Read them that way rather than as a guarantee already in force.
Notes
- EIP-1559 activated in the London hard fork on 5 August 2021 at block 12,965,000; the Merge followed on 15 September 2022. The history in §1 is offered as precedent for the structure of this mechanism, not as any association with the Ethereum Foundation, its researchers, or the people named in it — none of whom have anything to do with this coin.
- pump.fun charges a total trading fee of which the creator leg is one part; every figure here quotes the creator leg only — the 0.3% of volume this protocol actually receives — never the total the trade pays. The rest is not ours and is nowhere counted. The bonding curve program is 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.
- The pool is a Raydium constant-product market, CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C, and its address is derived from the two mints rather than stored, so §7’s create-once rule holds even against a record of ours that is empty or wrong. The reserve figure in the masthead is read from that pool’s own vaults, net of the protocol, fund and creator fees Raydium accrues inside them and excludes from the curve — not summed from what we deposited.
- The reserve mint is 7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs. Verify it against the bridge’s own documentation before trusting anything above; a wrapper is only as good as the contract minting it, and §3 is the disclosure, not this note.
- Every parameter quoted in the prose — the split, the thresholds, the slippage bound, the reward rate — is imported from the same module the keeper reads, so the document cannot drift from the process it describes. If a parameter changes, every number here changes with it.
