VERIFY THE BURN ADDRESS

Official declaration of the MfT network burn destination — and how to independently verify that tokens sent there can never move again.
MfT Network Burn Address (Base)
0xfd780B0aE569e15e514B819ecFDF46f804953a4B
view on BaseScan

Declaration

This address is the single burn destination for the entire MfT reactor network. It is hardcoded as a constant in the Unrugable factory, every SporeReactor, and the private reactors. Tokens transferred here are removed from circulation permanently.

We use one dedicated address instead of 0xdEaD so that total burns are trivially auditable: for any network token, balanceOf(0xfd78...3a4B) equals everything the network has ever removed from circulation — no event indexing, no contract list required, nothing can be missed.

Why tokens can't leave — the technical case

1. The address is a contract with immutable code. It is an EIP-1167 minimal proxy. Its full runtime bytecode (45 bytes) is:

0x363d3d373d3d3d363d739f36ee33fd56c7d9a78facd3249c580b1ca464a2
5af43d82803e903d91602b57fd5bf3

Minimal proxies have no upgrade mechanism. This code can never change. Verify with an eth_getCode call against any Base RPC.

2. The logic it delegates to is an NFT contract — with no ERC-20 functions at all. The proxy delegates to 0x9f36ee33fd56c7d9a78facd3249c580b1ca464a2, an ERC-1155 NFT contract named "Meme For Trees" — the original MfT NFT contract. A contract can only move ERC-20 tokens by exposing a function that calls the token contract. This one exposes none:

CapabilityPresent in function table?
ERC-20 transfer / transferFrom outNo
sweep / rescue / withdrawTokenNo
Arbitrary call / executeNo
Upgrade / setImplementationNo
ERC-1155 ops on its own NFT IDsYes (irrelevant to ERC-20 balances)
Owner functions (metadata, royalties)Yes (cannot touch ERC-20 balances)

The complete 4-byte selector inventory of the implementation is published below so anyone can repeat the analysis.

3. The address has never sent a token. Every ERC-20 transfer involving this address in its entire history is inbound. Check the token transfer history on BaseScan — there are no outgoing transfers and never can be.

Verify it yourself

  1. Confirm the bytecode: curl -s https://mainnet.base.org -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xfd780B0aE569e15e514B819ecFDF46f804953a4B","latest"]}' — compare to the bytecode above.
  2. Check any token's burned total: call balanceOf(0xfd780B0aE569e15e514B819ecFDF46f804953a4B) on the token contract, or use the BaseScan token view.
  3. Cross-check our dashboard: the burns page is generated from these same balanceOf calls — raw data at api/reactor-map.json.

Implementation selector inventory

All function selectors present in the implementation's dispatch table (extracted from on-chain bytecode at 0x9f36...64a2):

01ffc9a7 supportsInterface      04634d8d setDefaultRoyalty
06fdde03 name                   0e89341c uri
2a55205a royaltyInfo            4e1273f4 balanceOfBatch
55f804b3 setBaseURI             6c0360eb baseURI
715018a6 renounceOwnership      8da5cb5b owner
938e3d7b setContractURI         95d89b41 symbol
a22cb465 setApprovalForAll      e8a3d485 contractURI
e985e9c5 isApprovedForAll       f242432a safeTransferFrom (ERC-1155)
f2fde38b transferOwnership      f5298aca burn (ERC-1155)
f6eb127a burnBatch              fee81cf4 ownershipHandoverExpiresAt
f04e283e completeOwnershipHandover  25692962 requestOwnershipHandover
098144d4 getTransferValidator   a9fc664e setTransferValidator
0d705df6 getTransferValidationFunction  d7533f02 (1155-C config)
2eb2c2d6 (1155-C config)        362925c2 (mint config)
37da577c (mint config)          54d1f13d (mint config)
869f7594 (supply view)          9d7f4ebf (mint config)
a4830114 (mint)                 bd85b039 totalSupply(uint256)
c6ab67a3 (config view)          099b6bfa (mint config)
A handful of selectors relate to the contract's own NFT minting configuration and are labeled by category. None match any ERC-20 transfer, approval-pull, sweep, or arbitrary-call pattern. Every token-moving function in the table operates exclusively on the contract's own ERC-1155 token IDs — it has no code path that can call an external ERC-20 contract.

Counted as burned

Because this is a custom burn address (chosen for auditability), some third-party trackers that only recognize 0xdEaD will not automatically subtract these balances from circulating supply. Where listings allow declared burn addresses (e.g. CoinGecko, CoinMarketCap), this address is declared. This page is the canonical reference.