·Transfa Team

What Is TIP-20?

TIP-20 is Tempo's enshrined token standard for stablecoins. All tokens have 6 decimals, support memo transfers, and get dedicated payment lane blockspace.

tempotip20tokensstablecoins

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-20TIP-20
DecimalsDeveloper chooses (usually 18)Always 6
DeploymentAny smart contractFactory precompile at 0x20Fc...
Address formatAnyAlways starts with 0x20c0
Memo supportNonetransferWithMemo(address, uint256, bytes32)
CompliancePer-contract logicShared TIP-403 Policy Registry
Fee paymentCannot pay gasUSD-denominated TIP-20 tokens can pay transaction fees
BlockspaceCompetes with all transactionsDedicated 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:

TokenAddress
pathUSD0x20c0000000000000000000000000000000000000
AlphaUSD0x20c0000000000000000000000000000000000001
BetaUSD0x20c0000000000000000000000000000000000002
ThetaUSD0x20c0000000000000000000000000000000000003

Related content