Stablecoin gas fees: Tempo has no native gas token. Transaction fees are paid in TIP-20 stablecoins (like pathUSD or AlphaUSD). When using development tools, you’ll need testnet stablecoins from the faucet.
MetaMask
On node access details, click Connect wallet to inject your Chainstack endpoint automatically. If you need to add the network manually, use:- Network name:
Tempo Testnet (Moderato) - RPC URL: your Chainstack HTTPS endpoint
- Chain ID:
42431 - Currency symbol:
USD - Block explorer URL:
https://explore.tempo.xyz
Testnet stablecoin addresses
| Token | Address |
|---|---|
| pathUSD | 0x20c0000000000000000000000000000000000000 |
| AlphaUSD | 0x20c0000000000000000000000000000000000001 |
| BetaUSD | 0x20c0000000000000000000000000000000000002 |
| ThetaUSD | 0x20c0000000000000000000000000000000000003 |
web3.py
Build DApps using web3.py and Tempo nodes deployed with Chainstack.- Install web3.py.
- Connect over HTTP or WebSocket.
HTTP
Use theHTTPProvider to connect to your node endpoint and get the latest block number.
WebSocket
Use theWebSocketProvider to connect over WebSocket. WebSocket connections enable subscriptions for real-time events like new blocks and pending transactions.
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- YOUR_CHAINSTACK_WSS_ENDPOINT — your node WSS endpoint protected either with the key or password
- USERNAME — the username to your node if you use a password-protected endpoint
- PASSWORD — the password to your node if you use a password-protected endpoint
- HOSTNAME — the host name of your node
- Moderato Testnet:
42431
web3.py works for basic JSON-RPC operations but does not support Tempo’s native
feeToken parameter. For transactions, Tempo uses a cascading fee algorithm that defaults to pathUSD for non-TIP20 contract interactions. For full Tempo Transaction support, use Viem (TypeScript) or tempo-foundry (CLI).ethers.js
Build DApps using ethers.js and Tempo nodes deployed with Chainstack.- Install ethers.js.
- Connect over HTTP or WebSocket.
HTTP
Use theJsonRpcProvider object to connect to your node endpoint and get the latest block number:
WebSocket
Use theWebSocketProvider to connect over WebSocket. WebSocket connections enable subscriptions for real-time events like new blocks and pending transactions.
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- YOUR_CHAINSTACK_WSS_ENDPOINT — your node WSS endpoint protected either with the key or password
ethers.js works for basic JSON-RPC operations but does not support Tempo’s native
feeToken parameter. For transactions, Tempo uses a cascading fee algorithm that defaults to pathUSD for non-TIP20 contract interactions. For full Tempo Transaction support (fee token selection, fee sponsorship, batch transactions), use Viem instead.Viem
Viem is the recommended TypeScript library for Tempo development. Starting from[email protected], Viem has native Tempo support with full access to Tempo Transaction features.
- Install Viem:
- Create a client configured for Tempo:
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- YOUR_PRIVATE_KEY — the private key of your account (with
0xprefix)
WebSocket
Use thewebSocket transport for real-time subscriptions:
Send transactions with fee token
Viem’s Tempo extension supports thefeeToken parameter to specify which stablecoin pays the transaction fee:
Get token balance
Wagmi
Wagmi provides React Hooks for Tempo development. Starting from[email protected], Wagmi has native Tempo support.
- Install Wagmi:
- Configure Wagmi with Tempo:
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- YOUR_CHAINSTACK_WSS_ENDPOINT — your node WSS endpoint for real-time subscriptions
- Use Tempo hooks in your React components:
Hardhat
Configure Hardhat to deploy contracts and interact through your Tempo nodes.- Install Hardhat and create a project.
-
Create a new environment in
hardhat.config.js:where- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password. See node access details.
- YOUR_PRIVATE_KEY — the private key of the account that you use to deploy the contract
-
Run
npx hardhat run scripts/deploy.js --network tempoTestnetand Hardhat will deploy using Chainstack.
Remix IDE
To make Remix IDE interact with the network through a Chainstack node:- Get MetaMask and set it to interact through a Chainstack node. See MetaMask.
- In Remix IDE, navigate to the Deploy & run transactions tab. Select Injected Provider - MetaMask in Environment.
Remix IDE uses standard EVM transactions and does not support Tempo’s
feeToken parameter. Transactions default to pathUSD for gas fees when interacting with non-TIP20 contracts. Ensure your wallet has pathUSD balance. For smart contract deployment with fee token control, use tempo-foundry instead.tempo-foundry
Tempo has a custom Foundry fork with native support for stablecoin gas fees via the--fee-token flag.
Installation
Install tempo-foundry:-tempo, indicating you are using the Tempo fork:
Forge
Useforge to develop, test, and deploy your smart contracts.
To deploy a contract:
src/MyContract.sol:MyContract— path to your contract file and the contract name- YOUR_PRIVATE_KEY — the private key to your funded account that you will use to deploy the contract
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
--fee-token— the TIP-20 token address to pay gas fees (AlphaUSD in this example)--broadcast— broadcasts the transaction to the network
Cast
Usecast to interact with the network and the deployed contracts.
To get the latest block number:
--fee-token):
Get testnet tokens
Fund your wallet using thetempo_fundAddress RPC method. This faucet is only available on the public Tempo RPC: