ICS-20

Smart Contract Standard

Interchain Standard 20 (Fungible Token Transfer): the IBC application-layer protocol defining packet data structures, state machine logic, and encoding for permissionless cross-chain fungible token transfers. Implements a lock-and-mint / burn-and-unlock mechanism with IBC denomination tracing to preserve asset provenance across multi-hop transfers. The de facto cross-chain token standard for the Cosmos interchain ecosystem.

Open Standard

Details

License https://github.com/cosmos/ibc/tree/main/spec/app/ics-020-fungible-token-transfer
Dev Status 🟢 Active
Dev Status Detail Candidate (v1 active production standard); v2 deprecated
Owner Interchain Foundation / IBC Protocol team
Country Switzerland (ICF) / Global
Start Year 2019
Stack Cosmos SDK (Go / ibc-go); ibc-rs (Rust implementation); operates over IBC transport layer (ICS-2 light clients, ICS-3 connections, ICS-4 channels); SCALE/Protobuf encoding
Funding Interchain Foundation (ICF) grants; volunteer community contributors
Last Investigated Mar 9, 2026

Affordances

Non-monetary exchange Data portability

Smart Contract Standard Attributes

Origins Authored by Christopher Goes (cwgoes@interchain.berlin) on July 15, 2019 as part of the original IBC specification. Designed to solve the fundamental problem of moving tokens between sovereign IBC-connected blockchains without centralized bridges, using cryptographic light-client proofs. Deployed to production with the Cosmos Hub IBC launch in 2021.
Data Formats FungibleTokenPacketData: {denom: string, amount: uint256, sender: string, receiver: string}; IBC denomination trace format: {transfer_port}/{channel_id}/{base_denom}; Protobuf encoding for wire format
Terms Apache 2.0
Funds Unknown (ICF funds IBC core development broadly; ICS-20 specific budget not disclosed)
Based On ICS-2 (client semantics), ICS-3 (connection semantics), ICS-4 (channel semantics), ICS-25/ICS-26 (IBC handler/routing interfaces)
Permissions Permissionless: any IBC-enabled chain may open channels and initiate ICS-20 token transfers; no whitelisting of chains, channels, or denominations required
Development Tools ibc-go (Go SDK module); ibc-rs (Rust); Hermes relayer; Go Relayer; Interchain Test framework; CosmJS; Keplr wallet
Protocol Maturity / Standardization Production-grade standard in continuous operation since 2021; used by 100+ IBC-connected chains and averaging 2M+ monthly active users across the interchain; IBC v2 / Eureka extends ICS-20 reach to non-Cosmos chains
Trust Framework Trust-minimized: security reduces to the security of participating chains and their light clients; no centralized bridge operator; cryptographic proof verification at the destination chain; Byzantine-fault-tolerant within IBC's threat model
Target Application Domain Cross-chain DeFi (DEX, lending, liquidity); interchain governance; cross-chain staking; multi-chain DAO treasury management; civic applications spanning multiple sovereign chains
Deployment Model Module deployed as part of Cosmos SDK chain runtime; channels established via IBC handshake per chain pair; permissionless channel creation
Standard Type Cross-chain Standard
Ecosystem Cosmos (also extending to Ethereum, Solana, and beyond via IBC v2 / Eureka)