Skip to main content
Version: dev

Node JSON RPC API reference

This document provides a complete reference for the Aztec Node JSON RPC API. All methods are exposed via JSON RPC on the node's configured ports.

API endpoint

Public RPC URL: http://localhost:8080

Admin URL: http://localhost:8880

Note that the above ports are only defaults, and can be modified by setting --port and --admin-port flags upon startup.

All methods use standard JSON RPC 2.0 format with methods prefixed by node_ or nodeAdmin_.

Block queries

node_getBlockNumber

Returns the block number at a given chain tip, or the latest proposed block number when tip is omitted.

Parameters:

  1. tip - ChainTip | undefined

Returns: number

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockNumber","params":["0x1234..."],"id":1}'

node_getCheckpointNumber

Returns the checkpoint number at a given chain tip, or the latest checkpoint number when tip is omitted.

Remarks: Semantic foot-gun: block-side 'proposed' means "latest proposed block" (chain head), but checkpoint-side 'proposed' means "latest confirmed checkpoint" — pre-L1-confirm checkpoints are not exposed over RPC. 'checkpointed' on the checkpoint side is equivalent.

Parameters:

  1. tip - ChainTip | undefined

Returns: number

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointNumber","params":["0x1234..."],"id":1}'

node_getChainTips

Returns the tips of the L2 chain.

Parameters: None

Returns: ChainTips

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getChainTips","params":[],"id":1}'

node_getBlock

Unified block fetch. Returns the block identified by param, with optional fields controlled by options.

Parameters:

  1. param - BlockHash | number | "latest" - A block number, block hash, archive root, chain-tip name, or object variant.
  2. options - BlockIncludeOptions | undefined - Narrowing options: includeTransactions, includeL1PublishInfo, includeAttestations.

Returns: BlockResponse | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlock","params":["latest","0x1234..."],"id":1}'

node_getBlockData

Lightweight block-metadata fetch. Returns the block identified by param without transaction bodies or other optional context. Cheaper than getBlock for header-only access.

Parameters:

  1. param - BlockHash | number | "latest" - A block number, block hash, archive root, chain-tip name, or object variant.

Returns: BlockData | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockData","params":["latest"],"id":1}'

node_getBlocks

Returns up to limit blocks starting from from, projected to the shape determined by options.

Parameters:

  1. from - number
  2. limit - number
  3. options - BlocksIncludeOptions | undefined

Returns: BlockResponse[]

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlocks","params":[1,100,"0x1234..."],"id":1}'

node_getCheckpoint

Unified checkpoint fetch. Returns the checkpoint identified by param, with optional fields controlled by options.

Parameters:

  1. param - CheckpointParameter
  2. options - CheckpointIncludeOptions | undefined

Returns: CheckpointResponse | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpoint","params":["0x1234...","0x1234..."],"id":1}'

node_getCheckpoints

Returns up to limit checkpoints starting from from, projected to the shape determined by options.

Parameters:

  1. from - number
  2. limit - number
  3. options - CheckpointIncludeOptions | undefined

Returns: CheckpointResponse[]

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpoints","params":[1,100,"0x1234..."],"id":1}'

node_getCheckpointsData

Gets lightweight checkpoint metadata for a contiguous range or for an entire epoch.

Parameters:

  1. query - CheckpointsQuery - Either { from, limit } or { epoch }.

Returns: CheckpointData[]

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointsData","params":["0x1234..."],"id":1}'

Transaction operations

node_sendTx

Method to submit a transaction to the p2p pool.

Parameters:

  1. tx - Tx - The transaction to be submitted.

Returns: void - Nothing.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_sendTx","params":[{"data":"0x..."}],"id":1}'

node_getTxReceipt

Fetches a transaction receipt for a given transaction hash. Returns a mined receipt if it was added to the chain, a pending receipt if it's still in the mempool of the connected Aztec node, or a dropped receipt if not found in the connected Aztec node.

Parameters:

  1. txHash - TxHash - The transaction hash.

Returns: TxReceipt - A receipt of the transaction.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getTxReceipt","params":["0x1234..."],"id":1}'

node_getTxEffect

Gets a tx effect.

Parameters:

  1. txHash - TxHash - The hash of the tx corresponding to the tx effect.

