burn
Call v205 → v424, v432 → current #10Burns TAO from the caller, permanently reducing total issuance .
View calls on chainCall Workflow
Click items to navigate. Pan and zoom to explore.
The Big Picture
Unlike sending to a burn address (which just makes funds inaccessible), this actually reduces TotalIssuance. The tokens are permanently destroyed, not just locked.
Use Cases
- Deflationary mechanisms
- Destroying unwanted tokens
- Token economics experiments
From Chain Metadata
Burn the specified liquid free balance from the origin account. If the origin's account ends up below the existential deposit as a result of the burn and `keep_alive` is false, the account will be reaped. Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, this `burn` operation will reduce total issuance by the amount _burned_.
Migration Notes
value changed from Compact<u64> to Compact<TaoBalance>
Update decoders: SCALE encoding is positional, so any signature change (added, removed, or type-changed fields, or storage shape changes) shifts byte offsets and existing decoders will misparse this item. Re-derive types from the new metadata.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | value | Compact<TaoBalance> Cpt T::Balance | value: Balance in chain native currency (RAO for TAO; ÷10⁹) (SCALE compact -> integer) |
| 1 | keep_alive | bool | keep_alive (bool) |
Permissions
Permission data inferred from metadata. May be incomplete.
Requirements
- Caller has sufficient free balance
- If keep_alive is true, caller must retain existential deposit
Effects
Events Emitted
Storage Modified
Postconditions
- Caller balance decreased by burn amount
- TotalIssuance decreased by burn amount
- Burned event emitted
Side Effects
- May reap caller account if balance falls below ED and keep_alive is false
- Permanently removes TAO from circulation
Code Examples
// ----------------------------------------------------------------------
// HEADS UP: 1 arg below has a complex type with no usable default.
// Look for `undefined as any` and replace it with real value
// before running — the snippet compiles, but will fail at runtime as-is.
// ----------------------------------------------------------------------
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);
// Build burn call (typed, named args)
const value = undefined as any /* TaoBalance — replace with real value */;
const keep_alive = true;
const tx = api.tx.Balances.burn({
value,
keep_alive,
});Version History
Runtime Info
- Pallet Index
- 5
- Call Index
- 10
- First Version
- v205
- Current Version
- v472