For the complete documentation index, see llms.txt. This page is also available as Markdown.

Network & Consensus (pod )

Network & Consensus (pod_) exposes Pod-specific endpoints that provide visibility into the network’s validator set and consensus process. These APIs surface data that is not available through standard Ethereum JSON-RPC methods, such as validator committees and aggregated voting information.

This interface is intended for infrastructure providers, validators, and light clients that need to inspect, monitor, or verify the state of the Pod network.

📝 This is a JSON-RPC 2.0 API. The request path is not important; the method to execute is defined by the method field in the request body. You can send all requests to /, and any path after / is optional and used only for documentation clarity.

Send Raw Transaction (With Attestation Feedback)

post

Submits a signed EIP-1559 transaction and waits for validator attestations, returning tx_hash, success count, and any rejection errors from validators.

Parameters:

  • signed_tx (string): Signed RLP-encoded transaction data

  • timeout_secs (integer, optional): Max seconds to wait for attestations. Default 10.

  • skip_validation (boolean, optional): When true, a full node skips its local pre-validation. Default false.

The wait ends when the transaction executes, when n − f validators attest, when f + 1 reject it permanently, or at the timeout; on a timeout the result reports what was heard so far. On a validator node the call returns immediately with successes: 0.

Errors (beyond invalid params):

  • 999 — account locked; data carries recovery_target and recovery_target_nonce.

  • -32003 — rejected permanently by at least f + 1 validators; data lists the rejections.

  • 997 — an empty transaction is required at data.nonce to make progress.

  • -32000 — the node is in read-only mode (see pod_status), or local validation failed on a non-contract rule (reason in data).

  • 3 — execution reverted: local validation failed on a contract rule; data is the ABI-encoded Error(string) reason.

  • -32025 — submission from a geo-restricted source.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_sendRawTransaction
idintegerRequiredDefault: 1
paramsarrayRequired

Parameters:

  1. signed_tx (string): Signed RLP-encoded transaction data
  2. timeout_secs (integer, optional): Max seconds to wait for attestations
  3. skip_validation (boolean, optional): Skip the full node's local pre-validation
Example: ["0x02f8...",10]
Responses
200

Object with tx_hash, successes count, and errors array

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_sendRawTransaction
POST /pod_sendRawTransaction HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "jsonrpc": "2.0",
  "method": "pod_sendRawTransaction",
  "id": 1,
  "params": [
    "0x02f8...",
    10
  ]
}
200

Object with tx_hash, successes count, and errors array

{
  "jsonrpc": "text",
  "result": {
    "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "successes": 1,
    "errors": [
      {
        "error": "text"
      }
    ]
  },
  "id": 1
}

Get Validator Committee

post

Returns the current validator committee and its quorum thresholds.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getCommittee
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

Committee information

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getCommittee
POST /pod_getCommittee HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 64

{
  "jsonrpc": "2.0",
  "method": "pod_getCommittee",
  "id": 1,
  "params": []
}
200

Committee information

{
  "jsonrpc": "text",
  "result": {
    "validators": [
      [
        0,
        "02a1633cafcc01ebfb6d78e39f687a1f0995c62fc95f51ead10a02ee0be551b5dc"
      ]
    ],
    "n": 1,
    "n_minus_3f": 1,
    "n_minus_f": 1
  },
  "id": 1
}

Get Vote Batches

post

Returns one validator's signed vote batches for the requested append-log sequence ranges. validator_index selects the validator; any node holding its batches can serve them, including a full node. Without validator_index the node serves its own batches; a full node then returns an internal error ("node is not a validator").

Each range is half-open, [start, end). The total across all ranges is capped by the node's vote-sync batch size; ranges past the cap are dropped, so re-request what is missing.

The result is a JSON array of vote batches, or with binary: true an object { data } holding the standard-base64 compact binary encoding of the same batches. Branch on the result: an array is the batches, an object carries them in data.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getVoteBatches
idintegerRequiredDefault: 1
Responses
200

Array of vote batch objects, or { data } when binary is true

application/json
jsonrpcstringOptional
resultone ofOptional
object[]Optional
or
idintegerOptional
post/pod_getVoteBatches
POST /pod_getVoteBatches HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "jsonrpc": "2.0",
  "method": "pod_getVoteBatches",
  "id": 1,
  "params": [
    [
      [
        0,
        1000
      ]
    ],
    false,
    3
  ]
}
200

Array of vote batch objects, or { data } when binary is true

{
  "jsonrpc": "text",
  "result": [
    {}
  ],
  "id": 1
}

Get Account Info

post

Returns an account's finalized/expected nonces and last finalized transaction as this node sees them. Public and unauthenticated diagnostic info. Returns null when the account has never finalized a transaction.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getAccountInfo
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. account (address): The account to look up.
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"]
Responses
200

