Unspendable balances on Cardano, Bitcoin & Solana Vol. 2

How it works on Bitcoin & Solana & How to reclaim your tokens

In part one of this series Cardano and Midnight: Origin Stories, we introduced the economics and security mechanisms blockchain systems put in place to prevent compute and storage abuse, and encourage the use of the blockchain for valuable use cases and not spam.

Tldr; they force you to lock up tiny amounts of token.

That article focuses on how you can reclaim those tiny amounts as they start to add up and are no longer needed to be locked up. That article also most focused on the exact technical mechanism and reason behind them the Cardano blockchain uses to protect the chain and make using it fair for every one.

This article looks at other popular blockchains in contrast to Cardano approach, their technical approaches and how you can reclaim your locked tokens if you interact with these systems.

Every blockchain that stores information has to solve the same underlying problem: how do you stop people from filling node resources for free? Bitcoin and Solana each have their own approaches, and comparing them reveals why Cardano’s approach lands where it does.

Bitcoin

Bitcoin’s UTxO model predates Cardano’s by over a decade, and its minimum output rules reflect that era’s simpler priorities. Bitcoin enforces what is called a dust limit. Dust is a minimum output value below which most nodes on the network will refuse to relay a transaction. Rather than being tied to data size the way Cardano’s minimum Ada is, the dust limit is defined economically: an output is “dust” if it would cost more than a third of its own value in fees to spend later.

The rule arrived in 2013. Bitcoin’s earliest releases only had a crude check that rejected zero-value outputs; the dust concept proper was introduced by Gregory Maxwell that April and refined into the IsDust function by Gavin Andresen a few months later, shipping in the 0.8.x series. The formula assumes a standard pay-to-public-key-hash (P2PKH) output of 34 bytes that needs a 148-byte input to spend, and at the default minimum relay fee of 1,000 satoshis per kilobyte, that math lands on 546 satoshis as the threshold for a normal output.

It is worth sitting with how small 546 satoshis actually are. When the limit was introduced in 2013, Bitcoin traded around $100–130, which put 546 satoshis at roughly $0.0007, less than a tenth of a cent. Even as Bitcoin climbed, the figure stayed tiny: about half a cent when BTC first touched $1,000, around eleven cents at the 2017 peak near $20,000, and roughly $0.33 today with BTC near $61,000. At Bitcoin’s all-time high it brushed about $0.70. The threshold is fixed in satoshis, so its dollar value floats with the price. Across Bitcoin’s entire history it has never amounted to more than pocket lint, which is exactly the point.

That 546-satoshi figure applies to legacy (P2PKH) outputs, the original address format. When Segregated Witness activated in 2017, it restructured transactions so that signature (“witness”) data is discounted in size calculations. Because a native SegWit (P2WPKH) output is cheaper to spend, the cost-to-spend side of the dust formula shrinks, and its threshold drops to around 294 satoshis. Taproot outputs are lower still. So the “dust” boundary actually depends on the address type you are using. A modern SegWit wallet can hold and move smaller amounts than the classic 546-satoshi rule of thumb suggests, though the difference is academic at these scales.

The deeper difference is that Bitcoin has no native token layer at the base protocol level. Every Bitcoin UTxO holds only satoshis and a spending condition. The UTxO set is large but its entries are compact and uniform. There are no policy IDs, asset bundles, or datums to inflate the byte count. Bitcoin’s dust limit is therefore a single flat threshold rather than a dynamic formula, and in practice it is low enough that it rarely affects users in meaningful ways.

The emergence of Ordinals and BRC-20 tokens on Bitcoin has introduced a new wrinkle. Ordinal inscriptions embed arbitrary data into satoshis, effectively creating NFTs by associating satoshis with inscription content. BRC-20 tokens track balances through a system of JSON inscriptions. Neither of these is enforced at the protocol layer the way Cardano’s native tokens are. The “minimum” holding required is simply the dust limit on the satoshis carrying the inscription, a tiny amount, because Bitcoin’s protocol does not natively recognize these constructs. The tradeoff is that these token standards are fragile and dependent on centralized servers to be useful, whereas Cardano native tokens are first-class citizens the protocol itself validates and enforces.

