Talero Public-Safe RPC
Public JSON-RPC method reference, integration patterns, and runtime safety behavior
Public edge reference
Public Integration Surface

Use Talero public-safe RPC without touching private operator paths

This guide documents the Talero JSON-RPC surface that is suitable for public builders, wallets, explorers, light clients, and hardened public gateways. It is based on the node codebase, not on private runbooks, and it stays deliberately inside the public-safe boundary.

Public-safe RPC JSON-RPC 2.0 Ethereum-compatible reads Talero-specific status No sensitive material
Public endpoint
POST https://rpc.talero.info/rpc
The public entry point is a JSON-RPC endpoint. Treat it as a constrained, rate-limited surface.
Important boundary
This is not the operator channel.
Admin overrides, trusted-only simulation flows, private proof bundles, and signer controls stay outside the public docs.

Public-safe does not mean unlimited. Talero can mask values, deny expensive methods, tighten quotas, or temporarily restrict parts of the public surface when privacy or safe-mode policy requires it.

Scope and boundary

Talero exposes Ethereum-style JSON-RPC plus Talero-specific methods for health, finality, checkpoints, diagnostics, fee planning, transaction tooling, and observer-facing PoS data. On a public edge, that surface is filtered through a public allowlist, privacy policy, safe-mode policy, and rate controls.

In scope here: public read methods, public-safe Talero methods, submission methods, and REST aliases that are suitable for public consumers.
Out of scope here: admin mutations, trusted-only state overrides, signer backends, operator-only metrics, private proof-bundle workflows, and any environment values that should stay in private ops material.

The page is written for two audiences at once:

  • Consumers of the shared public RPC at rpc.talero.info.
  • Operators who want to expose a hardened public edge from a self-hosted Talero fullnode.

Endpoint contract

The public JSON-RPC surface is exposed over POST /rpc. On mainnet and testnet, self-hosted Talero nodes bind RPC to 127.0.0.1:8547 by default. Binding a public interface requires an explicit operator acknowledgement, and a publicly bound RPC automatically enables public-mode restrictions.

Property Behavior Practical note
Transport POST /rpc over HTTP or HTTPS Public consumers should prefer HTTPS endpoints.
Envelope JSON-RPC 2.0 single request object Do not rely on batch-array requests on the public edge.
Body size Server-side limited Self-hosted defaults are conservative; public gateways may be stricter.
Method name Validated and length-capped Malformed or oversized method names are rejected early.
Params Validated per method family Deep or malformed parameter shapes return invalid-params errors.

For public deployments, Talero does not treat RPC as a trusted operator lane. Public mode, privacy mode, and safe mode are part of the contract that clients must tolerate.

Request model

Send a single JSON object with jsonrpc, id, method, and params. Methods accept either positional arrays or object-style params depending on the method. Talero returns a normal JSON-RPC success object with result or an error object with code and message.

curl -sS -X POST https://rpc.talero.info/rpc \
  -H 'content-type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_chainId",
    "params": []
  }'

When you build client code, assume that public nodes may rate-limit, mask some values, or reject expensive calls that would work on a private trusted node.

Quick examples

Best head height

curl -sS -X POST https://rpc.talero.info/rpc \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"eth_blockNumber","params":[]}'

Safe-mode status

curl -sS -X POST https://rpc.talero.info/rpc \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":3,"method":"talero_safeModeStatus","params":{}}'

Finality estimate for a transaction hash

curl -sS -X POST https://rpc.talero.info/rpc \
  -H 'content-type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":4,
    "method":"talero_finalityEstimate",
    "params":{"txHash":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
  }'

Hybrid transaction signing hash

curl -sS -X POST https://rpc.talero.info/rpc \
  -H 'content-type: application/json' \
  -d '{
    "jsonrpc":"2.0",
    "id":5,
    "method":"talero_txSigningHash",
    "params":{
      "from":"0x1111111111111111111111111111111111111111",
      "to":"0x2222222222222222222222222222222222222222",
      "nonce":1,
      "gas_limit":21000,
      "max_fee_per_gas":"1000000000",
      "max_priority_fee_per_gas":"100000000"
    }
  }'

