ExistentialDeposit

Constant v101 → v424, v432 → current TaoBalance

Prevents dust accounts from bloating state.

Current Value

0.0000005 TAO (500 raw)

Conversion: ÷ 10^9 (RAO → TAO)

Relevant for: walletsexchangesdevelopersstakers

The Big Picture

Substrate chains don't keep empty accounts forever - they cost storage. The existential deposit is the minimum balance to keep your account alive. Drop below it, and your account gets 'reaped' (deleted). This keeps the chain lean but means you must watch your minimums.

Why This Matters

If your balance drops below this, your account is deleted and any remaining dust is lost. Always keep at least this amount, or use transfer_keep_alive to prevent accidental reaping.

Example

The existential deposit is 500 RAO (0.0000005 TAO). If you have 400 RAO and try to send 100 RAO, the transfer succeeds but your account is reaped. You lose the remaining 300 RAO.

Common Questions

What happens to my dust when reaped?
It's gone forever. The balance below ED is lost, not redistributed.
Can I recover a reaped account?
The address still works - just send it tokens again (at least ED) to recreate. But any previous dust and your nonce are gone.

From Chain Metadata

The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for this pallet. However, you do so at your own risk: this will open up a major DoS vector. In case you have multiple sources of provider references, you may also get unexpected behaviour if you set this to zero. Bottom line: Do yourself a favour and make it at least one!

Use Cases

  • Account creation
  • Transfer validation

Code Examples

import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443

const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);

// Query ExistentialDeposit constant
const value = await api.constants.Balances.ExistentialDeposit();
console.log("ExistentialDeposit:", value);
// Balance: divide by 10^9 for TAO
const tao = value / 1_000_000_000n;

Type Information

Byte Size
variable bytes
Encoding
composite
Raw Hex
0xf401000000000000

Version History

v101 block 1 Added
v432 block 8,636,190 Shape modified Current

Runtime Info

Pallet
Balances
First Version
v101
Latest Version
v101
Current Runtime
v472