Skip to content

Contract addresses

Live Base mainnet contracts and public addresses.

Boon runs on Base mainnet. The BoonV3 settlement contract is the user-facing protocol entry point for public tips, private tips, pending settlement, claims, refunds, agent recipients, and optional recipient attestations.

NameAddressNotes
BoonV3 settlement contract0x22aC2E603D4B1CaAb3A8433f1691BA6158A896AFUSDC tips, walletless per-tip pending settlement, private tips, agent recipients, claims, refunds, and fixed $BOON burns.
BoonGratitudeAttestationV30xC53160EEedb119670A7c13CC7C3709CdE6c9b469ERC-721 + ERC-5192 soulbound gratitude proof minted by BoonV3, including deferred minting for walletless recipients at claim time.
BurnVoteRegistrar (burn-to-rank)0x184B5bdAd8b390d1370f461055B4506CE216dB76Records public tip-auction nomination burns via burnForCandidate(agentId, amount) (first burn ≥ 1,000 $BOON floor; the top 10 agents by cumulative nomination burn form the Snapshot ballot). Burns rank nominations only. They do not add voting weight; holder voting weight is linear (1 whole $BOON at the snapshot block = 1 vote). Owner is the Boon Safe; no custody or settlement authority. Supersedes the deprecated event-only registrar 0xF554E293027CDeDe1073873650C8Dd429a0445a0.

BoonV3 addresses below are Base mainnet production addresses. Do not use a zero address or a fork/test address as a production integration target.

ConstantValueWhat it does
PRIVATE_TIP_BURN500_000e18 $BOONBurned to keep a tip’s note + display amount out of the public Boon read path.
ATTESTATION_BURN3_000_000e18 $BOONAdditional burn to request a recipient soulbound proof card.
UNLOCK_PRICE_USDC1_000_000 (= $1.00 USDC)Fixed price a third party pays to read a private tip’s note + amount.
MIN_ESCROW_USDC100_000 (= $0.10 USDC)Minimum pending settlement amount for walletless social tips.
MAX_ESCROW_PER_HANDLE256Maximum pending entries per GitHub/X handle.
ESCROW_REFUND_DELAY180 daysSender refund window for abandoned unclaimed entries.
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Circle USDC on Base. Tip settlement token.
BOON0x5Bec0bD17D16641660D66d82da4cF78b46B9EBA3$BOON token.
IDENTITY_REGISTRY0x8004A169FB4a3325136EB29fA0ceB6D2e539a432ERC-8004 agent identity registry on Base.
BOON_BURN_ADDRESS0x000000000000000000000000000000000000dEaDBurn sink used by BoonV3 and BurnVoteRegistrar.
RoleAddressWhat it can do
Owner Safe0x9eD16E6E1c0eA4f3739d1cF23041ed7aA782c08FPause/unpause, rotate trusted signer, rotate escrow guardian, and transfer ownership. No USDC sweep and no $BOON recovery.
Trusted signer0x82A2D8C68A9a3871B574C777b6934e9127131430Signs OAuth social-link vouchers.
Escrow guardian0x7d97EC943D44d03Fbf4E36277bE3D3bB47Ec67a6Co-signs first-link operations when pending USDC exists.
ItemValueLink
$BOON token0x5Bec0bD17D16641660D66d82da4cF78b46B9EBA3BaseScan token
Launch transaction0xb94436afbc1806b002c51ab8b8e9e43eeba64b9bbfcb78e7584e9938cb3175efBaseScan tx
Bankr/Doppler pool ID0x2d63586bc4515a5de13e2006469a72a439533d8b90e55157a00084bfa25ab556Bankr live deploy response
Creator fee recipient (Safe)0x9eD16E6E1c0eA4f3739d1cF23041ed7aA782c08FBaseScan address
Protocol fee recipient (Doppler)0x21e2ce70511e4fe542a97708e89520471daa7a66BaseScan address
LP-lock / migration target0x6ddfed58d238ca3195e49d8ac3d4cea6386e5c33 (NoOpMigrator, permanent LP lock)BaseScan address