Ethereum-compatible read methods

These methods give Talero an Ethereum-shaped consumer surface for wallets, explorers, bridges, and general EVM tooling. Public edges can still apply privacy masking, method quotas, and safe-mode restrictions.

Method Use it for Public-edge note
eth_chainId Discover the active chain ID. Use this instead of hardcoding chain identity.
net_version Ethereum-style network ID string. Compatibility helper for generic clients.
web3_clientVersion Client/version compatibility checks. Useful for diagnostics and support tooling.
eth_blockNumber Read the current best block height. Cheap and common polling primitive.
eth_getBlockByNumber Fetch a block by canonical height or tag. Public-safe but counted as a heavy method.
eth_getBlockByHash Fetch a block by hash. Heavy method; expect normal rate control.
eth_getBlockReceipts Fetch receipts for a block in one call. Useful for explorer indexing and analytics.
eth_getTransactionByHash Look up a transaction. Stable public lookup surface.
eth_getTransactionReceipt Read receipt, logs, and execution status. Preferred over scraping explorer HTML.
eth_getBalance Read an account balance. Privacy policy can mask or deny this on some public edges.
eth_getTransactionCount Read account nonce. Public privacy mode can mask or deny nonces.
eth_getCode Read contract bytecode. Public-safe read method.
eth_getStorageAt Read a storage slot. Can be denied by public privacy policy.
eth_getProof Read account and storage proofs. Public edges can deny it, and it only works on compatible state-root heights.
eth_getLogs Filter logs by selector, range, address, and topics. Public edges cap range and result count; always paginate responsibly.

Talero-specific read methods

These methods expose Talero-native status and compatibility information that does not fit cleanly into the Ethereum namespace. They are often the best first stop when you need network identity, policy state, or operator-facing summaries without private detail.

Method Use it for Notes
talero_health Node health and service status. JSON-RPC twin of the public health surface.
talero_epoch Epoch and height context. Compact chain-status helper.
talero_genesisHash Read the active genesis hash. Useful for network identity checks.
talero_getHardforkSchedule Read the protocol schedule. Good for tooling that needs upgrade awareness.
talero_getConsensusConfig Read the consensus manifest and hash. Public-safe consensus metadata only.
talero_getRpcCompat Read RPC alias and compatibility metadata. Includes legacy alias information.
talero_getNetworkInfo Read network identity, head, base fee, and service-level summary. Heavy read method with short-lived public caching.
talero_getPrivacyConfig Read the effective public privacy policy. Tells clients whether masking or denial is active.
talero_safeModeStatus Read the current safe-mode level and policy. Best way to explain sudden public-surface restrictions.
talero_networkHealth Read an anonymized network health summary. Aggregated view only; no private peer coordinates.
talero_networkRisk Read public-safe risk aggregation. Combines confidence, finality, and safe-mode signals.
talero_watchtowerStatus Read watchtower service status. Signal-only status; no private control path is documented here.
talero_getNodeDiagnostics Read aggregate node diagnostics. Public-safe diagnostic summary, not admin debug.
talero_getModuleStatus Read module-level service status. Useful for status dashboards.
talero_getActivityHints Read recent activity hints. Built for public UX surfaces.
talero_getRecentOperationalEvents Read recent operational event summaries. Public-safe activity stream summary.

Fees and execution methods

Public consumers often need fee guidance and read-only execution simulation. These methods are allowed on the public-safe surface, but several of them are considered heavy and can be throttled or denied when the public edge is under stress.

Method Use it for Public-edge note
eth_gasPrice Read a simple gas price suggestion. Compatibility helper for broad tooling.
eth_maxPriorityFeePerGas Read a priority-fee suggestion. Suitable for wallet defaults.
eth_feeHistory Read fee history data for estimation models. Heavy method with per-method quota on public edges.
talero_getBasefee
talero_get_basefee
Read Talero base-fee details. Prefer camelCase in new integrations.
talero_feeForecast Read Talero fee forecast output. Heavy method; supports lookback, horizon, and forecast mode.
eth_call Run a read-only contract call. Heavy method; public nodes may tighten quotas in safe mode.
eth_estimateGas Estimate gas for a transaction plan. Heavy method with dedicated quota controls.
talero_simulateTx Run Talero's public-safe transaction simulation path. Read-only simulation; good for builders that want extra Talero semantics.

