← Back to BaseGold

Contracts & Control

Last read on-chain: (Base mainnet, chain ID 8453, block 52,572,258)

What this page is. It lists the BaseGold-related contracts that exist on Base, who owns each of them according to the chain, and the BG supply breakdown. Every value below was read from Base mainnet at the block and time shown above. Owner powers are listed only where they could be read from the contract’s source code as verified on Blockscout; otherwise the entry says “owner powers: see contract source”. Anything that has not been published is listed under Not yet published. The values are a snapshot: ownership and balances can change after the time shown.

1. BG supply, as read from the token contract

BG (0x36b712A629095234F2196BbB000D1b96C12Ce78e) was created once, with an initial supply of 10,000 BG. The three amounts below are different things and are not all burned.

Amount BG How it was read
Current total supply 9,978.9 totalSupply() = 9978900000000000000000 (18 decimals)
Destroyed by supply reduction (10,000 initial − totalSupply) 21.1 10,000 − 9,978.9. Only this amount has left totalSupply. Burns made through the token’s burn function are counted here and not in the dead-address line below; each Gold Mine entry (0.10 BG, section 2) is one of them.
At dead address 43.146863611069444202 balanceOf(0x000000000000000000000000000000000000dEaD) = 43146863611069444202. These tokens were transferred to the dead address and still count in totalSupply.
Locked in the token contract 59.87 balanceOf(0x36b712A629095234F2196BbB000D1b96C12Ce78e) = 59870000000000000000. These tokens sit at the token contract’s own address and still count in totalSupply. They are not burned.
Sum of the three lines above 124.116863611069444202 21.1 + 43.146863611069444202 + 59.87. Only the first line is destroyed; the other two are held at addresses.

In the Blockscout-verified source, the token contract is OpenZeppelin ERC-20 + ERC20Burnable + Ownable. It mints the initial 10,000 BG in its constructor and has no other mint function, and it contains no function that sends or approves the contract’s own token balance.

2. Contracts on Base and their owners

Owner values were read with owner() at block 52,572,258 (2026-10-13 23:24:23 UTC). Whether an owner is a single key or a multi-signature wallet has not been published; for each owner this page states only what the chain shows (account code at that block).

Contract and role Address (BaseScan) Owner What the owner can do
BaseGold (BG) token
ERC-20, burnable. The BG token itself.
0x36b712A629095234F2196BbB000D1b96C12Ce78e owner at 2026-10-13 23:24:23 UTC: renounced (0x0)
owner() = 0x0000000000000000000000000000000000000000
Nothing. With the owner at the zero address, the only owner-restricted functions in the verified source (transferOwnership, renounceOwnership) cannot be called.
InstantBurn
The InstantBurn treasury named in the white paper (Part F.2.8) and in llms.txt: ETH paid for in-game structures market-buys BG and burns it.
0xF9dc5A103C5B09bfe71cF1Badcce362827b34BFE owner at 2026-10-13 23:24:23 UTC: 0x4C854b3dc7ccCaDE2EbBceEd771f4dEEeCb60d39
An externally owned account that carries an EIP-7702 delegation: its code at that block is a delegation designator, not contract code.
Owner powers: see contract source.
InstantBurnV2
The “Instant Burn Contract” named on games.html: powers The Mine shop purchases, accepts ETH, buys BG from a DEX and burns it. Called InstantBurnV2 in MineSwap’s deployment manifest.
0x76306f6e636354b1B9CfF3B66DD0f3339008c4f4 owner at 2026-10-13 23:24:23 UTC: 0x81340E733897342F527fAE0dfDe47689F112E000
Plain account, no contract code at that block. paused() = false.
Owner powers: see contract source.
MineSwap split router
Splits one swap across registered BG pools (contract name MineSwapSplitRouter).
0x7f0f058c731b479A214dA459a1AC4CF98d568Bf0 owner at 2026-10-13 23:24:23 UTC: 0x81340E733897342F527fAE0dfDe47689F112E000
Plain account, no contract code at that block. paused() = false.
From the verified source, the owner can:
  • add, remove and deactivate pools, and set the hop pool;
  • set a per-token maximum order size;
  • pause and unpause swaps;
  • set the on-chain quoter and the Uniswap V4 execution adapter;
  • start a two-step transfer of ownership.
