Contract blueprint · 3 h ago

USDC on Base

0x833589fcd6edb6e08f4c7c32d4f71b54bda02913

Template-written 13 evidence items REA inspect-evm-interface (in WSL)
What this means for you

USDC on Base: the code has 5 control switches that can still be used.E7E5E8E9

  • Block wallets: Can block chosen wallets from transferring or selling.E7E5
  • Mint new tokens: Can create new tokens, which adds to the supply and can dilute holders.E8E5
  • Pause transfers: Can stop all transfers, so nobody can buy, sell or move the token.E9E5
  • Replace the code: Can swap the contract's code for new code (upgradeable proxy), which can change any rule.E10E5E6
  • Withdraw from contract: Can withdraw tokens or ETH held by the contract itself.E11E5
  • An owner wallet is set (0x3abd6f64a422225e61e435bae41db12096106df7), so owner-only switches can be used by that wallet.E5
  • It's an upgradeable proxy: its code can be replaced, which can change any rule.E6
  • 5 functions that change state have no public name, so we can't say what they do.E13

What it is

  • It's a token called USD Coin (USDC).E3
  • Total supply: 4,403,028,434 tokens.E4
  • Besides the standard token functions it has unBlacklist, updateRescuer, initializeV2_1, removeMinter, PERMIT_TYPEHASH, initialize, masterMinter, DOMAIN_SEPARATOR and 38 more.E2
  • We read 60 functions from its public code with REA inspect-evm-interface (in WSL).E2E1

What the owner can do

Block wallets

can be used

Can block chosen wallets from transferring or selling.E7E5

blacklist(address)unBlacklist(address)updateBlacklister(address)

Mint new tokens

can be used

Can create new tokens, which adds to the supply and can dilute holders.E8E5

configureMinter(address,uint256)mint(address,uint256)removeMinter(address)updateMasterMinter(address)

Pause transfers

can be used

Can stop all transfers, so nobody can buy, sell or move the token.E9E5

pause()unpause()updatePauser(address)

Replace the code

can be used

Can swap the contract's code for new code (upgradeable proxy), which can change any rule.E10E5E6

changeAdmin(address)upgradeTo(address)upgradeToAndCall(address,bytes)

Withdraw from contract

can be used

Can withdraw tokens or ETH held by the contract itself.E11E5

updateRescuer(address)

Transfer ownership

info

Ownership can be handed to another wallet or given up (renounced).E12E5

transferOwnership(address)

5 state-changing functions have no public name: 0x88b7ab63 0x9fd5a6cf 0xb2118a8d 0xb7b72899 0xcf092995 E13

Chain
Base
Address
0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
Token
USD Coin (USDC)
Supply
4,403,028,434 tokens
Owner
0x3abd6f64a422225e61e435bae41db12096106df7
Proxy
upgradeable proxy (OpenZeppelin zos slots) → 0x2ce6311ddae708829bc0784c967b7d77d19fd779
Engine
REA inspect-evm-interface (in WSL)
All 60 functions
name()approve(address,uint256) · nonpayabletotalSupply()unBlacklist(address) · nonpayabletransferFrom(address,address,uint256) · nonpayableupdateRescuer(address) · nonpayableinitializeV2_1(address) · nonpayableremoveMinter(address) · nonpayablePERMIT_TYPEHASH()decimals()initialize(string,string,string,uint8,address,address,address,address) · nonpayablemasterMinter()DOMAIN_SEPARATOR()rescuer()increaseAllowance(address,uint256) · nonpayableunpause() · nonpayablemint(address,uint256) · nonpayableburn(uint256) · nonpayableinitializeV2_2(address[],string) · nonpayableconfigureMinter(address,uint256) · nonpayableversion()updatePauser(address) · nonpayablecancelAuthorization(address,bytes32,uint8,bytes32,bytes32) · nonpayablepaused()balanceOf(address)nonces(address)RECEIVE_WITH_AUTHORIZATION_TYPEHASH()pause() · nonpayable0x88b7ab63(address,address,uint256,uint256,uint256,uint256,bytes) · nonpayableminterAllowance(address)owner()symbol()pauser()0x9fd5a6cf(address,address,uint256,uint256,bytes) · nonpayableTRANSFER_WITH_AUTHORIZATION_TYPEHASH()decreaseAllowance(address,uint256) · nonpayabletransfer(address,uint256) · nonpayableupdateMasterMinter(address) · nonpayableisMinter(address)updateBlacklister(address) · nonpayable0xb2118a8d(address,address,uint256) · nonpayable0xb7b72899(address,uint256,bytes) · nonpayableblacklister()0xcf092995(address,address,uint256,uint256,uint256,uint256,bytes) · nonpayablepermit(address,address,uint256,uint256,uint8,bytes32,bytes32) · nonpayableinitializeV2(string) · nonpayableCANCEL_AUTHORIZATION_TYPEHASH()allowance(address,address)transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32) · nonpayablecurrency()authorizationState(address,bytes32)receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32) · nonpayabletransferOwnership(address) · nonpayableblacklist(address) · nonpayableisBlacklisted(address)upgradeTo(address) · nonpayableupgradeToAndCall(address,bytes) · payableimplementation()changeAdmin(address) · nonpayableadmin()