On public edges, eth_getLogs, eth_feeHistory, eth_estimateGas, and other heavy methods are the first places where you should expect visible rate limiting when the service is under load.

Finality and checkpoint methods

Talero exposes public-safe finality helpers that go beyond standard Ethereum semantics. They are designed to help wallets, explorers, and bridges distinguish best head from finalized state and reason about risk without pulling private operator data.

Method Use it for Notes
talero_finalizedHead Read finalized height, hash, and lag. Public-safe distinction between best head and finalized head.
talero_confidenceScore Read a confidence score for recent chain conditions. UX-oriented confidence signal, not a finality guarantee.
talero_finalityEstimate Estimate finality for latest head, tx hash, block hash, or block number. Accepts object params such as { "txHash": "0x..." }.
talero_getCheckpoint Read the latest checkpoint bundle. Feature-gated by build; method may be absent on some binaries.
talero_getCheckpointHistory Read historical checkpoints. Public-safe historical listing when checkpoint support is compiled in.
talero_getFinalityReceiptBundle Read a compact public-safe receipt/finality bundle. Preferred public finality bundle surface for transaction consumers.

If you need a compact public-safe finality answer for a transaction, start with talero_getFinalityReceiptBundle and fall back to talero_finalityEstimate for higher-level UX.

Transaction tooling methods

Talero publishes helper methods for transaction construction and validation. These are especially useful when you need Talero's hybrid transaction-signing policy without embedding private signing logic into the node documentation.

Method Use it for Notes
talero_txCapabilities Read active transaction capability and signing-policy metadata. Includes PQ-related capability hints and schema versioning.
talero_txSchema Read the accepted transaction object schema. Good for validators in external client libraries.
talero_txSigningHash
talero_txSignHash
Generate the canonical signing message and hash. Use camelCase going forward; alias remains wire-compatible.
talero_txVerifyPreview Preview signature-verification outcome without broadcasting. Useful for wallet UX and preflight checks.
talero_validateIntent Validate a higher-level transaction intent. Also exposed through a public REST alias.
talero_routeHints Read route hints for transaction handling. Useful for wallets and orchestrators.

Submission methods

Talero keeps transaction submission available on the public-safe surface unless a node is operating in read-only mode. This means public builders can broadcast signed transactions without being handed any private operator privilege.

Method What it expects Public-edge note
eth_sendRawTransaction A raw signed transaction as hex. Preferred public submission method for standard clients.
eth_sendTransaction A transaction object. Accepted by Talero's normalized submission pipeline.
talero_sendTransaction A Talero transaction object. Useful when you need Talero-specific fields explicitly.

Submission methods are still subject to anti-spam rate limiting and to a node's read-only policy. A public-safe surface can accept broadcasts without being a trusted admin endpoint.

PoS observer methods

Talero also exposes observer-facing PoS and BFT methods that help consumers inspect validator sets, active sets, slashing rules, and BFT runtime status. These are public-safe reads, not validator-control methods.

Method Use it for Notes
talero_posGetValidatorSet Read the current validator set. Observer method only.
talero_posGetActiveSet Read the active validator subset. Supports a bounded limit parameter.
talero_posSlashingPolicy Read public slashing and validator policy metadata. Consensus policy view, not a mutation endpoint.
talero_posGetEpochSnapshot Read PoS epoch snapshot data. Public-safe observer surface.
talero_posGetEpochRewards Read PoS reward information for an epoch. Useful for dashboards and reward analysis.
talero_posGetDelegations Read delegation data. Public-safe read path.
talero_posBftStatus Read PoS/BFT runtime status and latest QC summary. Feature-gated by build; absent when pos-bft is not compiled in.
talero_posBftGetQc Read the latest QC summary. Public-safe observer path.
talero_posBftListQcs List recent quorum certificates. Useful for BFT observers and auditors.

