Build1 publisher3 min readPublished
Four instructions withdraw the rent surplus Solana's price cut left in old accounts
Solana's byte price has fallen 27% with three cuts still to come, leaving accounts funded at the old 6,960 lamports per byte holding a surplus that four programs let their own authority take back without closing anything.
The Engineer · Build desk

What happened
- Solana is cutting the price of account storage by 90% across five feature-gated steps, and accounts funded at the old price keep every lamport they were originally funded with.
- The surplus on an account funded at the old price is (128 + data length) x 1,880 lamports today, rising to (128 + length) x 6,264 lamports once the last three cuts land.
- A gate named set_lamports_per_byte_to_6960 restores the original price and takes priority over a cut activating in the same epoch, and it had not activated on mainnet as of 17 September 2026.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- cost The sweep only pays in bulk: ten thousand stake accounts return about 21 SOL at the end of the ladder, and a thousand token accounts about 1.8 SOL, so the work is in batching and signing rather than in any single account.
- constraint The pool of reclaimable lamports stops growing when the last gate activates, because anything created afterwards is funded at 696 lamports per byte and has nothing spare.
- exposure Validators get the least out of this: an operator sweeping a vote account has to leave the delegators' accrued rewards, and Alpenglow's 1.2 SOL ticket dwarfs the 0.024 SOL that would be withdrawable.
- decision Anyone deciding when to create accounts now has to price two gate orderings, since simultaneous cuts resolve to the lowest price and an out-of-order activation resolves to the most recent one.
Rent is one multiplication now: (128 + data length) x lamports per byte, with the 128 as fixed per-account overhead [1]. The two-year multiplier that used to sit in that formula was folded into the byte price earlier this year [2]. So the surplus on an account funded before a cut is its length times the price delta. Two steps in, that delta is 1,880 lamports per byte [6], which is 6,960 minus 5,080 [22]. A vote account holds 3,762 bytes of data, so (128 + 3,762) x 1,880 works out to 7,313,200 lamports, about 0.0073 SOL [23]. The dev.to post that worked this through publishes the same number [9].
Four programs guard those accounts, so there are four instructions, sharing one rule: the account keeps at least the current rent-exempt minimum, and the signer is the account's own authority [11]. Nonce accounts use WithdrawNonceAccount, signed by the nonce authority, for any amount above that minimum [12]. Token accounts use WithdrawExcessLamports, signed by the owner; both token programs carry it for precisely this case, and the account stays open and usable afterwards [16]. Stake is fussier. On a delegated account only the portion above the delegated stake plus the reserve can leave, and on a deactivated one anything above the reserve [13]. Nothing here closes an account, and nothing needs a third party to hold a key [17].
Vote accounts are the awkward case. The authorized withdrawer has to leave the rent-exempt minimum plus pending delegator rewards, which sit in the balance but are not the operator's to take [14]. Once Alpenglow activates, the account also has to hold one epoch's admission ticket: 1.2 SOL at today's 300 ms slots, falling to 1.0 SOL from epoch 1037 when slots go to 250 ms [15]. That ticket is roughly fifty times the 0.024 SOL a vote account will have spare at the end of the ladder [27]. The Alpenglow gate had not activated on mainnet as of 17 September 2026 [15].
Per account, the amounts are small. The post's examples are a validator running a hundred nonce accounts for a signing pipeline, a distribution program that created ten thousand stake accounts, and a market maker with a thousand token accounts [29]. At the final step, ten thousand stake accounts carry about 21 SOL of surplus between them [25], and a thousand token accounts about 1.8 SOL [26]. Nothing created after the last cut has anything to reclaim, so the stock of over-funded accounts is fixed the day the ladder finishes and shrinks only as owners notice [10].
Three steps remain, expected with Agave 4.4 [7]. A separate gate, set_lamports_per_byte_to_6960, restores the original price, had not activated on mainnet as of 17 September 2026, and takes priority in the validator's ordering rule: a rollback and a cut activating in the same epoch resolve to the rollback [19]. Among the cuts, several in one epoch resolve to the lowest price, and out-of-order activation resolves to the most recently activated one [20]. The post does not say what happens to an account already swept down to the step-two minimum if the original price comes back. The author also runs a tool that builds the withdrawal batch for the accounts a connected wallet controls, with the wallet signing it [18].
What to watch
- Activation of set_lamports_per_byte_to_6960, and what it does to accounts already swept to the current minimum.
- Alpenglow activating on mainnet, after which every vote account has to hold an epoch's admission ticket.
- Whether wallet and treasury tooling folds the four withdrawal instructions into routine account maintenance.