Returns: IndexedTxEffect | undefined - The requested tx effect with block info (or undefined if not found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getTxEffect","params":["0x1234..."],"id":1}'

node_getTxByHash

Method to retrieve a single pending tx.

Parameters:

  1. txHash - TxHash - The transaction hash to return.

Returns: Tx | undefined - The pending tx if it exists.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getTxByHash","params":["0x1234..."],"id":1}'

node_getTxsByHash

Method to retrieve multiple pending txs.

Parameters:

  1. txHashes - TxHash[]

Returns: Tx[] - The pending txs if exist.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getTxsByHash","params":[["0x1234..."]],"id":1}'

node_getPendingTxs

Method to retrieve pending txs.

Parameters:

  1. limit - number | undefined
  2. after - TxHash | undefined

Returns: Tx[] - The pending txs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPendingTxs","params":[100,"0x1234..."],"id":1}'

node_getPendingTxCount

Retrieves the number of pending txs

Parameters: None

Returns: number - The number of pending txs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPendingTxCount","params":[],"id":1}'

node_isValidTx

Returns true if the transaction is valid for inclusion at the current state. Valid transactions can be made invalid by other transactions if e.g. they emit the same nullifiers, or come become invalid due to e.g. the expiration_timestamp property.

Parameters:

  1. tx - Tx - The transaction to validate for correctness.
  2. options - object | undefined

Returns: TxValidationResult

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_isValidTx","params":[{"data":"0x..."},{}],"id":1}'

node_simulatePublicCalls

Simulates the public part of a transaction with the current state. This currently just checks that the transaction execution succeeds.

Parameters:

  1. tx - Tx - The transaction to simulate.
  2. skipFeeEnforcement - boolean | undefined

Returns: PublicSimulationOutput

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_simulatePublicCalls","params":[{"data":"0x..."},true],"id":1}'

State queries

node_getPublicStorageAt

Gets the storage value at the given contract storage slot.

Remarks: The storage slot here refers to the slot as it is defined in Noir not the index in the merkle tree. Aztec's version of eth_getStorageAt.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. contract - AztecAddress - Address of the contract to query.
  3. slot - Fr - Slot to query.

Returns: Fr - Storage value at the given contract slot.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPublicStorageAt","params":["latest","0x1234...","0x1234..."],"id":1}'

node_getWorldStateSyncStatus

Returns the sync status of the node's world state

Parameters: None

Returns: WorldStateSyncStatus

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getWorldStateSyncStatus","params":[],"id":1}'

Membership witnesses

node_findLeavesIndexes

Find the indexes of the given leaves in the given tree along with a block metadata pointing to the block in which the leaves were inserted.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. treeId - MerkleTreeId - The tree to search in.
  3. leafValues - Fr[] - The values to search for.

Returns: (DataInBlock<bigint> | undefined)[] - The indices of leaves and the block metadata of a block in which the leaves were inserted.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_findLeavesIndexes","params":["latest",1,["0x1234..."]],"id":1}'

node_getNullifierMembershipWitness

Returns a nullifier membership witness for a given nullifier at a given block.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. nullifier - Fr - Nullifier we try to find witness for.

Returns: NullifierMembershipWitness | undefined - The nullifier membership witness (if found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getNullifierMembershipWitness","params":["latest","0x1234..."],"id":1}'

node_getLowNullifierMembershipWitness

Returns a low nullifier membership witness for a given nullifier at a given block.

Remarks: Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked list structure" of leaves and proving that a lower nullifier is pointing to a bigger next value than the nullifier we are trying to prove non-inclusion for.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. nullifier - Fr - Nullifier we try to find the low nullifier witness for.

Returns: NullifierMembershipWitness | undefined - The low nullifier membership witness (if found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getLowNullifierMembershipWitness","params":["latest","0x1234..."],"id":1}'

node_getPublicDataWitness

Returns a public data tree witness for a given leaf slot at a given block.

Remarks: The witness can be used to compute the current value of the public data tree leaf. If the low leaf preimage corresponds to an "in range" slot, means that the slot doesn't exist and the value is 0. If the low leaf preimage corresponds to the exact slot, the current value is contained in the leaf preimage.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. leafSlot - Fr - The leaf slot we try to find the witness for.

Returns: PublicDataWitness | undefined - The public data witness (if found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPublicDataWitness","params":["latest","0x1234..."],"id":1}'

node_getBlockHashMembershipWitness

Returns a membership witness for a given block hash in the archive tree.

Block hashes are the leaves of the archive tree. Each time a new block is added to the chain, its block hash is appended as a new leaf to the archive tree. This method finds the membership witness (leaf index and sibling path) for a given block hash, which can be used to prove that a specific block exists in the chain's history.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data (which contains the root of the archive tree in which we are searching for the block hash).
  2. blockHash - BlockHash - The block hash to find in the archive tree.

Returns: MembershipWitness | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockHashMembershipWitness","params":["latest","0x1234..."],"id":1}'

node_getNoteHashMembershipWitness

Returns a membership witness for a given note hash at a given block.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. noteHash - Fr - The note hash we try to find the witness for.

Returns: MembershipWitness | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getNoteHashMembershipWitness","params":["latest","0x1234..."],"id":1}'

L1 to L2 messages

node_getL1ToL2MessageMembershipWitness

Returns the index and a sibling path for a leaf in the committed l1 to l2 data tree.

Parameters:

  1. referenceBlock - BlockHash | number | "latest" - The block parameter (block number, block hash, or 'latest') at which to get the data.
  2. l1ToL2Message - Fr - The l1ToL2Message to get the index / sibling path for.

Returns: [bigint, SiblingPath] | undefined - A tuple of the index and the sibling path of the L1ToL2Message (undefined if not found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL1ToL2MessageMembershipWitness","params":["latest","0x1234..."],"id":1}'

node_getL1ToL2MessageCheckpoint

Returns the L2 checkpoint number in which this L1 to L2 message becomes available, or undefined if not found.

Parameters:

  1. l1ToL2Message - Fr

Returns: number | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL1ToL2MessageCheckpoint","params":["0x1234..."],"id":1}'

node_getL2ToL1MembershipWitness

Returns the L2-to-L1 membership witness for a message emitted by a transaction.

Parameters:

  1. txHash - TxHash - The transaction that emitted the L2-to-L1 message.
  2. message - Fr - The message hash to prove inclusion of.
  3. messageIndexInTx - number - Optional index of the message within the transaction. Use this when the same message hash appears multiple times in the transaction.

Returns: L2ToL1MembershipWitness | undefined - The membership witness, or undefined if the transaction is not settled or no covering Outbox root is available yet.

Example:

curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"method\":\"node_getL2ToL1MembershipWitness\",\"params\":[\"0x1234...\",\"0xabcd...\"],\"id\":1}"

node_getL2ToL1Messages

Deprecated

Use node_getL2ToL1MembershipWitness to get an L2-to-L1 message witness directly.

Returns all the L2 to L1 messages in an epoch.

Parameters:

  1. epoch - number - The epoch at which to get the data.

Returns: Fr[][][][] - A nested array of the L2 to L1 messages in each tx of each block in each checkpoint in the epoch (empty array if the epoch is not found).

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2ToL1Messages","params":[12345],"id":1}'

Log queries

node_getPublicLogs

Gets public logs based on the provided filter.

Parameters:

  1. filter - LogFilter - The filter to apply to the logs.

Returns: GetPublicLogsResponse - The requested logs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPublicLogs","params":[{"fromBlock":100,"toBlock":200}],"id":1}'

node_getContractClassLogs

Gets contract class logs based on the provided filter.

Parameters:

  1. filter - LogFilter - The filter to apply to the logs.

Returns: GetContractClassLogsResponse - The requested logs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getContractClassLogs","params":[{"fromBlock":100,"toBlock":200}],"id":1}'

node_getPrivateLogsByTags

Gets private logs that match any of the tags. For each tag, an array of matching logs is returned. An empty array implies no logs match that tag.

Parameters:

  1. tags - SiloedTag[] - The tags to search for.
  2. page - number | undefined - The page number (0-indexed) for pagination.
  3. referenceBlock - BlockHash | undefined - Optional block hash used to ensure the block still exists before logs are retrieved. This block is expected to represent the latest block to which the client has synced (called anchor block in PXE). If specified and the block is not found, an error is thrown. This helps detect reorgs, which could result in undefined behavior in the client's code.

Returns: TxScopedL2Log[][] - An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned for a tag, the caller should fetch the next page to check for more logs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPrivateLogsByTags","params":[["0x1234..."],0,"0x1234..."],"id":1}'

node_getPublicLogsByTagsFromContract

Gets public logs that match any of the tags from the specified contract. For each tag, an array of matching logs is returned. An empty array implies no logs match that tag.

Parameters:

  1. contractAddress - AztecAddress - The contract address to search logs for.
  2. tags - Tag[] - The tags to search for.
  3. page - number | undefined - The page number (0-indexed) for pagination.
  4. referenceBlock - BlockHash | undefined - Optional block hash used to ensure the block still exists before logs are retrieved. This block is expected to represent the latest block to which the client has synced (called anchor block in PXE). If specified and the block is not found, an error is thrown. This helps detect reorgs, which could result in undefined behavior in the client's code.

Returns: TxScopedL2Log[][] - An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned for a tag, the caller should fetch the next page to check for more logs.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPublicLogsByTagsFromContract","params":["0x1234...",["0x1234..."],0,"0x1234..."],"id":1}'

Contract queries

node_getContractClass

Returns a registered contract class given its id.

Parameters:

  1. id - Fr - Id of the contract class.

Returns: ContractClassPublic | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getContractClass","params":["0x1234..."],"id":1}'

node_getContract

Returns a publicly deployed contract instance given its address.

Parameters:

  1. address - AztecAddress - Address of the deployed contract.

Returns: ContractInstanceWithAddress | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getContract","params":["0x1234..."],"id":1}'

Fee queries

node_getCurrentMinFees

Method to fetch the current min fees.

Parameters: None

Returns: GasFees - The current min fees.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCurrentMinFees","params":[],"id":1}'

node_getPredictedMinFees

Returns predicted min fees for the current slot and next N slots. Each entry accounts for the L1 gas oracle transition and congestion growth based on the given mana usage estimate. Defaults to target usage (steady state).

Parameters:

  1. manaUsage - ManaUsageEstimate | undefined - Expected mana usage per checkpoint (none, target, or limit).

Returns: GasFees[] - An array of GasFees, one per slot in the prediction window.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getPredictedMinFees","params":["target"],"id":1}'

node_getMaxPriorityFees

Method to fetch the current max priority fee of txs in the mempool.

Parameters: None

Returns: GasFees - The current max priority fees.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getMaxPriorityFees","params":[],"id":1}'

Node information

node_isReady

Method to determine if the node is ready to accept transactions.

Parameters: None

Returns: boolean - Flag indicating the readiness for tx submission.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_isReady","params":[],"id":1}'

node_getNodeInfo

Returns the information about the server's node. Includes current Node version, compatible Noir version, L1 chain identifier, protocol version, and L1 address of the rollup contract.

Parameters: None

Returns: NodeInfo - The node information.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getNodeInfo","params":[],"id":1}'

node_getNodeVersion

Method to fetch the version of the package.

Parameters: None

Returns: string - The node package version

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getNodeVersion","params":[],"id":1}'

node_getVersion

Method to fetch the version of the rollup the node is connected to.

Parameters: None

Returns: number - The rollup version.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getVersion","params":[],"id":1}'

node_getChainId

Method to fetch the chain id of the base-layer for the rollup.

Parameters: None

Returns: number - The chain id.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getChainId","params":[],"id":1}'

node_getL1ContractAddresses

Method to fetch the currently deployed l1 contract addresses.

Parameters: None

Returns: L1ContractAddresses - The deployed contract addresses.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL1ContractAddresses","params":[],"id":1}'

node_getProtocolContractAddresses

Method to fetch the protocol contract addresses.

Parameters: None

Returns: ProtocolContractAddresses

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getProtocolContractAddresses","params":[],"id":1}'

node_getEncodedEnr

Returns the ENR of this node for peer discovery, if available.

Parameters: None

Returns: string | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getEncodedEnr","params":[],"id":1}'

Validator queries

node_getValidatorsStats

Returns stats for validators if enabled.

Parameters: None

Returns: ValidatorsStats

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getValidatorsStats","params":[],"id":1}'

node_getValidatorStats

Returns stats for a single validator if enabled.

Parameters:

  1. validatorAddress - EthAddress
  2. fromSlot - SlotNumber | undefined
  3. toSlot - SlotNumber | undefined

Returns: SingleValidatorStats | undefined

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getValidatorStats","params":["0x1234...","100","100"],"id":1}'

Debug operations

node_registerContractFunctionSignatures

Registers contract function signatures for debugging purposes.

Parameters:

  1. functionSignatures - string[] - An array of function signatures to register by selector.

Returns: void

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_registerContractFunctionSignatures","params":[["0x1234..."]],"id":1}'

node_getAllowedPublicSetup

Returns the list of allowed public setup elements configured for this node.

Parameters: None

Returns: AllowedElement[] - The list of allowed elements.

Example:

curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getAllowedPublicSetup","params":[],"id":1}'

Admin API

Administrative operations are exposed on port 8880 under the nodeAdmin_ namespace.

Security: Admin API Access

For security reasons, the admin port (8880) should not be exposed to the host machine in Docker deployments. The examples below show both CLI and Docker methods:

CLI Method (when running with aztec start directly):

curl -X POST http://localhost:8880 ...

Docker Method (when running with Docker Compose):

docker exec -it <container-name> curl -X POST http://localhost:8880 ...

Replace <container-name> with your container name (e.g., aztec-node, aztec-sequencer, prover-node).

nodeAdmin_getConfig

Retrieves the configuration of this node.

Parameters: None

Returns: AztecNodeAdminConfig

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_getConfig","params":[],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_getConfig","params":[],"id":1}'

nodeAdmin_setConfig

Updates the configuration of this node.

Parameters:

  1. config - object - Updated configuration to be merged with the current one.

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_setConfig","params":[{}],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_setConfig","params":[{}],"id":1}'

nodeAdmin_pauseSync

Pauses archiver and world state syncing.

Parameters: None

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_pauseSync","params":[],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_pauseSync","params":[],"id":1}'

nodeAdmin_resumeSync

Resumes archiver and world state syncing.

Parameters: None

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_resumeSync","params":[],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_resumeSync","params":[],"id":1}'

nodeAdmin_rollbackTo

Pauses syncing and rolls back the database to the target L2 block number.

Parameters:

  1. targetBlockNumber - number - The block number to roll back to.
  2. force - boolean | undefined - If true, clears the world state db and p2p dbs if rolling back to behind the finalized block.
  3. resumeSync - boolean | undefined - If true (default), resumes archiver and world state sync after rollback.

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_rollbackTo","params":[12345,true,true],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_rollbackTo","params":[12345,true,true],"id":1}'

