Overview
Tempo is a stablecoin payments blockchain where all value is held in TIP-20 tokens — there is no native gas token. CDP Embedded Wallets integrate with Tempo using a two-step sign-then-broadcast pattern: the CDP backend signs the transaction server-side, and you broadcast it to Tempo’s RPC yourself using a viem public client. This guide covers:- Configuring the CDP wagmi connector for Tempo
- Creating a viem public client to read chain state and broadcast transactions
- Querying TIP-20 token balances (Tempo has no native token)
- Signing and broadcasting TIP-20 transfers with
useSignEvmTransaction
Tempo uses its own native account abstraction model and does not support ERC-4337 smart accounts. You must configure your CDP wallet with
createOnLogin: "eoa".Prerequisites
Prerequisites
- A free CDP Portal account and project
- Node.js 22+
- A node package manager installed (i.e.,
npm,pnpm, oryarn) - Basic familiarity with React and TypeScript
- Configured your domain in CDP Portal (see below)
How to configure your domain in CDP Portal
How to configure your domain in CDP Portal
Step 1: Access CDP PortalNavigate to the Security Configuration in CDP Portal, and click Add domain to include your local app.
Step 2: Add your domain
Step 3: Save your changesClick Add domain again to save your changes.
You should see your domain listed in the CDP Portal dashboard. The allowlist will take effect immediately upon saving.

- For local development: Use
http://localhost:3000(or your preferred port) - For production: Use your actual domain (e.g.,
https://yourapp.com)


Configure the wagmi connector for Tempo
Configure
createCDPEmbeddedWalletConnector with tempoModerato as the chain and set createOnLogin: "eoa". Smart accounts are not supported on Tempo.src/config.ts
Create a viem public client for Tempo
Create a viem
PublicClient pointed at the Tempo RPC. This client handles all read operations (balances, nonces, gas estimation) and is used to broadcast signed transactions.src/tempo.ts
Read TIP-20 token balances
Tempo has no native token. Query balances by calling
balanceOf on each TIP-20 token contract via tempoClient.readContract. All Tempo stablecoins use 6 decimals.TIP-20 is Tempo’s token standard. It shares the same interface as ERC-20, which is why viem’s standard ERC-20 ABI works without modification.
src/Balances.tsx
Sign and broadcast a transaction
CDP Embedded Wallets sign transactions server-side. Use
useSignEvmTransaction from @coinbase/cdp-hooks to get a signed transaction from the CDP backend, then broadcast it yourself using tempoClient.sendRawTransaction.This two-step approach is required because the signer lives in the CDP backend, not in an injected browser wallet.src/Transaction.tsx
useSendEvmTransaction does not support Tempo because CDP’s Send Transaction API does not include Tempo as a managed network. Instead, use useSignEvmTransaction to sign and broadcast manually — exactly as shown above.Server Wallets on Tempo
CDP Server Wallets support Tempo with no server-side changes required. Because Tempo is EVM-compatible, signing works by simply setting the correct chain ID in your transaction — the same signing infrastructure that works for Base and Ethereum works for Tempo.Demo app
Explore a complete working integration in the CDP + Tempo demo app.Advanced Tempo features
Viem’stempoActions extension unlocks Tempo-native capabilities beyond what a plain public client provides:
| Feature | Description |
|---|---|
| Batch calls | Send multiple transactions atomically in a single sendTransactionSync call via the calls array |
| Fee sponsorship | Designate a feePayer address to cover transaction fees on behalf of users |
| Concurrent transactions | Use nonceKey to send parallel transactions without nonce collisions |
| Configurable fee token | Choose which TIP-20 token pays fees, either per-transaction or as a chain-level default |
| Tempo-specific actions | Read TIP-20 token metadata and other Tempo protocol data via client.token.getMetadata() |
tempoActions from viem/tempo:
What to read next
- React Hooks: Full reference for
useSignEvmTransactionand other CDP hooks - Wagmi Integration: General guide for using CDP Embedded Wallets with wagmi
- Server Wallets: Use CDP Server Wallets to sign Tempo transactions from your backend
- Tempo documentation: Official Tempo chain documentation