Freeing up your sats

Locked Ada on Cardano and dust on Bitcoin rhyme, but they are not the same animal. Cardano’s minimum Ada is locked by protocol–the network will not let you move it independently of the token it is attached to. Bitcoin dust is not locked by any rule; it is stranded. The satoshis are fully yours and fully spendable, but the fee to spend a tiny output on its own can equal or exceed what the output is worth, so it sits in your wallet untouched. Freeing it up is less about unlocking and more about timing and bundling.

Wait for low fees, then consolidate
Bitcoin fees swing with network demand, priced in satoshis per virtual byte. During quiet periods, sweeping a pile of small UTxOs into a single larger one becomes cheap enough to be worth it. This is the cleanest way to reclaim scattered dust: combine many small outputs into one while the mempool is calm, and you pay a minimal fee to recover the lot.

Batch dust into a payment you’re already making
The next time you send bitcoin for any reason, you are paying a fee regardless. Adding your dust UTxOs as extra inputs to that transaction sweeps them up at little or no marginal cost, the dust rides along on a transaction you were going to broadcast anyway.

Use coin control to do it deliberately
Wallets like Sparrow and Electrum expose coin control, letting you hand-pick which outputs a transaction spends. This lets you target dust specifically and consolidate on your terms, rather than hoping the wallet’s automatic coin selection happens to mop it up.

Send it to an exchange
Much like the Cardano approach of sending tokens to a centralized exchange, you can deposit small amounts of bitcoin to an exchange account, where they are pooled into the platform’s wallet and credited to your balance. Once aggregated, the value is freely tradable or withdrawable. The caveat is the same as on Cardano, and then some: many exchanges enforce a minimum deposit, and amounts below it can be ignored or lost, so check the threshold before sending anything tiny.

For inscriptions, move the asset, not the sats
If your dust is carrying an Ordinal inscription or BRC-20 balance, the value lives in the inscription, not in the satoshis underneath it. Blindly consolidating here is dangerous: you could spend a rare or inscribed sat as a network fee and destroy what made it valuable. Use a sat-aware wallet to isolate inscription-bearing outputs, and to realize the value, sell or transfer the inscription on a marketplace. The carrier sats travel with it, the same way locked Ada travels with a Cardano native token.

One caveat: dust is only worth recovering in bulk. If a single output holds 546 satoshis and it would cost 800 to spend it, chasing that one output loses you money. The trick is to let dust accumulate and sweep it all at once when fees are low, turning a dozen stranded scraps into one clean, spendable UTxO.

Solana

Solana takes the opposite architectural approach from Cardano and Bitcoin. Rather than tracking ownership through unspent outputs, Solana uses an account model: every piece of state on the network lives in a discrete account with its own address, and accounts must maintain a minimum SOL balance to stick around. Every token and NFT, including unsolicited airdrops, when they are sent to your wallet auto-creates their own Associated Token Account (ATA), each with their own minimum per ATA. This minimum is called rent exemption, and it applies to every account on the network.

Why is it called “rent.”
Solana originally charged accounts a recurring fee (rent) deducted over time, and you avoided it by holding a balance large enough to be “exempt.” That recurring model has since been phased out, so today every account must simply be funded to the exemption threshold at creation, a refundable deposit, not an ongoing charge.

Rent exemption threshold
The rent exemption threshold is proportional to the size of the account’s data, just as Cardano’s minimum Ada is proportional to UTxO size. For a basic Solana token account, the structure that holds a user’s balance of a specific token. The rent exemption requirement is approximately 0.002 SOL.

A user who holds 20 different tokens on Solana has 20 separate ATA, each with its own 0.002 SOL deposit locked inside it, totaling around 0.04 SOL. A token account is 165 bytes; at SOL around $62, 0.002 SOL is roughly 13 cents per account, and the 20-token wallet’s 0.04 SOL is about $2.50. SOL has ranged widely, with an all-time high around $293. At that peak the same 0.04 SOL would have been about $12; if SOL fell to $30 it’d be ~$1.20.

