What is the EVM?
The EVM carries out the instructions of a Smart contractA smart contract is a program stored at an address on the blockchain that anyone can call and that runs exactly as written.See it in the glossaryRead the explainer when someone calls it. “EVMThe EVM, or Ethereum Virtual Machine, is the shared engine that runs smart contract code on Ethereum and many other chains.See it in the glossaryRead the explainer” stands for Ethereum Virtual Machine. A virtual machine is a computer defined by software rules instead of a physical box, and every computer in the network runs the same one.
Many other chains copy this design. A contract written once can therefore run on all of them, and the same tools can read all of them.
How the EVM runs a contract
A developer writes a contract in a language such as Solidity, and a tool converts it into low-level instructions called bytecode. The bytecode is what gets stored on the blockchain.
When you call a contract, many computers each run its steps against the current state of the chain. State is the record of who owns what right now.
The same code and the same request always give the same answer. A contract cannot check the weather or flip a coin on its own, because computers would then disagree. The network accepts a result only when they agree, so nobody has to trust one company’s server.
Gas: why every step has a price
Gas is the fee that pays for each step the EVM runs. Every instruction has a fixed cost in gas. A simple transfer needs few steps and costs little, and a complex action costs more.
The meter also protects the network. A contract that loops forever runs out of gas and stops instead of freezing every computer.
You pay gas in the chain’s own coin, which is ETH on Ethereum. The price per unit moves with demand. What is gwei explains the units and the fee rules.
Reading from a contract changes nothing, so a read needs no transaction and no gas. Only actions that change state, such as sending tokens, cost gas.
What does “EVM compatible” mean?
An EVM compatible chain runs the same rules as Ethereum. You can place a contract built for Ethereum on that chain with little or no change. Wallets and tools that work on Ethereum work there too.
A developer who learned the EVM once can build for Ethereum, Base, BNB Chain, Polygon, Arbitrum, Optimism and Avalanche’s C-Chain. This is why so many chains chose it: they get existing tools, audited code and developers on day one.
Your own address works everywhere too. An AddressAn address is the public identifier of a wallet or contract on Ethereum, a long string starting with 0x.See it in the glossary is derived from your Private keyA private key is the secret number that proves you control a wallet, and anyone who has it can spend your funds.See it in the glossary, so the same key gives the same address on every EVM chain. Your funds do not follow it, because a balance on Ethereum is separate from a balance on Base.
EVM chains are separate worlds
Each EVM chain is its own network with its own ledger. Compatible means the rules match and nothing else is shared.
- Ethereum is the original, often called MainnetMainnet is the live Ethereum network where transactions involve real money, as opposed to test networks.See it in the glossary. It pays fees in ETH.
- Base is a Layer 2A layer 2 is a separate chain built on top of Ethereum that processes transactions more cheaply while relying on Ethereum for security.See it in the glossaryRead the explainer, a chain built on top of Ethereum to be cheaper and faster. It also pays fees in ETH.
- BNB Chain is a separate chain with its own validators. It pays fees in BNB.
- Polygon is another separate chain with its own validators. It pays fees in POL.
The same contract design is deployed again on each chain. The copies live at different addresses and hold different balances.
Circle issues USDC on Ethereum, Base and Polygon, each with 6 decimals. On BNB Chain the common USDC is Binance-Peg USDC, a bridged copy issued by Binance, with 18 decimals. Wrapped and bridged tokens explains how such copies work. A tool that assumes the number of decimals shows wrong amounts, so read the value from the contract. Decimals are covered in the ERC-20 explainer.
Newer features also arrive at different times, so compatible chains stay close but are not locked together.
Chains that are not EVM
Bitcoin has its own, much simpler design, and Solana has its own execution engine. Contracts written for the EVM do not run on them, and their wallets and tools differ. “EVM chains” means the largest family of chains with shared tooling, not the whole industry.
See it on a real contract
The card below reads the USDC supply on Base with the same kind of request used for Ethereum.
USDC in circulation on Base
Reading live from Base
Inspect USDC on Base in the Contract Inspector
Show the query
formatUnits(usdc.totalSupply(), usdc.decimals())Open the Contract Inspector and paste 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 on Ethereum, then 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on Base. Both show the same kind of function list and different addresses, because they are separate deployments. The inspector also shows whether a contract is a proxy. More tools are in the free tools.
Common mix-ups
- “EVM compatible means the same chain.” It means the same rules. Each chain has its own ledger, balances and fees.
- “My tokens move to every chain automatically.” Your address is the same everywhere, but a balance sits on one chain. Moving value between chains needs a bridge.
- “The EVM is a coin or a company.” It is a design for running contracts, and nobody owns it. ETH is the coin that pays for gas on Ethereum.
- “A contract at the same address on two chains is the same contract.” Each chain keeps its own code and data. Check the chain along with the address.
Summary
- The EVM is the shared design that Ethereum and many other chains use to run smart contracts.
- Every step costs gas, and reading data is free.
- “EVM compatible” means the same rules, not the same chain: each chain has its own balances, fees and copies of every contract.
For developers
One request shape works on every supported chain: change chain and the contract address, and keep the expression. Read decimals() on each chain instead of hard-coding it, and see the ERC-20, ERC-721 and ERC-1155 ABI JSON reference for the function lists of common tokens.