Wish for Change: Confirm a canonical, keyless burn account for Polkadot
Note
The public discussion that led to this WFC is in the Polkadot Forum: "Proposal: Introduce a Permanent Burn Account for Polkadot".
"blake_256" in the on-chain text refers to blake2_256 — BLAKE2b with a 256-bit output.
The wishes
- The address derived from blake_256("POLKADOT_BURN_ACCOUNT") — the 32-byte account ID encoded under Polkadot's SS58 rules as 16Xvw6oiEcn1GWAU61WheW3xn6jA4aNQTk1nqpPDPWuwTg4q — is confirmed as the canonical Polkadot burn account.
- The burn required by WFC #1926 shall be executed by transferring DOT to this address.
- Any account — holders, projects, DAOs, exchanges — may voluntarily send DOT to this address. The address has no private key, and no one can ever sign a transaction from it.
Why this way
WFC #1926 passed in August 2026. It commits the community to removing the DOT revenue from JAMKB sales out of circulation for good. A burn needs a destination. This WFC does one thing: it confirms that destination.
A protocol-level burn — deleting DOT from the total issuance directly — conflicts with the monetary model the community adopted in Referendum 1710. The issuance schedule converges on the 2.1 billion DOT cap along a fixed curve: whatever the protocol burns, the issuance formula mints back, so the burn quietly returns; and if it does not mint back, the cap's math breaks. A keyless account sidesteps both. DOT sent to it leaves circulation for good, while the protocol's issuance accounting stays unchanged and the schedule runs as before. Protocol-internal slashes, dust and similar flows keep being handled under the Dynamic Allocation Pool (DAP) framework; this WFC does not change where they go.
No runtime upgrade is needed. Anyone can verify the address by computing blake_256("POLKADOT_BURN_ACCOUNT") themselves. W3F publicly endorsed this implementation path in the comments of the #1926 referendum: "We would prefer to see this DOT locked in an unspendable account."
Beyond carrying out the #1926 burn, the address has wider uses. Exchanges that want to burn tokens, projects that want to remove surplus treasury funds, anyone who wants to take their own DOT out of circulation permanently — all of them can choose to use this address. It is simply a public, verifiable standard destination, so nobody has to rely on scattered unofficial "burn addresses" that no one can check.
Reference materials
This WFC builds on: the forum thread #18280 (initiated by ultracoconut; the address derivation proposed by Bastian Köcher; Jonas's argument on compatibility with Referendum 1710's issuance schedule); WFC #1926 (passed in August 2026) and its referendum page comments (W3F's public endorsement); and Referendum 1710 (the 2.1 billion DOT cap and the Pi issuance schedule).
As with any Wish for Change, this is a signal of community sentiment, not a protocol change in itself; if approved by ballot, a future technical implementation is bound by it.
Comments (2)
Proposal Failed
One correction (which doesn't make this proposal more or less valuable): this is not how it works today, the issuance curve does not read live total issuance and burn wouldn't be minted back - meaning that a protocol burn could achieve the same net effect of this burn account (I am not saying it's a better or worse approach, just an alternative).
That said, if we go for the approach proposed here with the burn account, a couple of extra tasks an implementation should take into account:
[UPDATE]: more details / discussions here
@sigurpol
You're right about how it works today. That sentence reflects my understanding of the #1710 schedule as ratified, not the current implementation. The text doesn't spell that out, so your reading is fair.
The implementation suggestions are good too. They'll come in handy for whoever implements this, if the WFC passes.
Just putting here some extra notes coming from the discussion here.
Today, an explicit extrinsic
Balances::burnis not redirected to DAP buffer, so it already reducesTotalIssuanceand because the emission curve never reads total issuance there is no re-mint. Since every other sink on the chain (dust, slashes, fees, ...) is routed to the DAP, nothing else moves total issuance either. Soa burn that permanently reduces issuance, leaves the schedule untouched and is never minted backis available right now with no code changes. Issuance simply ends up at 2.1B minus whatever is burned.Before the current discussion in #1926 and #1939, I would have imagined that
Balances::burnwould have been eventually made configurable to route to DAP (for Polkadot) or to actually burn (for other chains like Kusama), but if now the intention is to actually allow voluntary burns reducing total issuance without re-minting , we are already good with no further changes in code (again, assuming that we are fine with emission curve ignoring live issuance).#1926 asks for the JAKMB revenue to be burned "automatically and at protocol level, with no discretionary step in between", and one way to get that is one line at the revenue hook of whatever pallet sells JAMKB, dropping the credit rather than depositing it to a given account. There is no need to introduce a burn account to achieve that (Kusama runtime configures slashes, dust, fees, etc to do exactly this - we can do exactly the same on Polkadot for the specific JAMKB case leaving the rest routed to DAP) . This is not a new pattern in the code and doesn't require any new account to be involved.
So to summarize, assuming we are fine with the current emission curve ignoring live total issuance, and the current semantics of
Balances::burn, the following would work without the need of a burn account:Balances::burn, total issuance decreased, no re-minting because of how issuance curve worksTo improve UX / explorers / everyone's life, it would be beneficial to expose a TotalBurned counter or equivalent, together with live issuance, hard cap etc.
Again, this is an alternative to what #1939 suggests if we want to consider that. A burn account where we send automatically JAMKB revenues and where voluntary burns end also achieves a similar result. The main difference is that total issuance would be unchanged, so again to improve UX, we could expose via a single runtime API all info needed at once (live issuance, total burn freezed in the burn account, cap, etc) so e.g. an explorer doesn't have fetch info in multiple places or hard-code anything.
I also believe there is no rush in deciding the strategy now - we will have to be compliant with what #1926 asks but we are not so close to have JAMKB revenue mechanism implemented so we don't have to necessarily agree now on what I believe is mostly an implementation detail at this point.
Polkassembly is now a read-only archive. Commenting is disabled.