Account nonce info, or null if the account has never finalized a tx

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getAccountInfo
POST /pod_getAccountInfo HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 110

{
  "jsonrpc": "2.0",
  "method": "pod_getAccountInfo",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
  ]
}
200

Account nonce info, or null if the account has never finalized a tx

{
  "jsonrpc": "text",
  "result": {
    "next_finalized_nonce": 1,
    "expected_nonce": 1,
    "last_finalized_tx": "0x0000000000000000000000000000000000000000000000000000000000000001"
  },
  "id": 1
}

Get Last Finalized Nonce

post

Returns the account's last finalized nonce, or null when the account has never finalized a tx.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getLastFinalizedNonce
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. account (address): The account to look up.
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"]
Responses
200

The account's last finalized nonce, or null

application/json
jsonrpcstringOptional
resultinteger · int64 · nullableOptional
idintegerOptional
post/pod_getLastFinalizedNonce
POST /pod_getLastFinalizedNonce HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 117

{
  "jsonrpc": "2.0",
  "method": "pod_getLastFinalizedNonce",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
  ]
}
200

The account's last finalized nonce, or null

{
  "jsonrpc": "text",
  "result": 1,
  "id": 1
}

Get Transaction Status

post

Returns the full pipeline status of a transaction: pending (with live vote counts), finalized (with execution result), or not_found for an unknown tx hash.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getTxStatus
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. tx_hash (bytes32): The transaction hash to look up.
Example: ["0xf74e07ff80dc54c7e894396954326fe13f07d176746a6a29d0ea34922b856402"]
Responses
200

Transaction status

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getTxStatus
POST /pod_getTxStatus HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 131

{
  "jsonrpc": "2.0",
  "method": "pod_getTxStatus",
  "id": 1,
  "params": [
    "0xf74e07ff80dc54c7e894396954326fe13f07d176746a6a29d0ea34922b856402"
  ]
}
200

Transaction status

{
  "jsonrpc": "text",
  "result": {
    "status": "not_found",
    "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "nonce": 1,
    "account_next_finalized_nonce": 1,
    "account_expected_nonce": 1,
    "quorum": 1,
    "votes": {
      "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
      "nonce": 1,
      "txs": [
        {
          "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
          "voters": [
            {
              "validator_index": 1,
              "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
            }
          ]
        }
      ],
      "bot_voters": [
        {
          "validator_index": 1,
          "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
        }
      ],
      "total_tx_votes": 1,
      "quorum": 1
    },
    "success": true,
    "gas_used": 1
  },
  "id": 1
}

Get Votes at a Nonce

post

Returns the votes observed for a given (account, nonce): the voter set per transaction hash plus the BOT voters. Returns null when no votes are pending at that nonce (never seen, or already finalized).

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getVotes
idintegerRequiredDefault: 1
paramsarrayRequired

Parameters:

  1. account (address): The account whose votes to inspect.
  2. nonce (integer): The nonce to inspect.
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",42]
Responses
200

Votes at the (account, nonce), or null if none are pending

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getVotes
POST /pod_getVotes HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "jsonrpc": "2.0",
  "method": "pod_getVotes",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    42
  ]
}
200

Votes at the (account, nonce), or null if none are pending

{
  "jsonrpc": "text",
  "result": {
    "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "nonce": 1,
    "txs": [
      {
        "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
        "voters": [
          {
            "validator_index": 1,
            "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
          }
        ]
      }
    ],
    "bot_voters": [
      {
        "validator_index": 1,
        "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
      }
    ],
    "total_tx_votes": 1,
    "quorum": 1
  },
  "id": 1
}

Get Transactions by Hash

post

Fetches full signed transactions by hash. The request hash list is capped server-side, and the response is additionally truncated to the node's max response body size — a transaction that does not fit is omitted (re-request whatever is missing). Each returned item is a signed Pod transaction (EIP-1559 envelope plus signature); decode with the Pod SDK.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getTransactions
idintegerRequiredDefault: 1
Responses
200

Array of signed transaction objects (possibly truncated to the body-size budget)

application/json
jsonrpcstringOptional
resultobject[]Optional

A signed Pod transaction.

idintegerOptional
post/pod_getTransactions
POST /pod_getTransactions HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 137

{
  "jsonrpc": "2.0",
  "method": "pod_getTransactions",
  "id": 1,
  "params": [
    [
      "0xf74e07ff80dc54c7e894396954326fe13f07d176746a6a29d0ea34922b856402"
    ]
  ]
}
200

Array of signed transaction objects (possibly truncated to the body-size budget)

{
  "jsonrpc": "text",
  "result": [
    {}
  ],
  "id": 1
}

List Transactions

post

Lists signed transactions, newest first, optionally filtered by sender and/or recipient.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_listTransactions
idintegerRequiredDefault: 1
paramsarrayRequired

