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
Method to fetch the latest block number synchronized by the node.
Parameters: None
Returns: number - The block number.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockNumber","params":[],"id":1}'
node_getProvenBlockNumber
Fetches the latest proven block number.
Parameters: None
Returns: number - The block number.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getProvenBlockNumber","params":[],"id":1}'
node_getCheckpointedBlockNumber
Fetches the latest checkpointed block number.
Parameters: None
Returns: number - The block number.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointedBlockNumber","params":[],"id":1}'
node_getCheckpointNumber
Method to fetch the latest checkpoint number synchronized by the node.
Parameters: None
Returns: number - The checkpoint number.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointNumber","params":[],"id":1}'
node_getL2Tips
Returns the tips of the L2 chain.
Parameters: None
Returns: L2Tips
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2Tips","params":[],"id":1}'
node_getBlock
Get a block specified by its block number or 'latest'.
Parameters:
blockParameter-number | "latest"- The block parameter (block number, block hash, or 'latest').
Returns: L2Block - The requested block.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlock","params":["latest"],"id":1}'
node_getBlockByHash
Get a block specified by its hash.
Parameters:
blockHash-BlockHash- The block hash being requested.
Returns: L2Block - The requested block.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockByHash","params":["0x1234..."],"id":1}'
node_getBlockByArchive
Get a block specified by its archive root.
Parameters:
archive-Fr- The archive root being requested.
Returns: L2Block - The requested block.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockByArchive","params":["0x1234..."],"id":1}'
node_getBlocks
Method to request blocks. Will attempt to return all requested blocks but will return only those available.
Parameters:
from-number- The start of the range of blocks to return.limit-number- The maximum number of blocks to return.
Returns: L2Block[] - The blocks requested.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlocks","params":[12345,12345],"id":1}'
node_getBlockHeader
Returns the block header for a given block number, block hash, or 'latest'.
Parameters:
block-number | "latest" | undefined- The block parameter (block number, block hash, or 'latest'). Defaults to 'latest'.
Returns: BlockHeader - The requested block header.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockHeader","params":["latest"],"id":1}'
node_getBlockHeaderByArchive
Get a block header specified by its archive root.
Parameters:
archive-Fr- The archive root being requested.
Returns: BlockHeader - The requested block header.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getBlockHeaderByArchive","params":["0x1234..."],"id":1}'
node_getCheckpoints
Retrieves a collection of checkpoints.
Parameters:
checkpointNumber-number- The first checkpoint to be retrieved.limit-number- The number of checkpoints to be retrieved.
Returns: PublishedCheckpoint[] - The collection of complete checkpoints.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpoints","params":[12345,12345],"id":1}'
node_getCheckpointedBlocks
Parameters:
from-numberlimit-number
Returns: CheckpointedL2Block[]
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointedBlocks","params":[12345,12345],"id":1}'
node_getCheckpointsDataForEpoch
Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
Parameters:
epochNumber-number- Epoch for which we want checkpoint data
Returns: CheckpointData[]
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getCheckpointsDataForEpoch","params":[12345],"id":1}'
Transaction operations
node_sendTx
Method to submit a transaction to the p2p pool.
Parameters:
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:
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:
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:
txHash-TxHash- The transaction hash to return.
Returns: Tx - 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:
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:
limit-number | undefinedafter-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":[12345,"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:
tx-Tx- The transaction to validate for correctness.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:
tx-Tx- The transaction to simulate.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.
Parameters:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.contract-AztecAddress- Address of the contract to query.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:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.treeId-MerkleTreeId- The tree to search in.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:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.nullifier-Fr- Nullifier we try to find witness for.
Returns: NullifierMembershipWitness - 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.
Parameters:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.nullifier-Fr- Nullifier we try to find the low nullifier witness for.
Returns: NullifierMembershipWitness - 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.
Parameters:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.leafSlot-Fr- The leaf slot we try to find the witness for.
Returns: PublicDataWitness - 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:
referenceBlock-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).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:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.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:
referenceBlock-number | "latest"- The block parameter (block number, block hash, or 'latest') at which to get the data.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:
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_isL1ToL2MessageSynced
Returns whether an L1 to L2 message is synced by archiver.
Deprecated: Use getL1ToL2MessageCheckpoint instead. This method may return true even if the message is not ready to use.
Parameters:
l1ToL2Message-Fr- The L1 to L2 message to check.
Returns: boolean - Whether the message is synced.
Example:
curl -X POST http://localhost:8080 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_isL1ToL2MessageSynced","params":["0x1234..."],"id":1}'
node_getL2ToL1Messages
Returns all the L2 to L1 messages in an epoch.
Parameters:
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:
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:
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:
tags-SiloedTag[]- The tags to search for.page-number | undefined- The page number (0-indexed) for pagination.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..."],12345,"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:
contractAddress-AztecAddress- The contract address to search logs for.tags-Tag[]- The tags to search for.page-number | undefined- The page number (0-indexed) for pagination.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..."],12345,"0x1234..."],"id":1}'
Contract queries
node_getContractClass
Returns a registered contract class given its id.
Parameters:
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:
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_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:
validatorAddress-EthAddressfromSlot-SlotNumber | undefinedtoSlot-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:
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.
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:
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:
targetBlockNumber-number- The block number to roll back to.
Returns: void
Example (CLI):
curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_rollbackTo","params":[12345],"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],"id":1}'
nodeAdmin_startSnapshotUpload
Pauses syncing, creates a backup of archiver and world-state databases, and uploads them. Returns immediately.
Parameters:
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_getSlashPayloads
Returns all monitored payloads by the slasher for the current round.
Parameters: None
Returns: SlashPayloadRound[]
Example (CLI):
curl -X POST http://localhost:8880 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"nodeAdmin_getSlashPayloads","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_getSlashPayloads","params":[],"id":1}'
nodeAdmin_getSlashOffenses
Returns all offenses applicable for the given round.
Parameters:
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":["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_getSlashOffenses","params":["0x1234..."],"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
- How to Run a Sequencer Node - Set up a node
- Ethereum RPC Calls Reference - L1 RPC usage
- CLI Reference - Command-line options
- Aztec Discord - Developer support