The protocol fee (feeBps() = 15, i.e. 0.15%) and the fee collector are immutable in the source, so the owner cannot change them. The source notes that the owner-chosen V4 adapter is trusted code and that the caller’s minimum-output setting is the only protection against a faulty adapter.
Legacy mine-entry contract (V2)
The Mine (contract name GoldVeinV2Simple). MineSwap’s deployment records list it as superseded.
0x5E4842ac8D7b37922366cb1b78259b9324915dBC owner at 2026-10-13 23:24:23 UTC: 0x12E60437ae26f6F3dFA073ab56Db0fA01Ff8860e
Plain account, no contract code at that block. migrationComplete() = true.
From the verified source, the owner can:
  • set the Mine NFT contract address;
  • run the user migration functions (closed once migrationComplete() is true, as it is now);
  • call emergencyWithdraw(token, amount), which transfers any amount of any ERC-20 held by this contract, including BG, to the owner.
The source has no function to change the owner.
Legacy mine-entry contract (V3)
Listed as a V3 mine-entry contract in MineSwap’s source records.
0xEfd81a6EaBeeC9722Ed07aF2A6aa2c7168A68a94 owner at 2026-10-13 23:24:23 UTC: 0x81340E733897342F527fAE0dfDe47689F112E000
Plain account, no contract code at that block.
Owner powers: see contract source.
Legacy mine-entry contract (V4)
Listed as a V4 mine-entry contract in MineSwap’s source records. It was the address the Mine NFT returned from goldVein(), and so the only address allowed to mint mines, until the switch transaction in block 52,571,804 (0x4ac0dfe984a687df606c910c6fc904bcc121c55a79faff6e3af4df59fbac4f42). Since that block the Mine NFT returns the Gold Mine entry listed below.
0x5dA810D191D99Dd0Fa3aCf907b3cFe3Ef576404f owner at 2026-10-13 23:24:23 UTC: 0x45D18b056124A43d59f28F077701fb16FBa693D6
Plain account, no contract code at that block.
Read at block 52,572,258:
  • paused() = false. The contract was not paused: 0.03 BG of commission is still owed to one wallet and the pause would freeze its claim. Its mint authority ended at the switch instead, because the Mine NFT accepts mintMine only from the address goldVein() returns;
  • commission rates were set to zero in 0xd25fb644…ba968 (block 52,571,596) and the owner-withdrawable surplus of 0.065 BG was withdrawn to the owner in 0xa45dc8c7…fb621f (block 52,571,621);
  • commissionRates(0) to commissionRates(6) = 0, 0, 0, 0, 0, 0, 0.
Owner powers: see contract source. The source gives the owner pause(), unpause() and setCommissionRates(), so the two readings above describe that block only.
Gold Mine entry (MineBurnEntry)
Contract name MineBurnEntry. The Mine NFT returns this address from goldVein() as of block 52,571,804, so it is the only address that can mint Gold Mine NFTs. Deployed at block 52,571,675.
0xF121e113330A2ede61c81B8887b7092F03566037 none
The contract has no owner and no admin function; owner() does not exist on it. It has no pause, no upgrade function and no proxy pattern, and nothing in it is payable.
From the source (MineBurnEntry.sol in MineSwap’s repository), the contract has one state-changing function, activate(). Called by a wallet that has no mine yet (it reverts for a wallet that already has one), it:
  • burns exactly 0.10 BG from the caller with the token’s burnFrom, which needs the caller’s prior approval of 0.10 BG to this contract. This lowers BG totalSupply by 0.10 BG and sends nothing to the dead address;
  • mints one Gold Mine NFT to the caller. Mine ids are handed out in order from firstMineId, skipping ids the NFT has already issued.
