Overview
The ICS20 precompile exposes standardized IBC fungible token transfer logic to EVM contracts. Initiate cross-chain token transfers, query transfer status, and build composable cross-chain payment flows — all from Solidity. Precompile Address:0x0000000000000000000000000000000000000802
Gas Costs
| Method Type | Gas Cost |
|---|---|
| Transactions | 2000 + (30 x bytes of input) |
| Queries | 1000 + (3 x bytes of input) |
Transaction Methods
| Method | Signature | Returns |
|---|---|---|
transfer | transfer(string sourcePort,string sourceChannel,string denom,uint256 amount,address sender,string receiver,Height timeoutHeight,uint64 timeoutTimestamp,string memo) | (uint64 nextSequence) |
Query Methods
| Method | Signature | Returns |
|---|---|---|
denom | denom(string hash) | (Denom denom) |
denomHash | denomHash(string trace) | (string hash) |
denoms | denoms(PageRequest pageRequest) | (Denom[] denoms, PageResponse pageResponse) |
Example
Trust Model
ICS20 transfers inherit IBC’s trust-minimized model:- No trusted intermediary required
- Safety backed by light-client verification on both chains
- Timeout mechanism ensures funds are never permanently locked