Skip to content
LogoLogo

Tempo RPC Reference

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:

NetworkRPC URL
Mainnethttps://rpc.tempo.xyz
Testnethttps://rpc.moderato.tempo.xyz
Method groupAvailability
tempo_forkScheduleAll Tempo nodes
tempo_fundAddressFaucet-enabled testnet endpoints only
consensus_*Validator nodes only
consensus_subscribeValidator nodes over WebSocket only
admin_validatorKeySelf-hosted nodes with admin API enabled

tempo_ namespace

tempo_forkSchedule

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:

FieldTypeDescription
scheduleForkInfo[]Ordered list of Tempo forks
activestringName of the currently active fork

Each ForkInfo:

FieldTypeDescription
namestringFork name (e.g. "T0", "T1", "T2")
activationTimenumberUnix timestamp of activation
activebooleanWhether this fork is active at the chain head
forkIdstringEIP-2124 fork hash (e.g. "0x471a451c"). Omitted for forks that are not yet active
cast rpc tempo_forkSchedule --rpc-url https://rpc.tempo.xyz

Example 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"
}

tempo_fundAddress

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:

NameTypeDescription
addressAddressRecipient address

Returns: B256[] — array of transaction hashes, one per token minted.

cast rpc tempo_fundAddress 0xYOUR_ADDRESS \
  --rpc-url https://rpc.moderato.tempo.xyz

consensus_ namespace

Available on validator nodes only. Provides real-time consensus state for explorers, bridges, and indexers.

consensus_getFinalization

Get a finalized block by height or latest.

Parameters:

NameTypeDescription
query"latest" or {"height": number}Which finalization to retrieve

Returns: CertifiedBlock | null

FieldTypeDescription
epochnumberConsensus epoch
viewnumberConsensus view
digestB256Block digest
certificatestringHex-encoded BLS finalization certificate
blockBlockThe 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>

consensus_getLatest

Returns the current consensus state snapshot: the latest finalized block and the latest notarized block (if not yet finalized).

Parameters: None.

Returns:

FieldTypeDescription
finalizedCertifiedBlock | nullLatest finalized block
notarizedCertifiedBlock | nullLatest notarized block (if ahead of finalized)
cast rpc consensus_getLatest --rpc-url <VALIDATOR_RPC>

consensus_subscribe / consensus_unsubscribe

WebSocket-only subscription to consensus events. Emits events when blocks are notarized, finalized, or views are nullified.

Event types:

TypeFieldsDescription
notarizedepoch, view, digest, certificate, block, seenA block was notarized
finalizedepoch, view, digest, certificate, block, seenA block was finalized
nullifiedepoch, view, seenA 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
}

consensus_getIdentityTransitionProof

Returns DKG (Distributed Key Generation) identity transition proofs. Useful for light client verification and bridge implementations.

Parameters:

NameTypeDescription
from_epochnumber | nullEpoch to search from (defaults to latest finalized)
fullboolean | nullIf true, return all transitions back to genesis; if false (default), only the most recent

Returns:

FieldTypeDescription
identitystringHex-encoded BLS public key at the requested epoch
transitionsIdentityTransition[]Transitions ordered newest to oldest

Each IdentityTransition:

FieldTypeDescription
transitionEpochnumberEpoch where the DKG ceremony occurred
oldIdentitystringBLS public key before the transition
newIdentitystringBLS public key after the transition
proofobjectBlock 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>

admin_ namespace

Requires the admin API to be enabled on a self-hosted node (--http.api admin).

admin_validatorKey

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:8545

Modified eth_ methods

Tempo is fully EVM compatible, but the following standard methods behave differently due to the lack of a native gas token:

eth_getBalance

Always returns a large constant (0x9612084f0316e0ebd5182f398e5195a51b5ca47667d4c9b26c9b26c9b26c9b2) rather than an actual balance. Tempo has no native token — use TIP-20 balanceOf to query token balances.

eth_estimateGas

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.

eth_sendRawTransaction

Accepts both standard EVM transaction types and Tempo Transactions (type 0x54). Transactions targeting a subblock proposer are routed directly to the consensus layer when submitted to the matching validator node; other nodes reject them.