Prerequisites
Before implementing Tempo support, ensure the following:- A Privy app configured with the application
- Basic familiarity with sending transactions
- (Optional) Gas sponsorship enabled to sponsor transaction fees
1. Create an embedded wallet
Privy embedded wallets support Tempo by default. To create an embedded wallet for a user on Tempo, use the same “Ethereum”chain_type as any other EVM-compatible chain.
This recipe includes examples of creating an EVM-compatible wallet in React, Node, or via the REST API. See Create a wallet for more guidance across all SDKs.
Once created, the wallet address receives payments on Tempo.
2. Transfer tokens on Tempo
The/transfer endpoint provides the simplest integration path for sending tokens on Tempo. Privy handles Tempo transaction construction, token decimal precision, and gas sponsorship automatically.
The /transfer endpoint also supports cross-chain bridging to and from Tempo. See the transfer API reference for full parameter documentation.
3. Send custom transactions on Tempo
For use cases beyond simple transfers — such as batched calls, custom contract interactions, specifying fee tokens, or using viem directly — use the low-level transaction APIs. To send transactions on Tempo mainnet, specify the CAIP-2 identifiereip155:4217 when making transaction requests. This routes transactions to the Tempo network.
To send transactions on Tempo Moderato (testnet), specify the CAIP-2 identifier
eip155:42431.If no transaction type is specified, Privy sends a standard EIP-1559 transaction. Use Tempo
transaction type
118 to access Tempo-native features like specifying the fee token.Using Privy SDK or REST API
Using Privy SDK or REST API
Privy SDKs and REST API support Tempo transactions natively. Specify
type: 118 in the transaction
params to access Tempo-native features like fee token control and gas sponsorship.Using viem tempoActions
Using viem tempoActions
This approach uses viem’s
tempoActions extension to send native Tempo transactions. Use
this path when building with viem directly, particularly for React embedded wallets.Using gas sponsorship
Using gas sponsorship
This approach sends a Tempo transaction with Privy paying the gas fee. Gas
sponsorship must be enabled in the Privy Dashboard
before use, and requires TEE execution. Privy adds the Tempo fee payer signature before broadcasting
the transaction.
Controlling transactions with policies
Privy’s policy engine supports Tempo-specific transaction fields via thetempo_transaction field source. Your app can require a specific fee token, enforce or block transaction sponsorship, and time-bound validity windows, all without affecting standard EVM policy rules.
See Tempo policy examples for ready-to-use policy configurations.
Related resources
Send a transaction
Complete guide to sending transactions with Privy
Gas sponsorship overview
Learn about Privy’s gas sponsorship engine
Balance webhooks
Subscribe to deposit and withdrawal events.
Create a wallet
Learn more about creating embedded wallets
Tempo policy examples
Configure policies for fee tokens, sponsorship, and time windows on Tempo

