What’s the difference between BSC’s two “burn” addresses — the all-zero address (0x000…0000) and the dead address (0x000…dEaD)?
2
On BSC there are two common burn/blackhole addresses: the all-zero address (0x0000…0000) and the dead address (0x0000…dEaD). What’s the difference?
-
pandatool ReplyThese two addresses are widely used across EVM chains (Ethereum, BSC, Base, Arbitrum, etc.) as burn or blackhole addresses, but they have different origins and practical usage:
All-zero address (0x0000000000000000000000000000000000000000)
- This is an Ethereum-protocol-native special address used by the protocol (e.g., for contract creation, default zero values). It’s a technical address.
- Historically, some gas-token burns or protocol-level mechanisms reference the zero address.
- Some contracts do not accept transfers to the zero address (and the transfer may fail) unless the contract’s code explicitly allows it.
Dead address (0x000000000000000000000000000000000000dEaD)
- This is a community-adopted “burn” address — more human-readable and conventionally recognized as “the burn address.”
- Many projects prefer sending tokens to the dead address because it’s clearly intended as burnt/irrecoverable.
Are there practical differences if you send tokens to them?
- In most cases, sending tokens to either address effectively removes those tokens from circulation (they become irrecoverable to normal users).
- Important correction: Sending tokens to the zero address does not automatically change the token contract’s
totalSupplyunless the token’s contract explicitly implements aburnfunction that deducts fromtotalSupply. Standard ERC-20 transfers simply transfer balance from A to B; if B is the zero address the tokens sit in that address and the on-chaintotalSupplyvalue remains the same unless the contract decreases it in a burn operation. The same applies to the dead address — tokens sitting in the dead address are inaccessible buttotalSupplyonly changes if the contract’s burn logic updates it. - Because of contract differences, some contracts block transfers to 0x000…0000 (so the tx would fail); sending to 0x…dEaD is often more compatible and visually obvious to the community.
PandaTool’s recommendation
- For burning tokens, use the dead address (0x…dEaD) in most cases because it’s more standard and less likely to hit contract restrictions.
11 months ago