Bank Precompile
The Bank Precompile is a system smart contract residing at the fixed address0x0000000000000000000000000000000000000064.
It offers EVM developers a gas-efficient and native pathway to interact directly with the Injective’s bank module (x/bank). This effectively bringing ERC-20 tokens on-chain. Any ERC-20 contract using the Bank precompile will be represented as erc20:0x... denom on-chain. Technically, this means that tokens reside only on-chain, with the EVM providing a view to the chain state rather than maintaining a separate copy. Unlike traditional bridging, where two token versions require user actions to switch, the Bank precompile offers real-time, dual-environment reflection for any transfer using either the on-chain bank denom or the ERC-20 transfer() method.
A range of ERC-20 implementations backed by the Bank precompile, alongside precompile interfaces and abstract contracts, are available at Injective’s Solidity Contracts Repository. Key contracts include:
- Bank.sol – precompile interface
- BankERC20.sol – abstract ERC20 implementation backed by the Bank precompile
- FixedSupplyBankERC20.sol – decentralized ERC20 with fixed supply (no owner, no minting or burning)
- MintBurnBankERC20.sol – ERC20 with an owner authorized to mint and burn tokens
