Coins, Tokens and Standards (ERC-20, SPL, BRC-20...)

Coin or token? Understand what sets them apart, what the ERC-20, SPL and BRC-20 standards are for, and how to avoid sending mistakes.

Basics · Débutant + · 9 min read · Publié le

The essentials

Coin and token: the basic difference

In everyday language, people often say "a crypto" for everything. Technically, though, there are two main families of assets.

The coin: a blockchain's native currency

A coin (or "native asset") is built into the blockchain's protocol itself. It generally serves two purposes:

  • paying transaction fees (called "gas" on Ethereum);
  • rewarding those who secure the network (miners on Bitcoin, validators on Ethereum or Solana).

Its issuance rules are written into the network's own code. For example, Bitcoin.org's official FAQ states that the number of new bitcoins created is automatically halved over time, up to a total of 21 million bitcoins. Changing these rules would require changing the protocol, which takes broad consensus.

Examples of coins: BTC (Bitcoin), ETH (Ethereum), SOL (Solana), XMR (Monero).

The token: an asset hosted by a blockchain

A token doesn't have its own blockchain. It is created on an existing blockchain, most often through a smart contract (a program that runs on the blockchain) or a shared program.

Its rules (total quantity, whether new ones can be created, whether accounts can be frozen, etc.) are defined by its creator, not by the blockchain's protocol. And to move it, you pay fees in the network's native coin: sending a token on Ethereum costs ETH, sending a token on Solana costs SOL.

Examples of tokens: stablecoins like USDC or USDT, the governance tokens of DeFi protocols, memecoins (which, despite their name, are almost always tokens), NFTs.

CoinToken
Own blockchainYesNo, it uses another network's
Issuance rulesSet by the protocolSet by the token's creator
Pays network feesYesNo, you pay with the native coin

Why token standards?

Imagine every project inventing its own way to say "how many tokens does this address hold" or "send 10 tokens to this person". Every wallet, every exchange, every application would have to write specific code for each token. It would be unmanageable.

A standard is a common contract: a list of functions and behaviors that every token must follow. If a token follows the standard, any compatible wallet or app knows how to display, transfer or trade it without special adaptation. That's what allows a decentralized exchange to list thousands of different tokens.

ERC-20: the token standard on Ethereum

Where does it come from?

ERC-20 is described in an Ethereum improvement proposal (EIP-20), written by Fabian Vogelsteller and Vitalik Buterin and dated November 19, 2015 on the official EIP site. ERC stands for "Ethereum Request for Comments". The ethereum.org site presents it as a standard interface for fungible tokens, meaning tokens interchangeable with one another: one USDC is worth exactly the same as another USDC, like one 10-euro note is worth another.

What the standard requires

An ERC-20 token must offer six mandatory functions, including:

  • totalSupply: the total quantity of tokens;
  • balanceOf: an address's balance;
  • transfer: sending tokens;
  • approve and allowance: authorizing another address (for example a DEX smart contract) to spend your tokens, and checking that authorization;
  • transferFrom: the function that this authorized address uses to move your tokens.

Three functions are optional: name (the name), symbol (the ticker, like "USDC") and decimals (the number of decimal places). According to the specification, a decimals value of 8 means you must divide the raw amount by 100,000,000 to get the displayed amount.

The approve mechanism deserves your attention: when you use a DeFi app, you often give it a spending authorization. An authorization that's too broad, granted to a malicious contract, can allow that token to be drained from your wallet.

Other Ethereum standards

ethereum.org lists other standards worth knowing:

  • ERC-721: non-fungible tokens (NFTs), each one unique;
  • ERC-1155: a standard that can handle both fungible and non-fungible assets;
  • ERC-4626: a standard for yield-generating "vaults";
  • ERC-777: an evolution of ERC-20, which the documentation marks as not recommended.

Important point: EVM-compatible networks (EVM being the Ethereum Virtual Machine), such as most layer 2s and several other blockchains, use the same standards. An "ERC-20" token can therefore exist on Ethereum, on a layer 2 or on another EVM chain, with a different contract address on each.

SPL: tokens on Solana

Solana works differently. Instead of each token deploying its own smart contract, all tokens go through a common program: the original Token Program, or its extended version, Token-2022 (also called the Token Extensions Program), which carries over all the basic features and adds more through "extensions". These are called SPL (Solana Program Library) tokens.

