Skip to main content

Native tokens vs. token contracts

Every chain has a native token — the asset used to pay gas fees generally. For example, ETH is the native token of Ethereum and Base. MATIC is the native token of Polygon. SOL is the native token of Solana. All other tokens are implemented as smart contracts. On EVM chains, the dominant standard is ERC-20. On Solana, it is SPL.
TypeExamplesStored as
Native tokenETH, MATIC, SOLAccount balance on-chain
ERC-20 tokenUSDC, USDT, WETH, LINKBalance tracked inside a token contract
SPL token (Solana)USDC, BONKToken account managed by the SPL program

ERC-20 tokens

An ERC-20 token is defined by a contract deployed at a specific address. The contract keeps a ledger of balances — which address owns how much. When you “transfer” ERC-20 tokens, you are calling a function on that contract, which updates its internal ledger. All ERC-20 tokens share the same standard interface, which means wallets, exchanges, and protocols can interact with any ERC-20 token in the same way. The key operations are:
  • Check balance — look up how many tokens an address holds
  • Transfer — move tokens from your address to another
  • Approve — grant a DeFi protocol permission to spend tokens on your behalf. This must be done before most DeFi interactions: the protocol cannot move your tokens until you explicitly authorize it via an approve call. See Smart contracts for why this matters in practice.

Wrapped tokens

Some native tokens — such as ETH — predate the ERC-20 standard and do not implement it natively. Wrapped tokens solve this: WETH is an ERC-20 contract that holds ETH 1:1, allowing ETH to be used in DeFi protocols that only accept ERC-20 inputs. Wrapping and unwrapping can be done at any time with no fees beyond gas.

SPL tokens

On Solana, tokens follow the SPL standard. The core difference from ERC-20 is how balances are stored: rather than a single contract tracking all holders, each wallet must have a dedicated token account for each SPL token it holds. This token account is a separate on-chain account owned by the SPL program. Key implications for agents:
  • Before receiving an SPL token for the first time, a token account must be created. This requires a small SOL deposit (rent) and a separate transaction.
  • Sending SPL tokens requires the recipient to already have a token account for that token, or the transaction must include account creation.
  • Closing unused token accounts recovers the SOL rent deposit.

Stablecoins

Stablecoins are tokens designed to maintain a fixed value relative to a reference asset (usually USD). They are the most commonly transferred tokens in DeFi.
StablecoinTypeIssuer
USDCFiat-backedCircle
USDTFiat-backedTether
DAICrypto-collateralizedSky (formerly MakerDAO)
USDSCrypto-collateralizedSky (MakerDAO successor)
FRAXFractional-algorithmicFrax Finance
Each stablecoin is a separate contract with its own address on each chain. USDC on Base and USDC on Ethereum are different contracts, though both maintain 1:1 USD parity.