Mining-role RPC such as talero_getWork, eth_getWork, talero_submitWork, eth_submitWork, and hashrate submission flows are role-conditioned and belong in the miner/pool guide, not in the generic public-safe RPC guide.

Public safety model

Talero layers multiple controls on top of the public JSON-RPC surface. Client integrations should assume these controls are normal, not exceptional.

Public binding and public mode

  • On mainnet and testnet, a self-hosted Talero node listens on loopback by default.
  • Binding RPC publicly requires explicit operator acknowledgement.
  • When a node is publicly bound, Talero forces public-mode method restrictions for non-admin callers.

Privacy policy

  • Public privacy mode can mask balances or nonces instead of returning raw values.
  • Proof and storage reads can be denied on hardened public deployments.
  • talero_getPrivacyConfig is the public-safe way to detect these rules.

Safe mode

  • Talero safe mode can reduce public concurrency and timeout budgets.
  • It can deny heavy public methods when the network is under stress.
  • Public mining RPC can also be restricted under elevated safe-mode levels.

Rate limits and heavy methods

  • All public clients pass through a general RPC rate bucket.
  • Heavy methods use additional quotas, including per-method limits for eth_feeHistory, eth_getLogs, and eth_estimateGas.
  • eth_getLogs requires a valid block selector and uses bounded range/result windows on public edges.

Read-only nodes

  • A node can run with transaction submission disabled for untrusted callers.
  • In that mode, trusted/private callers may still have different behavior than the public edge.
  • Public docs should describe the safe public contract, not private trust tiers.

Related public-safe REST aliases

Talero also exposes REST routes that mirror or summarize parts of the public-safe RPC surface. These aliases inherit public guards such as privacy policy and general rate limiting.

Route Purpose Note
GET /api/v1/health Detailed health summary. Friendly for dashboards and uptime checks.
GET /api/v1/network/health Network health aggregation. Public-safe aggregation only.
GET /api/v1/network/risk Network risk summary. REST alias of the public-safe risk surface.
GET /api/v1/confidence Confidence summary. Good for front-end status panels.
GET /api/v1/fees Current fee summary. Simple wallet/explorer helper.
GET /api/v1/fees/forecast Fee forecast summary. REST view over Talero fee planning output.
POST /api/v1/finality/estimate Finality estimate by JSON body. Shares the same public-safe finality semantics.
GET /api/v1/receipt/:hash/finality-bundle Receipt finality bundle by tx hash. REST twin of talero_getFinalityReceiptBundle.
POST /api/v1/route/hints Route-hint helper endpoint. Public-safe wallet/integration helper.
POST /api/v1/intents/validate Intent validation helper. REST alias for validation flows.
GET /api/v1/diagnostics/node
GET /api/v1/diagnostics/modules
Public-safe diagnostics. Status-grade summaries, not private debug dumps.
GET /api/v1/activity/hints
GET /api/v1/activity/events
Recent operational activity summaries. Useful for public status UX.

The top-level GET /events SSE stream exists separately from JSON-RPC. It is an event stream, not a stable replacement for method-based RPC, and public deployments may choose to keep it narrow or internal.

Error model

Talero uses conventional JSON-RPC success/error objects on /rpc. The exact code can depend on the method family, but the following cases are the ones public clients should expect most often.

Code / status Typical meaning What client code should do
-32602 Invalid params. Fix the request shape; do not retry blindly.
-32004 Target not found for finality-style queries. Handle as a missing object, not as a transport failure.
-32005
HTTP 429
Rate limit exceeded or request too large for a quota window. Back off, reduce request size, or paginate.
-32010
HTTP 403
Denied by public privacy policy or restricted trust tier. Do not assume the method is public-safe on every deployment.
-32050
HTTP 403/503
Method not allowed or temporarily restricted. Treat as policy, not as malformed transport.
-32000
HTTP 500
Internal node-side error. Retry cautiously and log the method and params shape.

On REST aliases, you should expect the same policy outcomes rendered as HTTP status codes: 400 for invalid params, 403 for denied public policy, 404 for not-found targets, 429 for throttling, and 503 when safe mode temporarily restricts a surface.