It has no referrer and makes no payout. BG balance of the contract at block 52,572,258: 0 BG. BG burned through it so far (totalBurned()): 0.1 BG.
Constructor values (all immutable): bg = 0x36b712A629095234F2196BbB000D1b96C12Ce78e, nft = 0x4F8f97e10E2D89Bc118d6fdfe74d1C96A821E4e3, firstMineId = 67.
Verified source: yes, Sourcify exact match (creation and runtime bytecode) and verified on BaseScan, both against MineBurnEntry.sol, 2026-10-13.
Mine NFT
“BaseGold Mine” (BGMINE), ERC-721. Total supply 54 at the read block. goldVein() returns the Gold Mine entry (0xF121e113330A2ede61c81B8887b7092F03566037) as of block 52,571,804; before that block it returned the legacy V4 contract.
0x4F8f97e10E2D89Bc118d6fdfe74d1C96A821E4e3 owner at 2026-10-13 23:24:23 UTC: 0x45D18b056124A43d59f28F077701fb16FBa693D6
Plain account, no contract code at that block. airdropComplete() = true; claimFeeBps() = 100 (1%).
From the verified source (contract name GoldMineNFT), the owner can:
  • set the mine-entry contract address that is allowed to mint;
  • set the claim fee, capped in the source at 500 basis points (5%);
  • set the token metadata base URI and contract URI, and the default royalty;
  • run the batch airdrop and mark it complete (closed once airdropComplete() is true, as it is now);
  • call withdrawFees(to, amount), which transfers any amount of BG held by the contract to any address; the source does not limit it to accrued fees.
  • transfer or renounce ownership.

Two InstantBurn contracts exist on Base. The white paper and llms.txt name the first; games.html names the second. This page lists both with their roles as those pages describe them and does not state which one supersedes the other. Roles marked “named in MineSwap’s records” come from the deployment manifest and source files of the MineSwap repositories. For contracts whose source could not be read as verified, see the contract source on BaseScan.

3. Not yet published

4. Check it yourself

Anyone can repeat the reads above with a Base RPC endpoint and Foundry’s cast (read-only calls, no wallet needed):

cast call 0x36b712A629095234F2196BbB000D1b96C12Ce78e "owner()(address)" --rpc-url https://mainnet.base.org
cast call 0x36b712A629095234F2196BbB000D1b96C12Ce78e "totalSupply()(uint256)" --rpc-url https://mainnet.base.org
cast call 0x36b712A629095234F2196BbB000D1b96C12Ce78e "balanceOf(address)(uint256)" 0x000000000000000000000000000000000000dEaD --rpc-url https://mainnet.base.org
cast call 0x36b712A629095234F2196BbB000D1b96C12Ce78e "balanceOf(address)(uint256)" 0x36b712A629095234F2196BbB000D1b96C12Ce78e --rpc-url https://mainnet.base.org
cast call 0x4F8f97e10E2D89Bc118d6fdfe74d1C96A821E4e3 "goldVein()(address)" --rpc-url https://mainnet.base.org
cast code 0xF121e113330A2ede61c81B8887b7092F03566037 --rpc-url https://mainnet.base.org
cast call 0xF121e113330A2ede61c81B8887b7092F03566037 "owner()(address)" --rpc-url https://mainnet.base.org
cast call 0xF121e113330A2ede61c81B8887b7092F03566037 "BURN_AMOUNT()(uint256)" --rpc-url https://mainnet.base.org
cast call 0xF121e113330A2ede61c81B8887b7092F03566037 "totalBurned()(uint256)" --rpc-url https://mainnet.base.org
cast logs --address 0xF121e113330A2ede61c81B8887b7092F03566037 "MineBurned(address,uint256,uint256)" --from-block 52,571,675 --rpc-url https://mainnet.base.org
cast call 0x5dA810D191D99Dd0Fa3aCf907b3cFe3Ef576404f "paused()(bool)" --rpc-url https://mainnet.base.org
cast call 0x5dA810D191D99Dd0Fa3aCf907b3cFe3Ef576404f "commissionRates(uint256)(uint256)" 0 --rpc-url https://mainnet.base.org

Replace the contract address to read owner() on any other contract in the table. Use cast code <address> to confirm that an address holds contract code. The goldVein() read returns the address the Mine NFT currently accepts mints from. The owner() call on the Gold Mine entry is expected to revert, because that contract has no owner. Each log from the MineBurned query is one mine opened through the entry: the buyer, the mine id and the 0.1 BG burned. In the last command, replace the argument 0 with 1 to 6 to read the other legacy V4 commission rates.