What’s the difference between BSC’s two “burn” addresses — the all-zero address (0x000…0000) and the dead address (0x000…dEaD)?

Jack 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?

回复

共1条回复 我来回复
  • pandatool的头像
    pandatool 评论

    These 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 totalSupply unless the token’s contract explicitly implements a burn function that deducts from totalSupply. 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-chain totalSupply value 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 but totalSupply only 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个月前 0条评论