Parameters (all optional, positional):

  1. from_account (address, nullable): filter by sender.
  2. to_account (address, nullable): filter by recipient.
  3. limit (integer, nullable): maximum number of transactions to return (default and cap 10,000).
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",null,100]
Responses
200

Array of signed transaction objects

application/json
jsonrpcstringOptional
resultobject[]Optional

A signed Pod transaction.

idintegerOptional
post/pod_listTransactions
POST /pod_listTransactions HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 121

{
  "jsonrpc": "2.0",
  "method": "pod_listTransactions",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    null,
    100
  ]
}
200

Array of signed transaction objects

{
  "jsonrpc": "text",
  "result": [
    {}
  ],
  "id": 1
}

Get Recovery Target Transaction

post

Returns the transaction an account must recover past to make progress, or null if the account does not need recovery.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getRecoveryTargetTx
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. account (address): The account to inspect.
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"]
Responses
200

The recovery target, or null if none

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getRecoveryTargetTx
POST /pod_getRecoveryTargetTx HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 115

{
  "jsonrpc": "2.0",
  "method": "pod_getRecoveryTargetTx",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
  ]
}
200

The recovery target, or null if none

{
  "jsonrpc": "text",
  "result": {
    "hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "nonce": 1
  },
  "id": 1
}

Get Processed Deposits

post

Returns the bridge deposit replay-protection set (a watermark plus the processed ids at or above it). The relayer queries this to drop already-processed deposits from a batch.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getProcessedDeposits
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

The processed-deposit set

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getProcessedDeposits
POST /pod_getProcessedDeposits HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "jsonrpc": "2.0",
  "method": "pod_getProcessedDeposits",
  "id": 1,
  "params": []
}
200

The processed-deposit set

{
  "jsonrpc": "text",
  "result": {
    "watermark": "0x6f05b59d3b200000",
    "above_watermark": [
      "0x6f05b59d3b200000"
    ]
  },
  "id": 1
}

Get Precompiles

post

Returns the list of enshrined precompile contracts (bridge, CLOB, recovery, ...) with their addresses and names.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getPrecompiles
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

Array of precompiles

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getPrecompiles
POST /pod_getPrecompiles HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "jsonrpc": "2.0",
  "method": "pod_getPrecompiles",
  "id": 1,
  "params": []
}
200

Array of precompiles

{
  "jsonrpc": "text",
  "result": [
    {
      "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
      "name": "text"
    }
  ],
  "id": 1
}

Get Precompile Info

post

Returns a single precompile's address, name, and callable interface.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getPrecompileInfo
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. address (address): The precompile address.
Example: ["0x50d0000000000000000000000000000000000002"]
Responses
200

Precompile info

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getPrecompileInfo
POST /pod_getPrecompileInfo HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 113

{
  "jsonrpc": "2.0",
  "method": "pod_getPrecompileInfo",
  "id": 1,
  "params": [
    "0x50d0000000000000000000000000000000000002"
  ]
}
200

Precompile info

{
  "jsonrpc": "text",
  "result": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "name": "text",
    "interface": "text"
  },
  "id": 1
}

Get Solver State

post

Returns the solver node's current state: its address and public key, next finalized nonce, last executed and last generated solution batches, the votes seen for the next solution, and its solving schedule. Only meaningful when queried against the solver node.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getSolverState
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

Solver state

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getSolverState
POST /pod_getSolverState HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "jsonrpc": "2.0",
  "method": "pod_getSolverState",
  "id": 1,
  "params": []
}
200

Solver state

{
  "jsonrpc": "text",
  "result": {
    "solver_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "solver_pub_key": "02a1633cafcc01ebfb6d78e39f687a1f0995c62fc95f51ead10a02ee0be551b5dc",
    "next_finalized_nonce": 1,
    "last_executed_batch": {
      "deadline": "1704153600000000",
      "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001"
    },
    "last_generated_batch": {
      "deadline": "1704153600000000",
      "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001"
    },
    "next_solution_votes": {
      "ANY_ADDITIONAL_PROPERTY": [
        1
      ]
    },
    "schedule": {
      "schedule": {
        "start_deadline": 1,
        "stop_deadline": 1
      },
      "next_deadline": "1704153600000000",
      "producing": true
    }
  },
  "id": 1
}

Get Validator Status

post

Returns this node's own validator state: append-log sequence number, local past-perfect time, last executed batch deadline, and derived next-solution deadline. Values reflect the queried node's in-memory state, not a consensus view.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getValidatorStatus
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

Validator status

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getValidatorStatus
POST /pod_getValidatorStatus HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "jsonrpc": "2.0",
  "method": "pod_getValidatorStatus",
  "id": 1,
  "params": []
}
200

Validator status

