logo

The USDC Contract Address on Base

Native USDC on Base mainnet is issued by Circle at 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. On the Base Sepolia test network it is 0x036CbD53842c5426634e7929541eC2318f3dCF7e. Confirm both against Circle's published contract address list before use, because token names and symbols can be copied and a bridged form of USDC also exists on Base.

The addresses

Base mainnet, native USDC: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Base Sepolia testnet, USDC: 0x036CbD53842c5426634e7929541eC2318f3dCF7e

These are the addresses listed for Base and Base Sepolia on Circle's USDC contract address page as of September 2026. Circle is the source of record. Before sending funds, deploying code, or accepting payments, open Circle's list yourself and compare every character, rather than copying an address from this page, a search result, a chat message, or a social media post.

The Sepolia contract holds test tokens with no value. Circle operates a faucet that dispenses them for development and testing.

Why copy from the source every time

Attackers publish lookalike addresses in forums, fake documentation, and search ads, and send tiny transfers from lookalike addresses so they appear in wallet history. An address that matches the first and last few characters can still be wrong. Copying from the issuer's own list and comparing in full is the reliable habit.

Why this page shows a verification date

Issuers rarely change a token's contract address, but documentation, network support, and test deployments do change. A dated address tells a reader how recent the check was and reminds them to repeat it, which is the right behaviour for anything that moves money.

Verifying it yourself

1. Start from Circle. Open Circle's developer documentation page listing USDC contract addresses and find the row for Base. That page links each address to a block explorer.

2. Open the token on a Base explorer. On the token page, check that the name and symbol are USDC, that the decimals are 6, that the contract source is verified, and that holder and transfer counts are what you would expect for a major stablecoin rather than a handful.

3. Check the network. The same address format exists on every EVM network. Make sure the explorer and your wallet or code are on Base, chain ID 8453, or Base Sepolia, chain ID 84532, for testing.

4. Check the token in your wallet. When adding the token manually, paste the contract address, and confirm the wallet shows USDC with six decimals. If a wallet already lists a USDC balance, check which contract it belongs to.

5. Record where and when you verified it. In code, a comment or configuration note with the source and date lets the next person audit it quickly.

Native versus bridged, and using it in code

Bridged USDC. Before Circle issued USDC natively on Base, a bridged form circulated, commonly labelled USDbC. It is backed by USDC held by a bridge on Ethereum, which adds bridge risk and means it is not redeemable directly with Circle. Some wallets and applications still hold it. It is a different contract, and treating it as native USDC in a payment system is an error.

Decimals. USDC has six decimals. One USDC is 1,000,000 in the token's smallest unit. Code that assumes eighteen decimals, as many other tokens use, will be wrong by a factor of a trillion.

Pin the address. Store the native USDC address per network in configuration. When accepting a payment, check the transferred token's contract against the pinned address and reject anything else. When sending, never resolve the token by symbol.

Check at startup. Read the token's decimals and symbol from the contract at the pinned address when a service starts, and refuse to run if they are not what you expect. It catches a wrong network or a configuration typo before any money moves.

For agents. An agent that reads payment requirements from a server should compare the requested asset to its pinned address and refuse any other. A server asking for a token with the right symbol at the wrong address is exactly the case this prevents.

CryptoCadet settles in native USDC on Base only, so its agents have one accepted asset contract on mainnet.

Moving bridged USDC to native

If you hold bridged USDC on Base, applications and exchanges that support both can convert it. Check fees and the route before converting a large balance, and verify that what you receive is the native contract listed by Circle.

Frequently asked questions

What is the USDC contract address on Base?
Native USDC on Base mainnet is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, as listed by Circle. On Base Sepolia it is 0x036CbD53842c5426634e7929541eC2318f3dCF7e. Always confirm against Circle's published USDC contract address list before use, because token names and symbols can be copied by anyone. Compare every character, not only the start and end.
What is the difference between USDC and USDbC on Base?
USDC on Base is issued natively by Circle and redeemable with Circle. USDbC is a bridged form that circulated before native issuance, backed by USDC held by a bridge on Ethereum. It is a different contract with additional bridge risk and should not be treated as native USDC.
How many decimals does USDC have on Base?
Six. One USDC equals 1,000,000 in the token's smallest unit. Code that assumes the eighteen decimals many other tokens use will calculate amounts wrongly by a factor of a trillion, so read decimals from the contract rather than assuming them.
How should an application verify it is using real USDC?
Pin the native USDC address per network in configuration, verify it against Circle's list, read the contract's symbol and decimals at startup, and reject any payment whose token contract does not match the pinned address. Never resolve a token by its symbol.