Celo Token
Introduction to CELO and its compliance to the ERC20 standard.
As of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo is no longer a standalone Layer 1 blockchain—it is now an Ethereum Layer 2! Some documentation may be outdated as updates are in progress. If you encounter issues, please file a bug report.
For the most up-to-date information, refer to our Celo L2 documentation.
Here’s an improved and clearer version of your text that aligns with the Celo Docs Style Guide:
CELO Token Duality
The CELO token is unique in its ability to function as both a native token and an ERC-20 compatible token.
What is Token Duality?
Token duality means that CELO functions both as the native currency of the Celo blockchain and as an ERC-20 compatible token. This enables CELO tokens to be transferred in two ways:
- Native transfers, similar to how ETH is transferred on Ethereum.
- ERC-20 transfers, using the standard ERC-20 interface.
Regardless of the transfer method, CELO tokens reflect in both the native account balance and the ERC-20 balance. Unlike ETH/WETH, there is no need for wrapping or unwrapping.
Implementation Details
Native Transfers and Balances
- Native transfers and balance storage work exactly as they do on Ethereum.
- The CELO ERC-20 contract reads native balances and triggers native transfers via its ERC-20 interface.
Reading Balances via ERC-20
- The ERC-20 implementation does not store balances in contract storage.
- Instead,
balanceOf(address)
directly returns the native balance, ensuring consistency across both transfer types.
Transfers via ERC-20
- The
transfer
andtransferFrom
functions do not modify contract storage. - Instead, these functions initiate a native transfer.
- Since Ethereum does not support native transfers from smart contracts, Celo introduces a transfer precompile to handle this. This precompile can only be called by the CELO token.
By enabling seamless interoperability between native and ERC-20 transactions, CELO remains highly flexible within the Ethereum and Celo ecosystems without requiring additional conversion steps.