Solana's official documentation distinguishes several elements:

  • The mint account: it uniquely identifies a token. It stores the total supply, the number of decimals and the "authorities".
  • The mint authority: the address allowed to create new tokens.
  • The freeze authority: the address able to freeze accounts, which prevents transfers.
  • The token account: an account that holds tokens of a single type (a single mint) for one owner.
  • The associated token account (ATA): a wallet's "default" token account for a given token, whose address is derived from the wallet's address and the mint's.

In practice, your Solana wallet has a separate account for each token you hold. Wallets handle this automatically, but it's why receiving a new token may require creating an account, which locks up a small amount of SOL.

For a user, checking whether the mint authority and freeze authority are active is a useful reflex: a token whose creator can still print more units or freeze your account carries additional risk. That doesn't necessarily mean a scam (a centralized issuer, of a stablecoin for example, may have its own reasons for keeping them), but you need to know.

BRC-20: tokens on Bitcoin

Bitcoin wasn't designed to host smart contracts. BRC-20 is therefore a very different approach.

How it works

According to Chainlink, BRC-20 was launched on March 9, 2023 by an anonymous developer known by the pseudonym "domo". It relies on Ordinals, a theory that numbers each satoshi (bitcoin's smallest unit) and makes it possible to "inscribe" data on it.

A BRC-20 token relies on inscriptions containing a small piece of text in JSON format. The Layer1 Foundation's documentation describes three operations:

  • deploy: create a token, with its ticker (tick), its maximum supply (max) and optionally a per-mint limit (lim);
  • mint: issue tokens;
  • transfer: send tokens, in two steps (inscribe, then send).

Limits to know

  • No smart contract: Bitcoin doesn't itself compute BRC-20 balances.
  • Dependence on indexers: balances are reconstructed off-chain by software called indexers, which read all the inscriptions and apply the rules. Chainlink specifies that a full Bitcoin node isn't enough: you have to run, or trust, an indexer.
  • First come, first served: for a given ticker, only the first deployment counts.
  • Experimental status: its creator himself presented it as an experimental standard.

For you, this means using a wallet that explicitly supports Ordinals and BRC-20. A regular Bitcoin wallet can accidentally spend a satoshi carrying an inscription as if it were a plain bitcoin.

A concrete example: USDC on several networks

Take a stablecoin like USDC, issued on several blockchains.

  • On Ethereum and EVM networks, it's an ERC-20 token, with a contract address specific to each network.
  • On Solana, it's an SPL token, identified by its mint address.

You want to withdraw 100 USDC from an exchange to your wallet. The exchange asks you to choose the network. If your wallet is a Solana wallet and you choose Ethereum, your funds will go to an Ethereum-format address, on another network: at best, you'll have to go through complex steps to recover them; at worst, they'll be lost. The same name "USDC" thus covers several distinct technical versions. The guide on sending crypto and choosing the network details this step.

Mistakes to avoid

  • Relying only on the name or ticker. Anyone can create a token called "USDC" or reusing a well-known project's name. Only the contract address (or mint) identifies a token. Check it on the project's official site or on a reputable aggregator.
  • Choosing the wrong network when sending. The source network and the destination network must match.
  • Forgetting the native coin for fees. Holding tokens on Ethereum without ETH, or on Solana without SOL, prevents you from moving them.
  • Granting unlimited approvals without thinking. On EVM networks, revoke the authorizations (approve) you no longer need.
  • Ignoring the creator's powers. An active mint authority or a freeze function should be factored into your risk assessment.
  • Using a wallet that isn't BRC-20 compatible. You risk losing your inscriptions by spending them as mere fees.

Key takeaways

  • A coin is a blockchain's native asset and pays its fees; a token is created on an existing blockchain.
  • Standards (ERC-20, SPL, BRC-20) let wallets and apps handle all tokens the same way.
  • ERC-20 works through smart contracts; SPL tokens go through a common Solana program; BRC-20 relies on Ordinals inscriptions and off-chain indexers.
  • The same asset, like USDC, can exist on several networks: always choose the right network when sending.
  • The contract or mint address is a token's only real ID card, not its name.

Sources

Compare services related to this topic