TIP-20 is Tempo's native token standard, built for stablecoins. Unlike ERC-20 where any developer deploys their own token contract with arbitrary parameters, TIP-20 tokens are created through an enshrined factory precompile. Every TIP-20 token has exactly 6 decimals, supports protocol-level memo transfers, and gets dedicated payment lane blockspace.
How TIP-20 compares to ERC-20
TIP-20 shares the standard Transfer event signature with ERC-20, so existing tooling that listens for ERC-20 events will pick up TIP-20 transfers. But there are fundamental differences:
| ERC-20 | TIP-20 | |
|---|---|---|
| Decimals | Developer chooses (usually 18) | Always 6 |
| Deployment | Any smart contract | Factory precompile at 0x20Fc... |
| Address format | Any | Always starts with 0x20c0 |
| Memo support | None | transferWithMemo(address, uint256, bytes32) |
| Compliance | Per-contract logic | Shared TIP-403 Policy Registry |
| Fee payment | Cannot pay gas | USD-denominated TIP-20 tokens can pay transaction fees |
| Blockspace | Competes with all transactions | Dedicated payment lanes |
Features
Memo transfers. The transferWithMemo function attaches a bytes32 memo to any transfer: invoice numbers, payment references, order IDs. The TransferWithMemo event indexes the memo field, so you can filter logs by reference number.
Compliance via TIP-403. Every token has a transferPolicyId that references the TIP-403 Policy Registry at 0x403c000000000000000000000000000000000000. On every transfer, the protocol checks isAuthorized(policyId, from) and isAuthorized(policyId, to). A single policy can govern multiple tokens.
Role-based access control. Tokens support ISSUER_ROLE (mint/burn), PAUSE_ROLE, UNPAUSE_ROLE, BURN_BLOCKED_ROLE, and DEFAULT_ADMIN_ROLE for managing the token after creation.
Test stablecoins on Moderato
Tempo's testnet comes with four pre-deployed TIP-20 tokens:
| Token | Address |
|---|---|
| pathUSD | 0x20c0000000000000000000000000000000000000 |
| AlphaUSD | 0x20c0000000000000000000000000000000000001 |
| BetaUSD | 0x20c0000000000000000000000000000000000002 |
| ThetaUSD | 0x20c0000000000000000000000000000000000003 |
Related content
- How to Create a TIP-20 Token on Tempo: deploy your own token through the factory
- How to Track Wallet Balances and Transfers on Tempo: query TIP-20 balances and transfer history
- Transfa Data API reference: token metadata, holders, and allowance endpoints