# ERC20 Tokens
With the development of Nibiru EVM, the network supports Ethereum smart contracts, allowing for the deployment of ERC20 tokens. Each ERC20 token is a fungible digital asset on the Nibiru blockchain.
New to ERC20 tokens? Go to this section to learn more.
# FunToken Mapping Mechanism
How this works is that a canonical mapping called a "FunToken mapping" can be created between a ERC20 and Bank Coin. This mapping ties a unique connection between the two fungible token representations and enables all accounts to freely convert between both forms.
# How do Bank Coins differ from ERC20 tokens?
Aspect | Bank Coins | ERC20 Tokens |
---|---|---|
State Management | Managed directly by the Bank module in its own key-value store | Managed within each token's smart contract state |
Creation Process | Created through governance proposals, permissioned modules, or the Tokenfactory module | Created by deploying new smart contracts |
Efficiency | Typically more gas-efficient due to native implementation | Generally consume more gas due to smart contract execution |
Standardization | All follow the same standard and are handled uniformly by the blockchain | Can have variations in implementation, though most follow a standard interface |
Balance Queries | Queried through the Bank module's API, which is easy to manage because the same generic query is used for all coins. | Queried by calling the ERC20 token's smart contract, as balances are individually stored on each contract. |
Transfer Mechanism | Executed directly by the Bank module | Executed by calling the token's transfer function |
Supply Management | Controlled by authorized modules or governance | Managed by the token's smart contract logic |
Permissionless Creation | Possible via the Tokenfactory module | Inherent (anyone can deploy a new token contract) |
Storage Efficiency | More efficient as all coins share the same infrastructure | Each token contract stores its own data separately |
Interoperability | Native to the Bank Module but can be converted to ERC20 via the FunToken system | Native to EVM environments (Nibiru EVM in this case) but can be converted to Bank Coins via the FunToken system |
# Bridged USDC Standard
Circle's Bridged USDC Standard will be deployed on the Nibiru EVM when V2 hits mainnet.
"Bridged USDC Standard is a specification and process for deploying a bridged form of USDC on EVM blockchains with optionality for Circle to seamlessly upgrade to native issuance in the future.
The result is a secure and standardized way for any EVM blockchain and rollup team to transfer ownership of a bridged USDC token contract to Circle to facilitate an upgrade to native USDC, if and when both parties deem appropriate." - Circle Blog (opens new window).
More information on this is coming soon.
# LayerZero Assets
More information on this is coming soon.
# ERC20 Token Standard
ERC20, introduced in 2015 as part of an Etheruem Improvement Proposal (EIP-20), is the most widely adopted standard for fungible tokens on Ethereum-compatible blockchains, such as Nibiru. The ERC20 standard defines a set of rules that tokens must adhere to, ensuring compatibility with wallets, dApps, and other blockchain tools.
At its core, each ERC20 token is implemented as a smart contract—self-executing code on the blockchain—that handles all token functionality, including managing balances, transfers, and allowances.
The ERC20 standard specifies several core functions and events, which include:
balanceOf(address owner)
: Returns the balance of tokens for the given address.transfer(address to, uint256 value)
: Moves tokens to another address.approve(address spender, uint256 value)
: Sets an allowance for another address to spend tokens.allowance(address owner, address spender)
: Returns the remaining number of tokens a spender can transfer on behalf of the owner.transferFrom(address from, address to, uint256 value)
: Transfers tokens from one address to another using an allowance.totalSupply()
: Returns the total number of tokens in existence.
These functions allow apps to interact with ERC20 tokens in a standardized manner.