Polkadot has a feature that genuinely doesn't exist on any other chain in the wallet: the existential deposit. If your account's free balance drops below a minimum (currently 1 DOT, or 10,000,000,000 planck), the account is reaped — deleted from chain state. Any sub-existential balance is removed too.
This is not a bug. It's intentional. And it has bitten enough users that the wallet bakes in defaults to prevent it.
Why the existential deposit exists
Every account on a substrate chain takes up storage. Every active account costs validators a small amount of state to maintain. Polkadot caps this overhead by requiring every account to hold at least 1 DOT — enough that the value of the account exceeds the cost of storing it.
Without an existential deposit, an attacker could create millions of accounts holding 0.0000001 DOT each, bloating the state and slowing every node forever. Most chains solve this with explicit rent payments (Solana) or pruning (everyone else). Polkadot solves it with a minimum-balance threshold.
When accounts get reaped
If your balance goes below 1 DOT, the chain runtime deletes the account at the next opportunity. The remaining balance vaporises. There's no recovery — the storage entry is gone. You can re-create the account by sending it ≥ 1 DOT, but the old balance is unrecoverable.
The reaping happens on the next state-altering transaction touching the account — it's not always immediate, but treat it as instant.
What the wallet does
The Polkadot send route defaults to Balances.transfer_keep_alive instead of the raw Balances.transfer (or its renamed Balances.transfer_allow_death). The difference:
transfer_keep_aliverejects the send if it would leave the recipient's account below the existential deposit. The recipient is kept alive. If they had less than 1 DOT and you send them 0.5, the tx fails — they would be reaped on the next outbound move.transfer_allow_deathdoesn't check. It can drain an account to zero (reaping it) or send to a freshly-created account with sub-deposit balance (which gets reaped immediately).
Iter-G ships transfer_keep_alive as the only option. Most users will never want anything else; the corner cases (sweeping a soon-to-be-abandoned account) are rare and risky enough that we don't expose them in the UI.
What about your own account?
If you have 0.6 DOT and try to send 0.4: the tx will fail. Your remaining balance after fees would be roughly 0.19 DOT (0.6 - 0.4 - small fee), and that's below the existential deposit. The runtime refuses. You'd need to either send less (keeping your remaining balance ≥ 1 DOT) or sweep everything (the transfer_allow_death variant the wallet doesn't expose).
The practical guidance: always keep a minimum of 2 DOT in a Polkadot account you want to keep alive. It gives you headroom for fees and stops accidental reaping.
A pre-existing-account check
Before broadcast, the wallet:
- Queries the destination's free balance.
- If
dest_balance + amount < 1 DOT, the wallet warns and refuses to broadcast. - If
sender_balance - amount - estimated_fee < 1 DOT, the wallet warns and refuses to broadcast.
You'll see these warnings in the flash messages on the send page. They cost nothing — the queries are read-only and use cached substrate state. They prevent a class of errors that simply cannot happen on any other chain in the wallet.
Compare to Cosmos
Cosmos has no existential deposit. An account with 1 uatom is valid; an account with 0 is just "not seen yet". State growth is managed differently — block size limits, periodic state-rent proposals that get voted down, etc.
The trade-off: Polkadot has cleaner state, lower long-term node-storage costs, faster sync times. Cosmos has slightly worse state hygiene but no surprises around minimum balances. Neither is wrong; they're different choices.
The TL;DR
Polkadot accounts must hold ≥ 1 DOT or they get reaped (deleted, balance lost). The wallet defaults to transfer_keep_alive, which refuses to send if it would leave either sender or recipient below the threshold. Keep at least 2 DOT to be safe.
Next: how Snowbridge moves value between Polkadot and Ethereum without a trusted multisig.