Skip to main content
Tempo is a low-cost, high-throughput EVM-compatible blockchain optimized for payments. Just like with other chains, your app can use Privy to create wallets for users to send and receive payments on Tempo. This guide demonstrates how to create an embedded wallet and send transactions on Tempo.

Prerequisites

Before implementing Tempo support, ensure the following:

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.
If gas sponsorship is enabled in the Privy Dashboard, the /transfer endpoint sponsors gas automatically. No additional parameters are needed.
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 identifier eip155: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.
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.
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.
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 the tempo_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.

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