{
  "jsonrpc": "text",
  "result": {
    "validator_index": 1,
    "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "append_log_sequence": 1,
    "current_ppt": 1704153600000000,
    "last_executed_batch": 1704153600000000,
    "next_solution_deadline": 1704153600000000,
    "quorum": 1,
    "committee_size": 1
  },
  "id": 1
}

Get Validator Account Status

post

Returns how a specific validator has voted with respect to a specific account: what it has (or hasn't) voted at each pending nonce, as seen by this node. Returns null when the validator address is not in the current committee.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getValidatorAccountStatus
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. validator (address): The validator to inspect.
  2. account (address): The account to inspect.
Example: ["0x1111111111111111111111111111111111111111","0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"]
Responses
200

Validator's per-nonce vote state for the account, or null if the validator is not in the committee

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getValidatorAccountStatus
POST /pod_getValidatorAccountStatus HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 166

{
  "jsonrpc": "2.0",
  "method": "pod_getValidatorAccountStatus",
  "id": 1,
  "params": [
    "0x1111111111111111111111111111111111111111",
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
  ]
}
200

Validator's per-nonce vote state for the account, or null if the validator is not in the committee

{
  "jsonrpc": "text",
  "result": {
    "validator_index": 1,
    "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "account_next_finalized_nonce": 1,
    "account_expected_nonce": 1,
    "quorum": 1,
    "pending_nonces": [
      {
        "nonce": 1,
        "vote": {
          "kind": "tx",
          "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      }
    ]
  },
  "id": 1
}

Get Account Diagnostics

post

Returns a full diagnostic snapshot of a single account across all committee validators: per-validator vote state, recovery status, CLOB pending-solution presence, and equivocation detection — all in one call. Votes are read for at most the 256 oldest pending nonces; when more are pending, current_vote (the vote on the latest pending nonce) reports not_seen.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_getAccountDiagnostics
idintegerRequiredDefault: 1
paramsstring[]Required

Parameters:

  1. account (address): The account to diagnose.
Example: ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"]
Responses
200

Account diagnostics

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_getAccountDiagnostics
POST /pod_getAccountDiagnostics HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 117

{
  "jsonrpc": "2.0",
  "method": "pod_getAccountDiagnostics",
  "id": 1,
  "params": [
    "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28"
  ]
}
200

Account diagnostics

{
  "jsonrpc": "text",
  "result": {
    "account": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
    "next_finalized_nonce": 1,
    "expected_nonce": 1,
    "last_finalized_tx": "0x0000000000000000000000000000000000000000000000000000000000000001",
    "is_locked": true,
    "quorum": 1,
    "validators": [
      {
        "validator_index": 1,
        "validator_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
        "highest_attested_nonce": 1,
        "current_vote": {
          "kind": "tx",
          "tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        "equivocating": true
      }
    ],
    "needs_recovery": true,
    "recovery_target": {
      "hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
      "nonce": 1
    },
    "has_clob_order_pending_solution": true,
    "equivocating": true
  },
  "id": 1
}

Get Node Status

post

Returns the operational status of the node. Currently exposes read_only — when true, the node rejects sendRawTransaction submissions. Public and unauthenticated.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_status
idintegerRequiredDefault: 1
paramsarrayOptionalDefault: []
Responses
200

Node status

application/json
jsonrpcstringOptional
idintegerOptional
post/pod_status
POST /pod_status HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 58

{
  "jsonrpc": "2.0",
  "method": "pod_status",
  "id": 1,
  "params": []
}
200

Node status

{
  "jsonrpc": "text",
  "result": {
    "read_only": true
  },
  "id": 1
}

Wait Past Perfect Time

post

Long-poll that resolves once this node's past-perfect time (PPT) reaches the given timestamp, then returns a null result. The target must be within ~500 ms of now; a target too far in the future is rejected with an invalid-params error.

Body
jsonrpcstringRequiredDefault: 2.0
methodstringRequiredDefault: pod_waitPastPerfectTime
idintegerRequiredDefault: 1
paramsinteger · int64[]Required

Parameters:

  1. timestamp (integer): Target past-perfect time, in microseconds since the Unix epoch.
Example: [1704153600000000]
Responses
200

Resolves once PPT reaches the target; result is always null

application/json
jsonrpcstringOptional
resultany · nullableOptional

Always null on success.

idintegerOptional
post/pod_waitPastPerfectTime
POST /pod_waitPastPerfectTime HTTP/1.1
Host: rpc.podtestnet.dev/
Content-Type: application/json
Accept: */*
Content-Length: 87

{
  "jsonrpc": "2.0",
  "method": "pod_waitPastPerfectTime",
  "id": 1,
  "params": [
    1704153600000000
  ]
}
{
  "jsonrpc": "text",
  "result": null,
  "id": 1
}

Last updated