Stacks 3.0+ RPC API
v1.0.0https://stacks.nownodes.ioLocalThis is the documentation for the stacks-node RPC interface.
Authentication
api-keyAuthapiKeyAPI Key: api-key in header
Stacks
Transactions
Broadcast raw transaction
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Broadcast raw transactions on the network. You can use the @stacks/transactions project to generate a raw transaction payload.
Body
Response
Transaction ID of successful post of a raw tx to the node's mempool
Rejections result in a 400 error
Retrieve transaction details by TXID
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Returns detailed information about a specific Stacks transaction, including the raw transaction bytes, execution result, and block metadata.
Parameters
tx_idstringrequiredpathThe transaction ID (hash) identifying the Stacks transaction.
Response
Transaction successfully retrieved
Smart Contracts
Get contract interface
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get contract interface using a contract_address and contract name
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Contract interface
Get specific data-map inside a contract
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Attempt to fetch data from a contract data map. The contract is identified with [Stacks Address] and [Contract Name] in the URL path. The map is identified with [Map Name].
The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom.
In the response, data is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object.
Body
Hex string serialization of the lookup key (which should be a Clarity value)
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
map_namestringrequiredpathMap name
proofintegerqueryReturns object without the proof field when set to 0
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Failed loading data map
Get contract source
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Returns the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
proofintegerqueryReturns object without the proof field if set to 0
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Call read-only function
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Call a read-only public function on a given smart contract.
The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format:
Body
map of arguments and the simulated tx-sender where sender is either a Contract identifier or a normal Stacks address, and arguments is an array of hex serialized Clarity values.
Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset
senderstringrequiredThe simulated tx-sender
argumentsArray<string>requiredAn array of hex serialized Clarity values
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
function_namestringrequiredpathFunction name
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Get trait implementation details
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Determine whether or not a specified trait is implemented (either explicitly or implicitly) within a given contract.
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
trait_contract_addressstringrequiredpathTrait Stacks address
trait_contract_namestringrequiredpathTrait contract name
trait_namestringrequiredpathTrait name
tipstringqueryThe Stacks chain tip to query from. If tip == "latest", the query will be run from the latest known tip (includes unconfirmed state). If the tip is left unspecified, the stacks chain tip will be selected (only includes confirmed state).
Response
Success
Get the MARF value for a given key
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Attempt to fetch the value of a MARF key.
In the response, data is the hex serialization of the value.
Parameters
clarity_marf_keystringrequiredpathMARF key
proofintegerqueryReturns object without the proof field when set to 0
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Failed to retrieve MARF key
Get the contract metadata for the metadata key
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Attempt to fetch the metadata of a contract. The contract is identified with [Contract Address] and [Contract Name] in the URL path. The metadata key is identified with [Clarity Metadata Key].
In the response, data is formatted as JSON.
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
clarity_metadata_keystringrequiredpathMetadata key
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Failed to retrieve constant value from contract
Get the value of a constant inside a contract
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Attempt to fetch the value of a constant inside a contract. The contract is identified with [Stacks Address] and [Contract Name] in the URL path. The constant is identified with [Constant Name].
In the response, data is the hex serialization of the constant value.
Parameters
contract_addressstringrequiredpathStacks address
contract_namestringrequiredpathContract name
constant_namestringrequiredpathConstant name
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Failed to retrieve constant value from contract
Accounts
Get account info
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get the account data for the provided principal
Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is a unsigned 64-bit integer, and the proofs are provided as hex strings.
For non-existent accounts, this does not 404, rather it returns an object with balance and nonce of 0.
Parameters
principalstringrequiredpathStacks address or a Contract identifier (e.g. SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0.get-info)
proofintegerqueryReturns object without the proof field if set to 0
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Fees
Get approximate fees for the given transaction
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get an estimated fee for the supplied transaction. This estimates the execution cost of the transaction, the current fee rate of the network, and returns estimates for fee amounts.
transaction_payloadis a hex-encoded serialization of the TransactionPayload for the transaction.estimated_lenis an optional argument that provides the endpoint with an estimation of the final length (in bytes) of the transaction, including any post-conditions and signatures
If the node cannot provide an estimate for the transaction
(e.g., if the node has never seen a contract-call for the
given contract and function) or if estimation is not
configured on this node, a 400 response is returned.
The 400 response will be a JSON error containing a reason
field which can be one of the following:
DatabaseError- this Stacks node has had an internal database error while trying to estimate the costs of the supplied transaction.NoEstimateAvailable- this Stacks node has not seen this kind of contract-call before, and it cannot provide an estimate yet.CostEstimationDisabled- this Stacks node does not perform fee or cost estimation, and it cannot respond on this endpoint.
The 200 response contains the following data:
estimated_cost- the estimated multi-dimensional cost of executing the Clarity VM on the provided transaction.estimated_cost_scalar- a unitless integer that the Stacks node uses to compare how much of the block limit is consumed by different transactions. This value incorporates the estimated length of the transaction and the estimated execution cost of the transaction. The range of this integer may vary between different Stacks nodes. In order to compute an estimate of total fee amount for the transaction, this value is multiplied by the same Stacks node's estimated fee rate.cost_scalar_change_by_byte- a float value that indicates how much theestimated_cost_scalarvalue would increase for every additional byte in the final transaction.estimations- an array of estimated fee rates and total fees to pay in microSTX for the transaction. This array provides a range of estimates (default: 3) that may be used. Each element of the array contains the following fields:fee_rate- the estimated value for the current fee rates in the networkfee- the estimated value for the total fee in microSTX that the given transaction should pay. These values are the result of computing:fee_ratexestimated_cost_scalar. If the estimated fees are less than the minimum relay fee(1 ustx x estimated_len), then that minimum relay fee will be returned here instead.
Note: If the final transaction's byte size is larger than
supplied to estimated_len, then applications should increase
this fee amount by:
fee_rate x cost_scalar_change_by_byte x (final_size - estimated_size)
Body
POST request for estimated fee
transaction_payloadstringrequiredestimated_lenintegerResponse
Estimated fees for the transaction
Get estimated fee
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer
Response
Success
Info
Get Core API info
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get Core API information
Response
Success
Get PoX details
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get Proof of Transfer (PoX) information. Can be used for Stacking.
Parameters
tipstringqueryThe Stacks chain tip to query from. If tip == latest, the query will be run from the latest known tip (includes unconfirmed state).
Response
Success
Mining
Validate a proposed Stacks block
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Used by stackers to validate a proposed Stacks block from a miner.
This API endpoint requires a basic Authorization header.
Body
Response
Block proposal has been accepted for processing. The result will be returned via the event observer.
Endpoint not enabled.
Unauthorized.
There is an ongoing proposal validation being processed, the new request cannot be accepted until the prior request has been processed.
Fetch the stacker and signer set information for a given cycle.
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Used to get stacker and signer set information for a given cycle.
This will only return information for cycles started in Epoch-2.5 where PoX-4 was active and subsequent cycles.
Parameters
cycle_numberintegerrequiredpathreward cycle number
Response
Information for the given reward cycle
Could not fetch the given reward set
Blocks
Fetch a Nakamoto block
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Fetch a Nakamoto block by its index block hash.
Parameters
block_idstringrequiredpathThe block's ID hash
Response
The raw SIP-003-encoded block will be returned.
The block could not be found
Fetch a Nakamoto block by its height and optional tip
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Fetch a Nakamoto block by its height and optional tip.
Parameters
block_heightintegerrequiredpathThe block's height
tipstringqueryThe Stacks chain tip to query from. If tip == latest or empty, the query will be run from the latest known tip.
Response
The raw SIP-003-encoded block will be returned.
The block could not be found
Simulate a block
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Simulates the processing of a block identified by its hash. The node will apply the block's transactions to the current chain state in a temporary context and return the resulting block information, including the expected state changes and fees, without persisting anything to the actual chain.
Parameters
block_hashstringrequiredpathThe hex-encoded hash of the block to simulate (as typically returned by the miner or proposer).
Response
Successful simulation response containing the simulated block details.
Fetch metadata about the ongoing Nakamoto tenure
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Fetch metadata about the ongoing Nakamoto tenure. This information is sufficient to obtain and authenticate the highest complete tenure, as well as obtain new tenure blocks.
Response
Metadata about the ongoing tenure
Fetch a sequence of Nakamoto blocks in a tenure
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Fetch a sequence of Nakamoto blocks in a tenure. The blocks will be served in order from highest to lowest. The blocks will be encoded in their SIP-003 wire format, and concatenated together.
Parameters
block_idstringrequiredpathThe tenure-start block ID of the tenure to query
stopstringqueryThe block ID hash of the highest block in this tenure that is already known to the caller. Neither the corresponding block nor any of its ancestors will be served. This is used to fetch tenure blocks that the caller does not have.
Response
SIP-003-encoded Nakamoto blocks, concatenated together
Fetch information about evaluated burnchain blocks (i.e., sortitions).
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Fetch sortition information about a burnchain block. If the lookup_kind and lookup parameters are empty, it will return information about the latest burn block.
Parameters
lookup_kindstringpathThe style of lookup that should be performed. If not given, the most recent burn block processed will be returned.
Otherwise, the lookup_kind should be one of the following strings:
consensus- find the burn block using the consensus hash supplied in thelookupfield.burn_height- find the burn block using the burn block height supplied in thelookupfield.burn- find the burn block using the burn block hash supplied in thelookupfield.latest_and_last- return information about the latest burn block with a winning miner and the previous such burn block
lookupstringpathThe value to use for the lookup if lookup_kind is consensus, burn_height, or burn
Response
Information for the burn block or in the case of latest_and_last, multiple burn blocks
Get number of blocks signed by signer during a given reward cycle
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get number of blocks signed by signer during a given reward cycle
Parameters
signerstringrequiredpathHex-encoded compressed Secp256k1 public key of signer
cycle_numberintegerrequiredpathReward cycle number
Response
Number of blocks signed
Get tenure blocks by burn block hash
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Returns information about Stacks blocks that correspond to a specific Bitcoin burn block hash. Tenures represent the relationship between Stacks blocks and Bitcoin blocks in the Proof of Transfer (PoX) consensus.
Parameters
hashstringrequiredpathBitcoin burn block hash in hex format. This is the hash of the Bitcoin block that mined the Stacks blocks.
Response
Successful response with tenure blocks information
Bad request - invalid burn block hash format
Tenure not found for the specified burn block hash
Internal server error
Get tenure blocks by burn block height
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Returns information about Stacks blocks that correspond to a specific Bitcoin burn block height. Tenures represent the relationship between Stacks blocks and Bitcoin blocks in the Proof of Transfer (PoX) consensus.
Parameters
heightinteger>= 0requiredpathBitcoin burn block height (block number in the Bitcoin blockchain). This specifies the position of the Bitcoin block in the chain.
Response
Successful response with tenure blocks information
Bad request - invalid burn block height
Tenure not found for the specified burn block height
Internal server error
Get tip metadata for a specific consensus hash
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Returns the anchored header and burn view for the specified consensus hash.
Parameters
consensus_hashstringrequiredpathConsensus hash identifying the block
Response
Successful response
Signers
Get number of blocks signed by signer during a given reward cycle
Authorizations
ApiKeyAuthApiKeyAuthapi-key string
NOWNodes API key passed in the api-key header.
Get number of blocks signed by signer during a given reward cycle
Parameters
signerstringrequiredpathHex-encoded compressed Secp256k1 public key of signer
cycle_numberintegerrequiredpathReward cycle number
Response
Number of blocks signed