burn
Call v205 → current #10Burns TAO from the caller, permanently reducing total issuance .
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with burn, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch which emits events: Burned and modifies storage: TotalIssuance, and finally post-dispatch where ExtrinsicSuccess is emitted and fees are settled.
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Click items to navigate. Pan and zoom to explore.
Used by: developersvalidators
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_.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | value | Compact<u64> Cpt | Value in RAO (÷10⁹ for TAO) (RAO -> TAO (/ 10^9)) |
| 1 | keep_alive | bool | keep_alive (bool) |
Permissions
Origin
Unknown
Required Role
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
import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";
const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });
// Build burn call
const value = 0;
const keep_alive = true;
const call = api.tx[stringCamelCase("Balances")][stringCamelCase("burn")](
value,
keep_alive
);Runtime Info
- Pallet Index
- 5
- Call Index
- 10
- First Version
- v205
- Current Version
- v393