RPC-API
Introduction
The Stacks Blockchain API allows you to query the Stacks blockchain and interact with smart contracts. It was built to maintain pageable materialized views of the Stacks Blockchain.
Note that the Stacks Node RPC API and the Hiro Stacks API are two different things. The Hiro API is a centralized service run by Hiro, a developer tooling company, that makes it easy to get onboarded and begin interacting with the Stacks blockchain in a RESTful way. You can also run your own API server.
The Hiro Stacks API is a proxy for the Stacks Node API that makes it a bit easier to work with by providing additional functionality.
The RPC API is generated by every Stacks node and allows developers to self-host their own node and API for a more decentralized architecture.
The RPC API can be used without any authorization. The basepath for the API is:
# for mainnet, replace `testnet` with `mainnet`
https://api.testnet.hiro.so/If you run a local node, it exposes an HTTP server on port 20443. The info endpoint would be localhost:20443/v2/info.
Stacks Node RPC API endpoints
The Stacks 2.0 Blockchain RPC API is exposed by every running Stacks node. Below is a non-exhaustive list of common RPC endpoints (each entry links to the OpenAPI spec used by the Stacks node):
GET
/v2/contracts/interface/{contract_address}/{contract_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/transactionsOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/map_entry/{contract_address}/{contract_name}/{map_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v3/blocks/uploadOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/mempool/queryOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/blocks/upload/{consensus_hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/transactions/unconfirmed/{txid}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/tenures/tip/{consensus_hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/tenures/fork_info/{start}/{stop}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/neighborsOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/blocks/{block_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/headers/{quantity}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/data_var/{principal}/{contract_name}/{var_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/stackerdb/{principal}/{contract_name}/replicasOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/stackerdb/{principal}/{contract_name}/chunksOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/stackerdb/{principal}/{contract_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/stackerdb/{principal}/{contract_name}/{slot_id}/{slot_version}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/stackerdb/{principal}/{contract_name}/{slot_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/microblocksOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/microblocks/unconfirmed/{block_id}/{seq}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/microblocks/{microblock_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/microblocks/confirmed/{block_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/attachments/invOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/attachments/{hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/healthOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/transaction/{txid}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/signer/{signer_pubkey}/{cycle_number}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/sortitions/burn_height/{height}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/sortitions/burn/{burn_header_hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/sortitions/consensus/{consensus_hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/sortitions/latest_and_lastOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/sortitionsOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/tenures/{block_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/tenures/infoOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/blocks/height/{block_height}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/blocks/{block_id}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v3/stacker_set/{cycle_number}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v3/block_proposalOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/constant_val/{contract_address}/{contract_name}/{constant_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/clarity/metadata/{contract_address}/{contract_name}/{clarity_metadata_key}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/clarity/marf/{marf_key_hash}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/traits/{contract_address}/{contract_name}/{trait_contract_address}/{trait_contract_name}/{trait_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/poxOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/infoOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/fees/transferOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/fees/transactionOpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/accounts/{principal}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v3/contracts/fast-call-read/{contract_address}/{contract_name}/{function_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlPOST
/v2/contracts/call-read/{contract_address}/{contract_name}/{function_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yamlGET
/v2/contracts/source/{contract_address}/{contract_name}OpenAPI: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yaml
For details about request/response schemas and additional endpoints, consult the Stacks node OpenAPI spec: https://raw.githubusercontent.com/stacks-network/stacks-core/master/docs/rpc/openapi.yaml
Was this helpful?