In Contrast to Cardano
This feels structurally similar to Cardano’s approach, and in many ways it is: both systems charge a deposit proportional to the on-chain footprint of your assets. The differences lie in granularity and recovery. Solana’s deposits are per-account and can be reclaimed by closing the account, a transaction that destroys the token account and returns the rent-exempt SOL to the wallet. Closing accounts is a routine action in the Solana ecosystem, and several tools exist specifically to sweep empty or low-value token accounts and recover their locked SOL.

Cardano’s minimum Ada is per UTxO rather than per token type. If you hold five different tokens in a single UTxO, which is possible and common, you pay one combined minimum deposit rather than five separate ones. This bundling can make Cardano cheaper for users with large diversified portfolios, though it comes with its own complexity around UTxO management when tokens from different protocols land in different outputs.

The deeper distinction is philosophical. Solana’s account model was designed around high-frequency programmability: every program, every user balance, and every piece of state is its own account, and the network is optimized to process many accounts in parallel. Cardano’s UTxO model was designed around determinism and safety: a UTxO is consumed atomically, and its contents are never partially modified, which makes reasoning about what a transaction will do extremely predictable. The locked Ada is a side effect of that determinism. Native tokens cannot exist without being inside a UTxO, and UTxOs cannot exist below the minimum deposit, the economics of storage are baked into ownership itself.

Freeing up your sol

Bitcoin dust is stranded by economics; Cardano’s minimum Ada is locked by protocol. Solana’s rent-exempt sol is the most straightforwardly recoverable of the thre–it is a deposit held inside each account, and the distinctly Solana move is simply to close the accounts you no longer need.

Close empty token accounts
Once you have sold or sent away your entire balance of a token, its associated token account lingers, empty, but still holding its ~0.002 sol deposit. Closing that account is a single instruction that destroys it and returns the rent-exempt sol to your wallet. The only requirement is that the token balance reads zero first.

Burn the dust, then close
If an account holds a tiny leftover balance you do not care about, you can burn the remaining tokens and then close the account to recover the deposit. This is the direct analog of burning a Cardano native token to free its minimum Ada. Get rid of the asset, get back the sol.

Use a cleanup tool to sweep in bulk
Wallets like Phantom and Solflare, along with several third-party “reclaim” apps, can scan a wallet for empty or low-value token accounts and batch-close them in one transaction. This is the fastest way to recover sol scattered across dozens of accounts from old airdrops and abandoned positions.

A safety tip
Account closing requires signing transactions, and “free sol reclaim” sites are a well-worn lure for wallet-drainer scams. Stick to your wallet’s own built-in cleanup feature or a tool with a verifiable reputation, and read what each transaction is actually authorizing before you sign.

The few dollars of reclaimed sol are not worth handing a malicious dApp the keys to the rest of your wallet. This is less of an issue on Cardano and Bitcoin because of their UTXO model. The wallet will immediately and more clearly show that you are being drained–but the moral of the story is always read the transaction before you sign. Like Bitcoin dust, this is worth doing in bulk. Each closed account returns only ~0.002 sol, a few cents to around thirteen at today’s prices, so the payoff comes from sweeping many at once, not chasing one. And only close accounts you are truly finished with: if you receive that same token again later, the wallet simply recreates the account and locks a fresh deposit.

Trade-offs and Conclusion

Solana’s explicit per-account rent makes the cost visible and granular but multiplies the number of accounts users must manage. Bitcoin’s dust limit is nearly invisible in practice but only works because Bitcoin’s base layer deliberately excludes the complexity of native programmable tokens. Cardano’s approach sits between them: one deposit per UTxO, variable by data size, recoverable on transfer or burn, and enforced by the same validation logic that validates every other transaction on the network.

What all three share is the recognition that storing information on-chain has a cost, and that cost cannot simply be absorbed by those running the network indefinitely. The blockchain that ignores this fills its nodes with spam. The one that prices it correctly gives users a path to recover their deposits, keeps node operators viable, and keeps the minimum footprint of participation honest.

Get more articles like this in your inbox

Was the article useful?

Or leave comment

No comments yet…

avatar
You can use Markdown
No results