nodeAdmin_startSnapshotUpload

Pauses syncing, creates a backup of archiver and world-state databases, and uploads them. Returns immediately.

Parameters:

  1. location - string - The location to upload the snapshot to.

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_startSnapshotUpload","params":["0x1234..."],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_startSnapshotUpload","params":["0x1234..."],"id":1}'

nodeAdmin_getSlashOffenses

Returns all offenses applicable for the given round.

Parameters:

  1. round - bigint | 'all' | 'current'

Returns: Offense[]

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_getSlashOffenses","params":["current"],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_getSlashOffenses","params":["current"],"id":1}'

nodeAdmin_reloadKeystore

Reloads keystore configuration from disk.

What is updated:

  • Validator attester keys
  • Coinbase address per validator
  • Fee recipient address per validator

What is NOT updated (requires node restart):

  • L1 publisher signers (the funded accounts that send L1 transactions)
  • Prover keys
  • HA signer PostgreSQL connections

Notes:

  • New validators must use a publisher key that was already configured at node startup (or omit the publisher field to fall back to the attester key). A validator with an unknown publisher key will cause the reload to be rejected.

Parameters: None

Returns: void

Example (CLI):

curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_reloadKeystore","params":[],"id":1}'

Example (Docker):

docker exec -it aztec-node curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_reloadKeystore","params":[],"id":1}'

Next steps