Skip to content

Chains and tokens ​

OpenRampKit names chains with CAIP-2 ids and tokens with their address (or native). @openrampkit/core exports the metadata below.

Chain ids ​

ChainCAIP-2 idNative tokenNotes
Ethereumeip155:1ETH
Baseeip155:8453ETHDefault hop chain for two-leg pathways
Arbitrumeip155:42161ETH
Optimismeip155:10ETH
Polygoneip155:137POL
BNB Chaineip155:56BNB
Monadeip155:143MON
HyperEVMeip155:999HYPE
Tempoeip155:4217none (fees in USD stablecoins)See Tempo
Tempo Testnet (Moderato)eip155:42431none (fees in pathUSD)TEMPO_TESTNET. OpenRampSettlement deployed. Playground testnet mode
Solanasolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpSOL (9 decimals)See Solana
Solana Devnetsolana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1SOLMetadata and devnet USDC only
Robinhood Chaineip155:4663ETHArbitrum Orbit L2. No USDC in USDC yet.
Arbitrum Sepoliaeip155:421614ETHTestnet. Circle test USDC. Used by the settlement contract tests.
Robinhood Chain Testneteip155:46630ETHTestnet

CHAINS[id] gives name, nativeSymbol, nativeDecimals, testnet, stablecoinFees and explorerUrl. A chain that is not in the table still works when an adapter supports it. The UI then shows the CAIP-2 id as the name.

Token ids ​

  • EVM token addresses are not case-sensitive. OpenRampKit stores them in lowercase.
  • Solana mints are base58 and case-sensitive. OpenRampKit keeps them as given.
  • normalizeToken(chain, token) and sameToken(chain, a, b) apply these rules. Use them when you compare tokens.

USDC[chain] gives the well-known USDC on each chain: Ethereum, Base, Arbitrum, Optimism, Polygon, Tempo, Solana, and Circle's test USDC on Arbitrum Sepolia. TESTNET_USDC gives Solana devnet USDC. isUsdc(chain, token) checks both.

Tempo ​

Tempo is a payments-first Layer 1 from Stripe and Paradigm. Its mainnet has been live since 18 March 2026.

ItemValue
Chain id4217 (CAIP-2 eip155:4217, TEMPO_MAINNET)
TestnetModerato, chain id 42431 (TEMPO_TESTNET)
Public RPChttps://rpc.tempo.xyz (testnet https://rpc.moderato.tempo.xyz)
Explorerhttps://explore.tempo.xyz
Token standardTIP-20 (ERC-20 compatible, 6 decimals for USD stablecoins)
FeesPaid in a USD stablecoin, not in a native gas token. pathUSD is the default fee token.
pathUSD0x20c0000000000000000000000000000000000000 (TEMPO_PATH_USD)
USDC (bridged, "USDC.e" in Tempo docs)0x20c000000000000000000000b9537d11c60e8b50 (TEMPO_USDC, also USDC['eip155:4217'])

What OpenRampKit supports on Tempo ​

  • Relay. Relay supports Tempo with chain id 4217. Its token list has USDC, pathUSD, USDT0 and OUSD on Tempo. So these pathways work with the Relay adapter and a Tempo destination:
    • Card or local QR, then the Relay bridge hop from USDC on Base to USDC on Tempo.
    • "Pay with wallet" from any EVM chain or Solana.
    • "Transfer crypto" to a Relay deposit address.
    • Withdraw to a Tempo address.
  • EVM wallet. Tempo is an EVM chain, so wagmiWallet signs Tempo transactions. Add the Tempo chain to your wagmi config (viem has a tempo chain, or use defineChain with the values above).
  • Balances. eth_getBalance on Tempo does not return a real balance (Tempo has no native token). wagmiWallet does not show a native balance on chains with stablecoinFees: true. It shows USDC.
  • Same-chain checks. The Relay adapter has a default Tempo RPC (https://rpc.tempo.xyz) for same-chain, same-token checks.
ts
import { TEMPO_MAINNET, TEMPO_USDC } from '@openrampkit/core'

await openramp.sessions.create({
  userId: user.id,
  destination: { type: 'crypto', chain: TEMPO_MAINNET, token: TEMPO_USDC, symbol: 'USDC', decimals: 6, address: user.tempoAddress },
})

Gaps ​

  • Fee token. A Tempo wallet pays fees in a USD stablecoin. The user needs a stablecoin balance on Tempo to send a transaction there (for example "Pay with wallet" from Tempo, or a withdraw from Tempo). Deposits to Tempo through Relay do not need a Tempo balance: Relay pays the destination side.
  • Tempo transaction features. OpenRampKit sends standard EVM transactions. It does not use Tempo's own transaction type (fee token choice, batched calls, fee sponsorship).
  • Direct onramps. MoonPay announced a Tempo onramp for USDC.e and pathUSD. The MoonPay adapter does not list a Tempo currency code yet, because we could not confirm the code. Until then, fiat reaches Tempo through the two-leg pathway (onramp to Base, then Relay).
  • Testnet. Relay does not route the Moderato testnet. @openrampkit/core has its metadata (TEMPO_TESTNET), but no token addresses for it. OpenRampSettlement is deployed there. The playground testnet mode and NETWORK=tempo-testnet pnpm testnet:settle pay AlphaUSD (0x20c0000000000000000000000000000000000001) through it, with the mock localChain leg.

Sources: Tempo connection details, Tempo FAQ, Bridge stablecoins via Relay (Tempo docs), Relay GET /chains (chain 4217), MoonPay adds Tempo onramp.

MIT licensed