Public token reads returned:

  • name() = "Boon"
  • symbol() = "BOON"
  • decimals() = 18
  • totalSupply() = 100_000_000_000e18 (100B fixed supply)
Terminal window
BOON=0x22aC2E603D4B1CaAb3A8433f1691BA6158A896AF
RPC=https://mainnet.base.org
cast call $BOON 'owner()(address)' --rpc-url $RPC
cast call $BOON 'trustedSigner()(address)' --rpc-url $RPC
cast call $BOON 'escrowGuardian()(address)' --rpc-url $RPC
cast call $BOON 'USDC()(address)' --rpc-url $RPC
cast call $BOON 'BOON()(address)' --rpc-url $RPC
cast call $BOON 'IDENTITY_REGISTRY()(address)' --rpc-url $RPC
cast call $BOON 'ATTESTATION_CONTRACT()(address)' --rpc-url $RPC
cast call $BOON 'PRIVATE_TIP_BURN()(uint256)' --rpc-url $RPC
cast call $BOON 'ATTESTATION_BURN()(uint256)' --rpc-url $RPC
cast call $BOON 'UNLOCK_PRICE_USDC()(uint256)' --rpc-url $RPC
cast call $BOON 'ESCROW_REFUND_DELAY()(uint256)' --rpc-url $RPC
Terminal window
REGISTRAR=0x184B5bdAd8b390d1370f461055B4506CE216dB76
RPC=https://mainnet.base.org
cast call $REGISTRAR 'BOON()(address)' --rpc-url $RPC
cast call $REGISTRAR 'BOON_BURN_ADDRESS()(address)' --rpc-url $RPC
cast call $REGISTRAR 'owner()(address)' --rpc-url $RPC
cast call $REGISTRAR 'currentRoundId()(uint256)' --rpc-url $RPC

Expected values are $BOON token 0x5Bec0bD17D16641660D66d82da4cF78b46B9EBA3, burn sink 0x000000000000000000000000000000000000dEaD, and owner Safe 0x9eD16E6E1c0eA4f3739d1cF23041ed7aA782c08F. currentRoundId reflects the most recently opened round.

Terminal window
SBT=0xC53160EEedb119670A7c13CC7C3709CdE6c9b469
RPC=https://mainnet.base.org
cast call $SBT 'name()(string)' --rpc-url $RPC
cast call $SBT 'symbol()(string)' --rpc-url $RPC
cast call $SBT 'minter()(address)' --rpc-url $RPC
cast call $SBT 'metadataBaseURI()(string)' --rpc-url $RPC

Soulbound by ERC-5192: every minted token returns locked(tokenId) = true, and any transfer / approve call reverts.

function tip(bytes32 handleHash, string displayHandle, address expectedWalletOrZero, uint256 amount, string note, bool mintAttestation, Permit permit) returns (uint256 tipId)
function tipAgent(uint256 agentId, address expectedWallet, uint256 amount, string note, bool mintAttestation, Permit permit) returns (uint256 tipId)
function tipPrivate(bytes32 handleHash, string displayHandle, address expectedWalletOrZero, uint256 amount, bytes32 privateCommitment, bool mintAttestation, Permit permit) returns (uint256 tipId)
function tipPrivateAgent(uint256 agentId, address expectedWallet, uint256 amount, bytes32 privateCommitment, bool mintAttestation, Permit permit) returns (uint256 tipId)
function link(bytes32 handleHash, address recipient, uint256 nonce, bytes workerSig)
function linkEscrowed(bytes32 handleHash, address recipient, uint256 nonce, bytes workerSig, bytes guardianSig)
function linkAndClaim(bytes32 handleHash, address recipient, uint256 nonce, bytes workerSig, bytes guardianSig, uint256 maxItems)
function claim(bytes32 handleHash, uint256 maxItems)
function claimSpecific(uint256[] tipIds)
function refund(uint256 tipId)
function relink(bytes32 handleHash, address newRecipient, uint256 nonce, bytes workerSig)

Concept references: settlement model, private tips, agent recipients, attestations.