Evidence

Every sentence above points to one of these. Code references show the file, line:column and the short identifier that matched, never the site's code itself.

E1
1,852 bytes of contract code on Base
eth_getCode on Base · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 · sha256 98d785fcb1bf847f…
E2
60 functions extracted with REA inspect-evm-interface (in WSL)
Base bytecode 0x833589fc… · “60 selectors” · REA inspect-evm-interface (in WSL)
E3
Token name/symbol: USD Coin (USDC)
eth_call name() / symbol() on Base · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
E4
Total supply: 4,403,028,434 tokens
eth_call totalSupply() / decimals() on Base · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
E5
owner() returns 0x3abd6f64a422225e61e435bae41db12096106df7
eth_call owner() on Base · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
E6
upgradeable proxy (OpenZeppelin zos slots); implementation 0x2ce6311ddae708829bc0784c967b7d77d19fd779
eth_getStorageAt (proxy slots) on Base · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 · admin 0x4fc7850364958d97b4d3f5a08f79db2493f8ca44
E7
Owner switch 'Block wallets': blacklist(address), unBlacklist(address), updateBlacklister(address)
Can block chosen wallets from transferring or selling.
Base bytecode 0x833589fc… · “blacklist(address), unBlacklist(address), updateBlacklister(address)” · REA inspect-evm-interface (in WSL)
E8
Owner switch 'Mint new tokens': configureMinter(address,uint256), mint(address,uint256), removeMinter(address), updateMasterMinter(address)
Can create new tokens, which adds to the supply and can dilute holders.
Base bytecode 0x833589fc… · “configureMinter(address,uint256), mint(address,uint256), removeMinter(address)” · REA inspect-evm-interface (in WSL)
E9
Owner switch 'Pause transfers': pause(), unpause(), updatePauser(address)
Can stop all transfers, so nobody can buy, sell or move the token.
Base bytecode 0x833589fc… · “pause(), unpause(), updatePauser(address)” · REA inspect-evm-interface (in WSL)
E10
Owner switch 'Replace the code': changeAdmin(address), upgradeTo(address), upgradeToAndCall(address,bytes)
Can swap the contract's code for new code (upgradeable proxy), which can change any rule.
Base bytecode 0x833589fc… · “changeAdmin(address), upgradeTo(address), upgradeToAndCall(address,bytes)” · REA inspect-evm-interface (in WSL)
E11
Owner switch 'Withdraw from contract': updateRescuer(address)
Can withdraw tokens or ETH held by the contract itself.
Base bytecode 0x833589fc… · “updateRescuer(address)” · REA inspect-evm-interface (in WSL)
E12
Owner switch 'Transfer ownership': transferOwnership(address)
Ownership can be handed to another wallet or given up (renounced).
Base bytecode 0x833589fc… · “transferOwnership(address)” · REA inspect-evm-interface (in WSL)
E13
5 state-changing function(s) with no public name
Base bytecode · “0x88b7ab63, 0x9fd5a6cf, 0xb2118a8d, 0xb7b72899” · REA inspect-evm-interface (in WSL)

Limits

  • Powers are read from the contract's function list. A power hidden behind an unnamed function can't be explained, only counted.
  • Who holds a power is only checked through owner(). Roles, multisigs and proxy admins may hold powers too.
  • This describes what the code allows, not what anyone will do. It isn't financial advice.
  • This text was written from fixed templates because no AI writer was available. It uses exactly the same evidence.

Facts, not judgements: this page describes what the code and traffic show, not anyone's intent. Not financial advice. Blueprint id BiFHbmix.