CW20
Abbreviation: CW20
Pronunciation: SEE-DUB-ul-YOU-two-zero
Also known as: CW20
Definition
CW20 is a CosmWasm contract interface standard for fungible tokens, defining common balance, transfer, allowance, minting, and query behavior. CW20 tokens are smart-contract assets, unlike native bank-module coins on Cosmos SDK chains. Their contract address, code version, decimals, and enabled extensions determine identity and behavior, even when display symbols match native or bridged assets.
Overview
Meaning and scope
CW20 is a CosmWasm contract interface standard for fungible tokens, defining common balance, transfer, allowance, minting, and query behavior. CW20 tokens are smart-contract assets, unlike native bank-module coins on Cosmos SDK chains. Their contract address, code version, decimals, and enabled extensions determine identity and behavior, even when display symbols match native or bridged assets.
Mechanism and operation
It defines executable messages and queries for balances, transfers, sends to contracts, allowances, token information, and optional minting or marketing features implemented by a particular contract. Wallets and payment systems should identify a CW20 by chain and contract address, inspect token information, and validate receiving-contract hooks. CW20 should be implemented against an exact document revision, status, and activation context. Conformance to CW20 requires more than matching a field name or example. Teams adopting CW20 should track errata, compatibility changes, and the deployed software versions that enforce it.
Practical payment example
A Cosmos-based app accepts a CW20 token through a contract call. Its backend verifies the expected contract address and successful execution, because a token ticker does not identify the contract reliably.
Operational checks
A payment integration should check whether the supported token is a CW20 contract rather than a native chain denomination. Query the contract and balance changes through appropriate interfaces, inspect any contract-defined transfer behavior, and map contract addresses to accepted invoice assets through a controlled allowlist.
Distinctions and limits
They must not send native coins through CW20 methods or assume every contract supports optional functions. Risk-control point: CW20 provides interoperable fungible-token messages, while each chain-specific contract remains the authoritative asset identity and implementation.
Related reading
Related definitions: contract address.
Example
A Cosmos-based app accepts a CW20 token through a contract call. Its backend verifies the expected contract address and successful execution, because a token ticker does not identify the contract reliably.
Comparison
CW20 tokens are smart-contract assets, unlike native bank-module coins on Cosmos SDK chains. They must not send native coins through CW20 methods or assume every contract supports optional functions. Draft, final, optional, and network-activated specifications have different authority, and similarly named deployments may support different subsets or extensions.
Key Takeaway
CW20 provides interoperable fungible-token messages, while each chain-specific contract remains the authoritative asset identity and implementation.
Sources
- CosmWasm cw-plus Repository — CosmWasm (2026-07-30)
- Ethereum Documentation: Smart Contracts — Ethereum Foundation (2026-07-30)
- Ethereum Documentation: Transactions — Ethereum Foundation (2026-07-30)