| title | Tempo RPC Reference |
|---|---|
| description | Reference for Tempo-specific JSON-RPC methods in the tempo, consensus, and admin namespaces, plus modified eth_ behavior. |
Tempo nodes expose all standard Ethereum JSON-RPC methods (eth_, net_, web3_, txpool_, trace_, debug_) plus Tempo-specific namespaces for fork scheduling, consensus data, and node administration.
Connect to a public RPC endpoint or run your own node:
| Network | RPC URL |
|---|---|
| Mainnet | https://rpc.tempo.xyz |
| Testnet | https://rpc.moderato.tempo.xyz |
:::info Not all methods listed below are available on public endpoints. Method availability depends on node role and configuration. :::
| Method group | Availability |
|---|---|
tempo_forkSchedule |
All Tempo nodes |
tempo_fundAddress |
Faucet-enabled testnet endpoints only |
consensus_* |
Validator nodes only |
consensus_subscribe |
Validator nodes over WebSocket only |
admin_validatorKey |
Self-hosted nodes with admin API enabled |
Returns the Tempo fork schedule and the currently active fork at the chain head. Each entry includes the fork name, activation timestamp, whether it is active, and an EIP-2124 fork hash.
Parameters: None.
Returns:
| Field | Type | Description |
|---|---|---|
schedule |
ForkInfo[] |
Ordered list of Tempo forks |
active |
string |
Name of the currently active fork |
Each ForkInfo:
| Field | Type | Description |
|---|---|---|
name |
string |
Fork name (e.g. "T0", "T1", "T2") |
activationTime |
number |
Unix timestamp of activation |
active |
boolean |
Whether this fork is active at the chain head |
forkId |
string |
EIP-2124 fork hash (e.g. "0x471a451c"). Omitted for forks that are not yet active |
cast rpc tempo_forkSchedule --rpc-url https://rpc.tempo.xyzExample response:
{
"schedule": [
{ "name": "T0", "activationTime": 0, "active": true, "forkId": "0xfde57c3e" },
{ "name": "T1", "activationTime": 1770908400, "active": true, "forkId": "0x9e6fe384" },
{ "name": "T1A", "activationTime": 1770908400, "active": true, "forkId": "0x9e6fe384" },
{ "name": "T1B", "activationTime": 1771858800, "active": true, "forkId": "0x73a4f670" },
{ "name": "T1C", "activationTime": 1773327600, "active": true, "forkId": "0x2a3ee80d" },
{ "name": "T2", "activationTime": 1774965600, "active": true, "forkId": "0x471a451c" },
{ "name": "T3", "activationTime": 1777298400, "active": true, "forkId": "0xd2087b77" }
],
"active": "T3"
}Available on faucet-enabled testnet endpoints only. Mints test stablecoins to the given address. On the public Moderato testnet endpoint, this currently mints pathUSD, AlphaUSD, BetaUSD, and ThetaUSD.
Parameters:
| Name | Type | Description |
|---|---|---|
address |
Address |
Recipient address |
Returns: B256[] — array of transaction hashes, one per token minted.
cast rpc tempo_fundAddress 0xYOUR_ADDRESS \
--rpc-url https://rpc.moderato.tempo.xyzAvailable on validator nodes only. Provides real-time consensus state for explorers, bridges, and indexers.
Get a finalized block by height or latest.
Parameters:
| Name | Type | Description |
|---|---|---|
query |
"latest" or {"height": number} |
Which finalization to retrieve |
Returns: CertifiedBlock | null
| Field | Type | Description |
|---|---|---|
epoch |
number |
Consensus epoch |
view |
number |
Consensus view |
digest |
B256 |
Block digest |
certificate |
string |
Hex-encoded BLS finalization certificate |
block |
Block |
The full Tempo block |
# Latest finalization
cast rpc consensus_getFinalization '"latest"' --rpc-url <VALIDATOR_RPC>
# By height
cast rpc consensus_getFinalization '{"height": 1000000}' --rpc-url <VALIDATOR_RPC>Returns the current consensus state snapshot: the latest finalized block and the latest notarized block (if not yet finalized).
Parameters: None.
Returns:
| Field | Type | Description |
|---|---|---|
finalized |
CertifiedBlock | null |
Latest finalized block |
notarized |
CertifiedBlock | null |
Latest notarized block (if ahead of finalized) |
cast rpc consensus_getLatest --rpc-url <VALIDATOR_RPC>WebSocket-only subscription to consensus events. Emits events when blocks are notarized, finalized, or views are nullified.
Event types:
| Type | Fields | Description |
|---|---|---|
notarized |
epoch, view, digest, certificate, block, seen |
A block was notarized |
finalized |
epoch, view, digest, certificate, block, seen |
A block was finalized |
nullified |
epoch, view, seen |
A view was nullified (no block produced) |
The seen field is a Unix timestamp in milliseconds.
Example event:
{
"type": "finalized",
"epoch": 42,
"view": 387213,
"digest": "0x6baa8fa8...",
"certificate": "0x...",
"block": { ... },
"seen": 1775134536000
}Returns DKG (Distributed Key Generation) identity transition proofs. Useful for light client verification and bridge implementations.
Parameters:
| Name | Type | Description |
|---|---|---|
from_epoch |
number | null |
Epoch to search from (defaults to latest finalized) |
full |
boolean | null |
If true, return all transitions back to genesis; if false (default), only the most recent |
Returns:
| Field | Type | Description |
|---|---|---|
identity |
string |
Hex-encoded BLS public key at the requested epoch |
transitions |
IdentityTransition[] |
Transitions ordered newest to oldest |
Each IdentityTransition:
| Field | Type | Description |
|---|---|---|
transitionEpoch |
number |
Epoch where the DKG ceremony occurred |
oldIdentity |
string |
BLS public key before the transition |
newIdentity |
string |
BLS public key after the transition |
proof |
object |
Block header + finalization certificate. Omitted for genesis (epoch 0) |
# Most recent transition
cast rpc consensus_getIdentityTransitionProof null null --rpc-url <VALIDATOR_RPC>
# Full chain back to genesis
cast rpc consensus_getIdentityTransitionProof null true --rpc-url <VALIDATOR_RPC>Requires the admin API to be enabled on a self-hosted node (--http.api admin).
Returns the node's ed25519 validator public key if configured, or null for non-validator nodes.
Parameters: None.
Returns: B256 | null
cast rpc admin_validatorKey --rpc-url http://localhost:8545Tempo is fully EVM compatible, but the following standard methods behave differently due to the lack of a native gas token:
Always returns a large constant (0x9612084f0316e0ebd5182f398e5195a51b5ca47667d4c9b26c9b26c9b26c9b2) rather than an actual balance. Tempo has no native token — use TIP-20 balanceOf to query token balances.
Gas estimation accounts for TIP-20 fee token balances instead of native ETH. The gas allowance is calculated from the effective fee payer's selected fee token balance.
Accepts both standard EVM transaction types and Tempo Transactions (type 0x76). Transactions targeting a subblock proposer are routed directly to the consensus layer when submitted to the matching validator node; other nodes reject them.