# Models

## The NodeInfo object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"NodeInfo":{"description":"GET request for core node information","type":"object","required":["peer_version","pox_consensus","burn_block_height","stable_pox_consensus","stable_burn_block_height","server_version","network_id","parent_network_id","stacks_tip_height","stacks_tip","stacks_tip_consensus_hash","genesis_chainstate_hash","tenure_height","is_fully_synced"],"properties":{"peer_version":{"type":"integer","description":"Identifies the version number for the networking communication. This\nshould not change while a node is running, and will only change if there's an\nupgrade.\n"},"pox_consensus":{"type":"string","description":"A hash used to identify the burnchain view for a node. It incorporates\nbitcoin chain information and PoX information. Nodes that disagree on this value\nwill appear to each other as forks. This value changes after every block.\n"},"burn_block_height":{"type":"integer","description":"Latest bitcoin chain height."},"stable_pox_consensus":{"type":"string","description":"Same as pox_consensus, but evaluated at stable_burn_block_height."},"stable_burn_block_height":{"type":"integer","description":"The bitcoin block height at which the last PoX anchor block was seen.\nLeftover from stacks 1.0, basically always burn_block_height - 1.\n"},"server_version":{"type":"string","description":"A version descriptor for the node."},"network_id":{"type":"integer","description":"Identifies the network (e.g., mainnet, testnet)."},"parent_network_id":{"type":"integer","description":"same as network_id, but for bitcoin"},"stacks_tip_height":{"type":"integer","description":"The latest Stacks chain height."},"stacks_tip":{"type":"string","description":"The best known block hash for the Stacks chain."},"stacks_tip_consensus_hash":{"type":"string","description":"The bitcoin consensus hash at the time that stacks_tip was mined."},"genesis_chainstate_hash":{"type":"string","description":"The SHA256 hash of the genesis chainstate."},"unanchored_tip":{"type":["string","null"],"description":"The latest microblock hash if any microblocks were processed. If no\nmicroblock has been processed for the current block, a 000.., hex array is\nreturned.\n"},"unanchored_seq":{"type":["integer","null"],"description":"The sequence number of the latest microblock if any microblocks were processed."},"tenure_height":{"type":"integer","description":"The latest Stacks tenure height."},"exit_at_block_height":{"type":["integer","null"],"description":"The block height at which a testnet network will be reset.\nNot applicable to mainnet.\n"},"is_fully_synced":{"type":"boolean","description":"Indicates whether the node has fully synchronized with the network."},"node_public_key":{"type":["string","null"],"description":"The node's public key."},"node_public_key_hash":{"type":["string","null"],"description":"The HASH160 of the node's public key."},"last_pox_anchor":{"type":["object","null"],"properties":{"anchor_block_hash":{"type":"string"},"anchor_block_txid":{"type":"string"}}},"stackerdbs":{"type":["array","null"],"items":{"type":"string"}}}}}}}
```

## The PoxInfo object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"PoxInfo":{"description":"Get Proof of Transfer (PoX) information","type":"object","additionalProperties":false,"required":["contract_id","current_burnchain_block_height","first_burnchain_block_height","pox_activation_threshold_ustx","prepare_phase_block_length","reward_phase_block_length","reward_slots","total_liquid_supply_ustx","current_cycle","next_cycle","reward_cycle_length","contract_versions","epochs","current_epoch"],"properties":{"contract_id":{"type":"string","description":"The contract identifier for the PoX contract"},"first_burnchain_block_height":{"type":"integer","minimum":0,"description":"The first burn block evaluated in this Stacks chain"},"current_burnchain_block_height":{"type":"integer","minimum":0,"description":"The latest Bitcoin chain block height"},"current_epoch":{"type":"string","pattern":"^Epoch[0-9]+(_[0-9]+)?$","description":"The ID of the Stacks Epoch that the node is currently in."},"pox_activation_threshold_ustx":{"type":"integer","description":"The threshold of stacking participation that must be reached for PoX to activate in any cycle"},"rejection_fraction":{"type":["integer","null"],"description":"The fraction of liquid STX that must vote to reject PoX in order to prevent the next reward cycle from activating."},"reward_phase_block_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of the reward phase"},"prepare_phase_block_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of the prepare phase"},"reward_slots":{"type":"integer","minimum":0,"description":"The number of reward slots in a reward cycle"},"total_liquid_supply_ustx":{"type":"integer","minimum":0,"description":"The current total amount of liquid microstacks."},"reward_cycle_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of a whole PoX cycle (reward phase and prepare phase)"},"current_cycle":{"type":"object","additionalProperties":false,"required":["id","min_threshold_ustx","stacked_ustx","is_pox_active"],"properties":{"id":{"type":"integer","minimum":0,"description":"The reward cycle number"},"min_threshold_ustx":{"type":"integer","minimum":0,"description":"The threshold amount for obtaining a slot in this reward cycle."},"stacked_ustx":{"type":"integer","minimum":0,"description":"The total amount of stacked microstacks in this reward cycle."},"is_pox_active":{"type":"boolean","description":"Whether or not PoX is active during this reward cycle."}}},"next_cycle":{"type":"object","additionalProperties":false,"required":["id","min_threshold_ustx","min_increment_ustx","stacked_ustx","prepare_phase_start_block_height","blocks_until_prepare_phase","reward_phase_start_block_height","blocks_until_reward_phase"],"properties":{"id":{"type":"integer","minimum":0,"description":"The reward cycle number"},"min_threshold_ustx":{"type":"integer","minimum":0,"description":"The threshold amount for obtaining a slot in this reward cycle."},"stacked_ustx":{"type":"integer","minimum":0,"description":"The total amount of stacked microstacks in this reward cycle."},"min_increment_ustx":{"type":"integer","minimum":0,"description":"The minimum amount that can be used to submit a `stack-stx` call."},"prepare_phase_start_block_height":{"type":"integer","minimum":0,"description":"The burn block height when the prepare phase for this cycle begins. Any eligible stacks must be stacked before this block."},"blocks_until_prepare_phase":{"type":"integer","description":"The number of burn blocks until the prepare phase for this cycle starts. If the prepare phase for this cycle already started, this value will be a negative number."},"reward_phase_start_block_height":{"type":"integer","minimum":0,"description":"The burn block height when the reward phase for this cycle begins. Any eligible stacks must be stacked before this block."},"blocks_until_reward_phase":{"type":"integer","minimum":0,"description":"The number of burn blocks until this reward phase starts."},"ustx_until_pox_rejection":{"type":["integer","null"],"minimum":0,"description":"The remaining amount of liquid STX that must vote to reject the next reward cycle to prevent the next reward cycle from activating."}}},"reward_cycle_id":{"type":"integer","minimum":0,"deprecated":true,"description":"The active reward cycle number"},"min_amount_ustx":{"type":"integer","minimum":0,"deprecated":true},"prepare_cycle_length":{"type":"integer","minimum":0,"deprecated":true},"rejection_votes_left_required":{"type":["integer","null"],"deprecated":true},"next_reward_cycle_in":{"type":"integer","minimum":0,"description":"The number of blocks until the next reward cycle.","deprecated":true},"contract_versions":{"type":"array","description":"Versions of each PoX","items":{"type":"object","additionalProperties":false,"required":["contract_id","activation_burnchain_block_height","first_reward_cycle_id"],"properties":{"contract_id":{"type":"string","description":"The contract identifier for the PoX contract"},"activation_burnchain_block_height":{"type":"integer","minimum":0,"description":"The burn block height at which this version of PoX is activated"},"first_reward_cycle_id":{"type":"integer","minimum":0,"description":"The first reward cycle number that uses this version of PoX"}}}},"epochs":{"type":"array","description":"Epochs","items":{"type":"object","required":["epoch_id","start_height","end_height","block_limit","network_epoch"],"properties":{"epoch_id":{"type":"string","pattern":"^Epoch[0-9]+(_[0-9]+)?$"},"start_height":{"type":"integer","minimum":0},"end_height":{"type":"integer","minimum":0},"block_limit":{"type":"object","required":["read_count","read_length","write_count","write_length","runtime"],"properties":{"read_count":{"type":"integer","minimum":0},"read_length":{"type":"integer","minimum":0},"write_count":{"type":"integer","minimum":0},"write_length":{"type":"integer","minimum":0},"runtime":{"type":"integer","minimum":0}}},"network_epoch":{"type":"integer","minimum":0}}}}}}}}}
```

## The Sortitions object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"Sortitions":{"description":"Array of sortition information objects from the burnchain","type":"array","$defs":{"Sortition":{"type":"object","description":"Information about a burnchain sortition event","properties":{"burn_block_hash":{"type":"string","description":"The burnchain header hash of the block that triggered this event","pattern":"^0x[0-9a-f]{64}$"},"burn_block_height":{"type":"integer","description":"The burn height of the block that triggered this event","minimum":0},"burn_header_timestamp":{"type":"integer","description":"The burn block time of the sortition (Unix timestamp)","minimum":0},"sortition_id":{"type":"string","description":"This sortition ID of the block that triggered this event. This incorporates PoX forking information and the burn block hash to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{64}$"},"parent_sortition_id":{"type":"string","description":"The parent of this burn block's Sortition ID","pattern":"^0x[0-9a-f]{64}$"},"consensus_hash":{"type":"string","description":"The consensus hash of the block that triggered this event. This incorporates PoX forking information and burn op information to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{40}$"},"was_sortition":{"type":"boolean","description":"Boolean indicating whether or not there was a successful sortition (i.e. a winning block or miner was chosen). This will also be true if this sortition corresponds to a shadow block."},"miner_pk_hash160":{"type":["string","null"],"description":"If sortition occurred, and the miner's VRF key registration associated a nakamoto mining pubkey with their commit, this will contain the Hash160 of that mining key.","pattern":"^0x[0-9a-f]{40}$"},"stacks_parent_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the burn block corresponding to the winning block commit's parent block ptr. In 3.x, this is the consensus hash of the tenure that this new burn block's miner will be building off of.","pattern":"^0x[0-9a-f]{40}$"},"last_sortition_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the most recent sortition before this one.","pattern":"^0x[0-9a-f]{40}$"},"committed_block_hash":{"type":["string","null"],"description":"In Stacks 2.x, this is the winning block. In Stacks 3.x, this is the first block of the parent tenure.","pattern":"^0x[0-9a-f]{64}$"},"vrf_seed":{"type":["string","null"],"description":"This is the VRF seed generated by this sortition","pattern":"^0x[0-9a-f]{64}$"}},"required":["burn_block_hash","burn_block_height","burn_header_timestamp","sortition_id","parent_sortition_id","consensus_hash","was_sortition"]}},"items":{"type":"object","description":"Information about a burnchain sortition event","properties":{"burn_block_hash":{"type":"string","description":"The burnchain header hash of the block that triggered this event","pattern":"^0x[0-9a-f]{64}$"},"burn_block_height":{"type":"integer","description":"The burn height of the block that triggered this event","minimum":0},"burn_header_timestamp":{"type":"integer","description":"The burn block time of the sortition (Unix timestamp)","minimum":0},"sortition_id":{"type":"string","description":"This sortition ID of the block that triggered this event. This incorporates PoX forking information and the burn block hash to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{64}$"},"parent_sortition_id":{"type":"string","description":"The parent of this burn block's Sortition ID","pattern":"^0x[0-9a-f]{64}$"},"consensus_hash":{"type":"string","description":"The consensus hash of the block that triggered this event. This incorporates PoX forking information and burn op information to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{40}$"},"was_sortition":{"type":"boolean","description":"Boolean indicating whether or not there was a successful sortition (i.e. a winning block or miner was chosen). This will also be true if this sortition corresponds to a shadow block."},"miner_pk_hash160":{"type":["string","null"],"description":"If sortition occurred, and the miner's VRF key registration associated a nakamoto mining pubkey with their commit, this will contain the Hash160 of that mining key.","pattern":"^0x[0-9a-f]{40}$"},"stacks_parent_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the burn block corresponding to the winning block commit's parent block ptr. In 3.x, this is the consensus hash of the tenure that this new burn block's miner will be building off of.","pattern":"^0x[0-9a-f]{40}$"},"last_sortition_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the most recent sortition before this one.","pattern":"^0x[0-9a-f]{40}$"},"committed_block_hash":{"type":["string","null"],"description":"In Stacks 2.x, this is the winning block. In Stacks 3.x, this is the first block of the parent tenure.","pattern":"^0x[0-9a-f]{64}$"},"vrf_seed":{"type":["string","null"],"description":"This is the VRF seed generated by this sortition","pattern":"^0x[0-9a-f]{64}$"}},"required":["burn_block_hash","burn_block_height","burn_header_timestamp","sortition_id","parent_sortition_id","consensus_hash","was_sortition"]}}}}}
```

## The GetHealth object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"GetHealth":{"type":"object","required":["difference_from_max_peer","max_stacks_height_of_neighbors","node_stacks_tip_height"],"properties":{"difference_from_max_peer":{"type":"integer","minimum":0,"description":"The difference in Stacks height between this node and its most advanced peer"},"max_stacks_height_of_neighbors":{"type":"integer","minimum":0,"description":"The maximum Stacks height observed among the node's connected peers"},"node_stacks_tip_height":{"type":"integer","minimum":0,"description":"The current Stacks tip height of this node"},"max_stacks_neighbor_address":{"type":["string","null"],"description":"The address of the most advanced peer"}},"description":"Health information about the node's synchronization status"}}}}
```

## The AccountData object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"AccountData":{"description":"GET request for account data","type":"object","additionalProperties":false,"required":["balance","locked","unlock_height","nonce"],"properties":{"balance":{"type":"string"},"locked":{"type":"string"},"unlock_height":{"type":"integer","minimum":0,"description":"Block height when locked balance unlocks (64-bit unsigned integer)"},"nonce":{"type":"integer","minimum":0,"description":"Account transaction nonce (64-bit unsigned integer)"},"balance_proof":{"type":"string","description":"Merkle proof for the balance value"},"nonce_proof":{"type":"string","description":"Merkle proof for the nonce value"}}}}}}
```

## The TransactionSubmissionError object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TransactionSubmissionError":{"description":"Describes a transaction submission error response","type":"object","required":["error","reason","txid"],"properties":{"error":{"type":"string","description":"The error"},"reason":{"type":"string","description":"The reason for the error"},"reason_data":{"type":"object","description":"More details about the reason","properties":{"actual":{"type":"integer"},"expected":{"type":"integer"},"is_origin":{"type":"boolean"},"principal":{"type":"string"}}},"txid":{"type":"string","description":"The relevant transaction id"}}}}}}
```

## The FeeTransactionRequest object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"FeeTransactionRequest":{"description":"POST request for estimated fee","type":"object","additionalProperties":false,"required":["transaction_payload"],"properties":{"transaction_payload":{"type":"string"},"estimated_len":{"type":"integer"}}}}}}
```

## The FeeTransactionResponse object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"FeeTransactionResponse":{"description":"POST response for estimated fee","type":"object","additionalProperties":false,"required":["estimated_cost","estimated_cost_scalar","cost_scalar_change_by_byte","estimations"],"properties":{"estimated_cost":{"type":"object","additionalProperties":false,"required":["read_count","write_count","read_length","write_length","runtime"],"properties":{"read_count":{"type":"integer","minimum":0},"read_length":{"type":"integer","minimum":0},"runtime":{"type":"integer","minimum":0},"write_count":{"type":"integer","minimum":0},"write_length":{"type":"integer","minimum":0}}},"estimated_cost_scalar":{"type":"integer","minimum":0},"cost_scalar_change_by_byte":{"type":"number","minimum":0},"estimations":{"type":"array","items":{"type":"object","properties":{"fee_rate":{"type":"number","minimum":0},"fee":{"type":"integer","minimum":0}}}}}}}}}
```

## The FeeTransactionError object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"FeeTransactionError":{"type":"object","description":"Returned when the node cannot calculate a fee estimate.\n","required":["error","reason"],"properties":{"error":{"type":"string","description":"Human-readable summary of the failure."},"reason":{"type":"string","description":"Machine-readable error code.","enum":["DatabaseError","NoEstimateAvailable"]},"reason_data":{"type":["object","null"],"description":"Optional structured details specific to `reason`.\nFor the current implementation it contains a `message` field,\nbut additional fields may be added in future.\n","properties":{"message":{"type":"string"}},"additionalProperties":true}}}}}}
```

## The ContractInterface object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ContractInterface":{"description":"The interface of a Clarity smart contract.","type":"object","required":["functions","variables","maps","fungible_tokens","non_fungible_tokens","epoch","clarity_version"],"$defs":{"ClarityType":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","oneOf":[{"type":"string","description":"Simple primitive type (e.g., 'int', 'uint', 'bool', 'principal')"},{"type":"object","description":"List type","required":["list"],"properties":{"list":{"type":"object","required":["type"],"properties":{"type":{"description":"Type of list elements","type":"object","additionalProperties":true},"length":{"type":"integer","description":"Fixed length for list types"}}}}},{"type":"object","description":"Tuple type","required":["tuple"],"properties":{"tuple":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"Field name in the tuple"},"type":{"description":"Type of the tuple field","type":"object","additionalProperties":true}}}}}},{"type":"object","description":"Response type","required":["response"],"properties":{"response":{"type":"object","required":["ok","error"],"properties":{"ok":{"description":"Success type","type":"object","additionalProperties":true},"error":{"description":"Error type","type":"object","additionalProperties":true}}}}},{"type":"object","description":"Optional type","required":["optional"],"properties":{"optional":{"description":"Wrapped optional type","type":"object","additionalProperties":true}}},{"type":"object","description":"Buffer type","required":["buffer"],"properties":{"buffer":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Fixed length for buffer types"}}}}},{"type":"object","description":"ASCII string type with fixed maximum length","required":["string-ascii"],"properties":{"string-ascii":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of characters (ASCII)"}}}}},{"type":"object","description":"UTF-8 string type with fixed maximum length","required":["string-utf8"],"properties":{"string-utf8":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of code-points (UTF-8)"}}}}}]}},"properties":{"functions":{"type":"array","description":"List of defined methods","items":{"type":"object","required":["name","access","args","outputs"],"properties":{"name":{"type":"string"},"access":{"type":"string","enum":["public","private","read_only"]},"args":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"outputs":{"type":"object","required":["type"],"properties":{"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}}}},"variables":{"type":"array","description":"List of defined constants","items":{"type":"object","required":["name","type","access"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true},"access":{"type":"string","enum":["constant","variable"]}}}},"maps":{"type":"array","description":"List of defined data-maps","items":{"type":"object","required":["name","key","value"],"properties":{"name":{"type":"string"},"key":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true},"value":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"fungible_tokens":{"type":"array","description":"List of fungible tokens in the contract","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}},"non_fungible_tokens":{"type":"array","description":"List of non-fungible tokens in the contract","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"epoch":{"type":"string","description":"Stacks epoch identifier (e.g., \"Epoch30\")."},"clarity_version":{"type":"string","description":"Clarity language version used by this contract.","enum":["Clarity1","Clarity2","Clarity3"]}}}}}}
```

## The ContractSource object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ContractSource":{"description":"GET request to get contract source","type":"object","additionalProperties":false,"required":["source","publish_height"],"properties":{"source":{"type":"string"},"publish_height":{"type":"integer","minimum":0,"description":"Block height at which the contract was published (32-bit unsigned integer)"},"proof":{"type":"string","description":"Hex-encoded 0x prefixed string of the Merkle proof for the contract source","pattern":"^0x[0-9a-f]+$"}}}}}}
```

## The ReadOnlyFunctionArgs object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ReadOnlyFunctionArgs":{"description":"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","type":"object","additionalProperties":false,"required":["sender","arguments"],"properties":{"sender":{"description":"The simulated tx-sender.","allOf":[{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}$","minLength":28,"maxLength":41}]},"sponsor":{"description":"The simulated sponsor address.","allOf":[{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}(\\.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,127})?$","minLength":28,"maxLength":170}]},"arguments":{"type":"array","description":"An array of hex serialized Clarity values","items":{"type":"string","pattern":"^(0x)?([0-9a-fA-F]{2})+$","description":"Hex-encoded Clarity value (optionally prefixed with 0x)"}}}}}}}
```

## The ReadOnlyFunctionResult object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ReadOnlyFunctionResult":{"description":"The result of a read-only function call.","oneOf":[{"type":"object","description":"Successful read-only function call result","required":["okay","result"],"properties":{"okay":{"type":"boolean","enum":[true]},"result":{"type":"string","description":"Hex-encoded Clarity value of the successful result."}}},{"type":"object","description":"Failed read-only function call result","required":["okay","cause"],"properties":{"okay":{"type":"boolean","enum":[false]},"cause":{"type":"string","description":"A string representing the cause of the error."}}}]}}}}
```

## The ClarityName object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ClarityName":{"type":"string","description":"A valid Clarity name. Must either:\n- Start with a letter and contain only letters, numbers, and [-_!?+<>=/*]\n- Be exactly one of the special characters: - + = * /\n- Be a comparison operator: < > <= >=\n","pattern":"^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$","minLength":1,"maxLength":128}}}}
```

## The ClarityMetadata object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ClarityMetadata":{"description":"Response of get clarity metadata request","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Metadata value"}}}}}}
```

## The ConstantValue object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ConstantValue":{"description":"Response of get constant val request","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Hex-encoded 0x prefixed string of clarity value.","pattern":"^0x[0-9a-f]+$"}}}}}}
```

## The IsTraitImplemented object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"IsTraitImplemented":{"description":"GET request to get trait implementation information","type":"object","additionalProperties":false,"required":["is_implemented"],"properties":{"is_implemented":{"type":"boolean"}}}}}}
```

## The SignerBlocksSigned object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"SignerBlocksSigned":{"type":"object","properties":{"blocks_signed":{"type":"integer","description":"Number of blocks signed by this signer"}},"required":["blocks_signed"]}}}}
```

## The UnconfirmedTransaction object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"UnconfirmedTransaction":{"type":"object","properties":{"tx":{"type":"string","description":"Hex-encoded transaction data"},"status":{"oneOf":[{"type":"object","properties":{"Microblock":{"type":"object","properties":{"block_hash":{"type":"string","description":"Block hash containing the microblock"},"seq":{"type":"integer","description":"Microblock sequence number"}}}}},{"type":"string","enum":["Mempool"]}]}}}}}}
```

## The BlockUploadResponse object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"BlockUploadResponse":{"type":"object","properties":{"stacks_block_id":{"type":"string","description":"The ID of the uploaded block"},"accepted":{"type":"boolean","description":"Whether the block was accepted"}}}}}}
```

## The AttachmentInventory object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"AttachmentInventory":{"type":"object","properties":{"block_id":{"type":"string","description":"Index block hash"},"pages":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"Page index"},"inventory":{"type":"array","description":"8-byte bitfield for the page (array of integers 0-255)","items":{"type":"integer","minimum":0,"maximum":255}}}}}}}}}}
```

## The AttachmentData object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"AttachmentData":{"type":"object","properties":{"attachment":{"type":"string","format":"byte","description":"The attachment data, hex-encoded."}},"required":["attachment"]}}}}
```

## The StackerDbMetadata object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"StackerDbMetadata":{"type":"array","items":{"type":"object","properties":{"slot_id":{"type":"integer","description":"Slot identifier (unique for each DB instance)"},"slot_version":{"type":"integer","description":"Slot version (a lamport clock)"},"data_hash":{"type":"string","description":"Data hash (hex, no 0x prefix)"},"signature":{"type":"string","description":"signature over the above (hex, no 0x prefix)"}}}}}}}
```

## The StackerDbReplicas object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"StackerDbReplicas":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"},"public_key_hash":{"type":"string","description":"20-byte public key hash"}}}}}}}
```

## The StackerDbChunkData object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"StackerDbChunkData":{"type":"object","required":["slot_id","slot_version","sig","data"],"properties":{"slot_id":{"type":"integer","minimum":0,"maximum":4294967295,"description":"Slot identifier (u32 range)"},"slot_version":{"type":"integer","minimum":0,"maximum":4294967295,"description":"Slot version (lamport clock, u32 range)"},"sig":{"type":"string","description":"Hex-encoded signature from the stacker","pattern":"^[0-9a-f]{130}$"},"data":{"type":"string","description":"Hex-encoded chunk data (must be even length)","pattern":"^([0-9a-f]{2})*$"}}}}}}
```

## The StackerDbChunkAckData object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"StackerDbChunkAckData":{"type":"object","required":["accepted"],"properties":{"accepted":{"type":"boolean","description":"Whether the chunk was accepted"},"reason":{"type":["string","null"],"description":"JSON-encoded reason for rejection (only present when accepted is false)"},"metadata":{"type":["object","null"],"description":"Slot metadata (present on successful acceptance)","properties":{"slot_id":{"type":"integer","minimum":0,"description":"Slot identifier"},"slot_version":{"type":"integer","minimum":0,"description":"Slot version"},"data_hash":{"type":"string","description":"Hex-encoded SHA512/256 hash of the data","pattern":"^[0-9a-f]{64}$"},"signature":{"type":"string","description":"Hex-encoded signature","pattern":"^[0-9a-f]{130}$"}}},"code":{"type":["integer","null"],"description":"Error code (only present when accepted is false)"}}}}}}
```

## The ClarityData object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ClarityData":{"description":"Response to a GET request for Clarity Data/MARF/MapEntry value","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Hex-encoded 0x prefixed string of the MARF value","pattern":"^0x[0-9a-f]+$"},"proof":{"type":"string","description":"Hex-encoded 0x prefixed string of the Merkle proof for the data. Empty string if proof not requested.","pattern":"^(0x[0-9a-f]+)?$"}}}}}}
```

## The BlockHeaders object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"BlockHeaders":{"type":"array","description":"JSON array returned by /v2/headers/{quantity}. Each entry is an ExtendedStacksHeader.","items":{"type":"object","required":["consensus_hash","header","parent_block_id"],"properties":{"consensus_hash":{"type":"string","description":"20-byte burn-chain consensus hash (hex, no 0x prefix)","pattern":"^[0-9a-f]{40}$"},"header":{"type":"string","description":"Hex-encoded SIP-003 serialization of the Stacks block header","pattern":"^[0-9a-f]+$"},"parent_block_id":{"type":"string","description":"32-byte index-block ID of the parent Stacks block (hex)","pattern":"^[0-9a-f]{64}$"}},"additionalProperties":false}}}}}
```

## The BlockProposalResponse object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"BlockProposalResponse":{"description":"Get Response for Block Proposal","type":"object","additionalProperties":false,"required":["result","message"],"properties":{"result":{"type":"string","enum":["Error","Accepted"]},"message":{"type":"string","description":"A message describing the result or error message."}}}}}}
```

## The NetworkPeers object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"NetworkPeers":{"description":"Information about the node's neighbor peers in the network.","type":"object","required":["bootstrap","sample","inbound","outbound"],"properties":{"bootstrap":{"type":"array","description":"List of bootstrap peers known to the node.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"sample":{"type":"array","description":"List of a sample of gossiped peers.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"inbound":{"type":"array","description":"List of inbound peer connections.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"outbound":{"type":"array","description":"List of outbound peer connections.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}}},"$defs":{"RPCNeighbor":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}}}}}}
```

## The TransactionInfo object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TransactionInfo":{"type":"object","required":["index_block_hash","tx","result"],"properties":{"index_block_hash":{"type":"string","description":"Block hash where the transaction was included","pattern":"^[0-9a-f]{64}$"},"tx":{"type":"string","description":"Hex-encoded transaction"},"result":{"type":"string","description":"Transaction execution result (Clarity value)"},"block_height":{"type":["integer","null"],"description":"Height of the block where the transaction was included"},"is_canonical":{"type":"boolean","description":"Whether the block where this transaction was included is in the canonical chain tip"}}}}}}
```

## The TenureForkInfo object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TenureForkInfo":{"type":"object","description":"Information about a tenure used for fork-detection.","required":["burn_block_hash","burn_block_height","sortition_id","parent_sortition_id","consensus_hash","was_sortition"],"properties":{"burn_block_hash":{"type":"string","description":"0x-prefixed 32-byte Bitcoin block hash that triggered the tenure event","pattern":"^0x[0-9a-fA-F]{64}$"},"burn_block_height":{"type":"integer","format":"uint64"},"sortition_id":{"type":"string","description":"0x-prefixed 32-byte sortition ID (unique across PoX and Bitcoin forks)","pattern":"^0x[0-9a-fA-F]{64}$"},"parent_sortition_id":{"type":"string","description":"0x-prefixed sortition ID of the parent burn block","pattern":"^0x[0-9a-fA-F]{64}$"},"consensus_hash":{"type":"string","description":"0x-prefixed 20-byte consensus hash identifying the tenure","pattern":"^0x[0-9a-fA-F]{40}$"},"was_sortition":{"type":"boolean","description":"Whether a winning sortition occurred at this burn block"},"first_block_mined":{"type":["string","null"],"description":"0x-prefixed index-block ID of the first Stacks block in the tenure (if any)","pattern":"^0x[0-9a-fA-F]{64}$"},"nakamoto_blocks":{"type":["string","null"],"description":"0x-prefixed SIP-003 binary encoding of all Nakamoto blocks mined in this tenure"}},"additionalProperties":false}}}}
```

## The TenureInfo object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TenureInfo":{"type":"object","properties":{"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"tenure_start_block_id":{"type":"string","description":"Block ID where the tenure started","pattern":"^[0-9a-f]{64}$"},"parent_consensus_hash":{"type":"string","description":"Parent consensus hash","pattern":"^[0-9a-f]{40}$"},"parent_tenure_start_block_id":{"type":"string","description":"Parent tenure start block ID","pattern":"^[0-9a-f]{64}$"},"tip_block_id":{"type":"string","description":"Current tip block ID","pattern":"^[0-9a-f]{64}$"},"tip_height":{"type":"integer","minimum":0,"description":"Current tip height"},"reward_cycle":{"type":"integer","minimum":0,"description":"Current reward cycle"}}}}}}
```

## The TenureTip object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TenureTip":{"description":"JSON encoding of `StacksBlockHeaderTypes` returned by /v3/tenures/tip.\nExactly one variant property will be present: either `Epoch2` or `Nakamoto`.\n","oneOf":[{"title":"Epoch2HeaderVariant","type":"object","required":["Epoch2"],"additionalProperties":false,"properties":{"Epoch2":{"type":"object","description":"Header structure for a Stacks 2.x anchored block.","required":["version","total_work","proof","parent_block","parent_microblock","parent_microblock_sequence","tx_merkle_root","state_index_root","microblock_pubkey_hash"],"properties":{"version":{"type":"integer","minimum":0},"total_work":{"type":"object","required":["burn","work"],"properties":{"burn":{"type":"integer","format":"uint64"},"work":{"type":"integer","format":"uint64"}}},"proof":{"type":"string","description":"Hex-encoded VRF proof"},"parent_block":{"type":"string","description":"32-byte hex of the parent block header hash"},"parent_microblock":{"type":"string","description":"32-byte hex of the parent microblock header hash"},"parent_microblock_sequence":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of the transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"microblock_pubkey_hash":{"type":"string","description":"Hash160 (20-byte hex) of the microblock public key"}},"additionalProperties":false}}},{"title":"NakamotoHeaderVariant","type":"object","required":["Nakamoto"],"additionalProperties":false,"properties":{"Nakamoto":{"type":"object","description":"Header structure for a Nakamoto-epoch Stacks block.","required":["version","chain_length","burn_spent","consensus_hash","parent_block_id","tx_merkle_root","state_index_root","timestamp","miner_signature","signer_signature","pox_treatment"],"properties":{"version":{"type":"integer","minimum":0},"chain_length":{"type":"integer","format":"uint64","description":"Number of ancestor blocks including Stacks 2.x blocks"},"burn_spent":{"type":"integer","format":"uint64","description":"Total BTC spent by the sortition that elected this block"},"consensus_hash":{"type":"string","description":"20-byte hex consensus hash that identifies the tenure"},"parent_block_id":{"type":"string","description":"32-byte hex identifier of the parent block (hash+consensus)"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of all transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"timestamp":{"type":"integer","description":"Unix timestamp (seconds)"},"miner_signature":{"type":"string","description":"Recoverable ECDSA signature from the miner"},"signer_signature":{"type":"array","description":"Signer-set signatures over the block header","items":{"type":"string"}},"pox_treatment":{"type":"string","description":"Bit-vector, hex-encoded, indicating PoX reward treatment"}},"additionalProperties":false}}}]}}}}
```

## The TenureTipMetadata object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TenureTipMetadata":{"description":"JSON encoding of `BlockHeaderWithMetadata` returned by /v3/tenures/tip_metadata.\nExactly one variant property will be present: either `Epoch2` or `Nakamoto`.\n","type":"object","required":["anchored_header"],"properties":{"burn_view":{"type":"string","description":"Hex-encoded bitcoin block hash"},"anchored_header":{"oneOf":[{"title":"Epoch2HeaderVariant","type":"object","required":["Epoch2"],"additionalProperties":false,"properties":{"Epoch2":{"type":"object","description":"Header structure for a Stacks 2.x anchored block.","required":["version","total_work","proof","parent_block","parent_microblock","parent_microblock_sequence","tx_merkle_root","state_index_root","microblock_pubkey_hash"],"properties":{"version":{"type":"integer","minimum":0},"total_work":{"type":"object","required":["burn","work"],"properties":{"burn":{"type":"integer","format":"uint64"},"work":{"type":"integer","format":"uint64"}}},"proof":{"type":"string","description":"Hex-encoded VRF proof"},"parent_block":{"type":"string","description":"32-byte hex of the parent block header hash"},"parent_microblock":{"type":"string","description":"32-byte hex of the parent microblock header hash"},"parent_microblock_sequence":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of the transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"microblock_pubkey_hash":{"type":"string","description":"Hash160 (20-byte hex) of the microblock public key"}},"additionalProperties":false}}},{"title":"NakamotoHeaderVariant","type":"object","required":["Nakamoto"],"additionalProperties":false,"properties":{"Nakamoto":{"type":"object","description":"Header structure for a Nakamoto-epoch Stacks block.","required":["version","chain_length","burn_spent","consensus_hash","parent_block_id","tx_merkle_root","state_index_root","timestamp","miner_signature","signer_signature","pox_treatment"],"properties":{"version":{"type":"integer","minimum":0},"chain_length":{"type":"integer","format":"uint64","description":"Number of ancestor blocks including Stacks 2.x blocks"},"burn_spent":{"type":"integer","format":"uint64","description":"Total BTC spent by the sortition that elected this block"},"consensus_hash":{"type":"string","description":"20-byte hex consensus hash that identifies the tenure"},"parent_block_id":{"type":"string","description":"32-byte hex identifier of the parent block (hash+consensus)"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of all transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"timestamp":{"type":"integer","description":"Unix timestamp (seconds)"},"miner_signature":{"type":"string","description":"Recoverable ECDSA signature from the miner"},"signer_signature":{"type":"array","description":"Signer-set signatures over the block header","items":{"type":"string"}},"pox_treatment":{"type":"string","description":"Bit-vector, hex-encoded, indicating PoX reward treatment"}},"additionalProperties":false}}}]}}}}}}
```

## The GetStackerSet object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"GetStackerSet":{"type":"object","properties":{"stacker_set":{"type":"object","required":["rewarded_addresses","start_cycle_state"],"properties":{"rewarded_addresses":{"type":"array","description":"Reward addresses that will receive PoX rewards for the cycle.","items":{"type":"object","description":"PoX address object with serialization details (see SIP-007).","properties":{"Standard":{"type":"array","description":"Standard address representation.","items":{"oneOf":[{"type":"object","properties":{"bytes":{"type":"string","description":"Hex-encoded 20-byte address payload"},"version":{"type":"integer","description":"Address version byte"}}},{"type":"string","description":"Serialization method (e.g., \"SerializeP2PKH\")"}]}}},"additionalProperties":true}},"signers":{"type":"array","description":"Optional signer set for PoX-4 reward cycles.","items":{"type":"object","properties":{"signing_key":{"type":"string","description":"Hex-encoded compressed Secp256k1 public key (33 bytes)"},"weight":{"type":"integer","description":"Signer voting weight (number of slots)"},"stacked_amt":{"type":"integer","format":"int64","description":"Amount stacked by signer (in microSTX)"}}}},"start_cycle_state":{"type":"object","properties":{"missed_reward_slots":{"type":"array","description":"Principals that missed reward slots at cycle start.","items":{"type":"object"}}}},"pox_ustx_threshold":{"type":"integer","format":"int64","description":"Minimum STX amount required to qualify for stacking (optional)"}}}}}}}}
```

## The TenureBlocks object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"TenureBlocks":{"type":"object","properties":{"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"burn_block_height":{"type":"integer","description":"Height of the Bitcoin block","format":"uint64"},"burn_block_hash":{"type":"string","description":"Hash of the Bitcoin block","pattern":"^[0-9a-f]{64}$"},"stacks_blocks":{"type":"array","items":{"type":"object","properties":{"block_id":{"type":"string","description":"Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"block_hash":{"type":"string","description":"Hash of the block","pattern":"^[0-9a-f]{64}$"},"header_type":{"type":"string","description":"Type of block (currently \"epoch2\" or \"nakamoto\")"},"height":{"type":"integer","description":"Height of the block","format":"uint64"},"parent_block_id":{"type":"string","description":"Block ID (index block hash) of the parent","pattern":"^[0-9a-f]{64}$"}}}}}}}}}
```

## The BlockReplay object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"BlockReplay":{"type":"object","properties":{"block_hash":{"type":"string","description":"Hash of the block","pattern":"^[0-9a-f]{64}$"},"block_id":{"type":"string","description":"Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"block_height":{"type":"integer","description":"Height of the Stacks block","format":"uint64"},"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"fees":{"type":"integer","description":"total fees for the block"},"miner_signature":{"type":"string","description":"Uncompressed signature of the miner","pattern":"^[0-9a-f]{130}$"},"parent_block_id":{"type":"string","description":"Parent Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"signer_signature":{"type":"array","items":{"type":"string","description":"Uncompressed signature of the signer","pattern":"^[0-9a-f]{130}$"}},"state_index_root":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"block state index root computed from the MARF (got from the original block)"},"timestamp":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"merkle_root of the included transactions"},"valid_merkle_root":{"type":"boolean","description":"does the merkle_root matches the chain block and the simulated one?"},"transactions":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","description":"JSON representation of the transaction payload"},"events":{"type":"array","items":{"type":"object","description":"JSON representation of the transaction events"}},"execution_cost":{"type":"object","description":"costs accounting for the transaction"},"hex":{"type":"string","description":"hexadecimal representation of the transaction body"},"result":{"type":"object","description":"Clarity value representing the transaction result"},"result_hex":{"type":"string","description":"The transaction's result, encoded as a Clarity hex string"},"post_condition_aborted":{"type":"boolean","description":"Whether the transaction was aborted by a post-condition"},"stx_burned":{"type":"integer","description":"number of burned stx"},"tx_index":{"type":"integer","description":"index of the transaction in the array of transactions"},"txid":{"type":"string","description":"transaction id"},"vm_error":{"type":["string","null"],"description":"optional vm error (for runtime failures)"}}}}}}}}}
```

## The transaction-submission-error.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"transaction-submission-error.schema":{"description":"Describes a transaction submission error response","type":"object","required":["error","reason","txid"],"properties":{"error":{"type":"string","description":"The error"},"reason":{"type":"string","description":"The reason for the error"},"reason_data":{"type":"object","description":"More details about the reason","properties":{"actual":{"type":"integer"},"expected":{"type":"integer"},"is_origin":{"type":"boolean"},"principal":{"type":"string"}}},"txid":{"type":"string","description":"The relevant transaction id"}}}}}}
```

## The standard-principal.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"standard-principal.schema":{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}$","minLength":28,"maxLength":41}}}}
```

## The ClarityType object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"ClarityType":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","oneOf":[{"type":"string","description":"Simple primitive type (e.g., 'int', 'uint', 'bool', 'principal')"},{"type":"object","description":"List type","required":["list"],"properties":{"list":{"type":"object","required":["type"],"properties":{"type":{"description":"Type of list elements","type":"object","additionalProperties":true},"length":{"type":"integer","description":"Fixed length for list types"}}}}},{"type":"object","description":"Tuple type","required":["tuple"],"properties":{"tuple":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"Field name in the tuple"},"type":{"description":"Type of the tuple field","type":"object","additionalProperties":true}}}}}},{"type":"object","description":"Response type","required":["response"],"properties":{"response":{"type":"object","required":["ok","error"],"properties":{"ok":{"description":"Success type","type":"object","additionalProperties":true},"error":{"description":"Error type","type":"object","additionalProperties":true}}}}},{"type":"object","description":"Optional type","required":["optional"],"properties":{"optional":{"description":"Wrapped optional type","type":"object","additionalProperties":true}}},{"type":"object","description":"Buffer type","required":["buffer"],"properties":{"buffer":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Fixed length for buffer types"}}}}},{"type":"object","description":"ASCII string type with fixed maximum length","required":["string-ascii"],"properties":{"string-ascii":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of characters (ASCII)"}}}}},{"type":"object","description":"UTF-8 string type with fixed maximum length","required":["string-utf8"],"properties":{"string-utf8":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of code-points (UTF-8)"}}}}}]}}}}
```

## The contract-interface.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"contract-interface.schema":{"description":"The interface of a Clarity smart contract.","type":"object","required":["functions","variables","maps","fungible_tokens","non_fungible_tokens","epoch","clarity_version"],"$defs":{"ClarityType":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","oneOf":[{"type":"string","description":"Simple primitive type (e.g., 'int', 'uint', 'bool', 'principal')"},{"type":"object","description":"List type","required":["list"],"properties":{"list":{"type":"object","required":["type"],"properties":{"type":{"description":"Type of list elements","type":"object","additionalProperties":true},"length":{"type":"integer","description":"Fixed length for list types"}}}}},{"type":"object","description":"Tuple type","required":["tuple"],"properties":{"tuple":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"Field name in the tuple"},"type":{"description":"Type of the tuple field","type":"object","additionalProperties":true}}}}}},{"type":"object","description":"Response type","required":["response"],"properties":{"response":{"type":"object","required":["ok","error"],"properties":{"ok":{"description":"Success type","type":"object","additionalProperties":true},"error":{"description":"Error type","type":"object","additionalProperties":true}}}}},{"type":"object","description":"Optional type","required":["optional"],"properties":{"optional":{"description":"Wrapped optional type","type":"object","additionalProperties":true}}},{"type":"object","description":"Buffer type","required":["buffer"],"properties":{"buffer":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Fixed length for buffer types"}}}}},{"type":"object","description":"ASCII string type with fixed maximum length","required":["string-ascii"],"properties":{"string-ascii":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of characters (ASCII)"}}}}},{"type":"object","description":"UTF-8 string type with fixed maximum length","required":["string-utf8"],"properties":{"string-utf8":{"type":"object","required":["length"],"properties":{"length":{"type":"integer","description":"Maximum number of code-points (UTF-8)"}}}}}]}},"properties":{"functions":{"type":"array","description":"List of defined methods","items":{"type":"object","required":["name","access","args","outputs"],"properties":{"name":{"type":"string"},"access":{"type":"string","enum":["public","private","read_only"]},"args":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"outputs":{"type":"object","required":["type"],"properties":{"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}}}},"variables":{"type":"array","description":"List of defined constants","items":{"type":"object","required":["name","type","access"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true},"access":{"type":"string","enum":["constant","variable"]}}}},"maps":{"type":"array","description":"List of defined data-maps","items":{"type":"object","required":["name","key","value"],"properties":{"name":{"type":"string"},"key":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true},"value":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"fungible_tokens":{"type":"array","description":"List of fungible tokens in the contract","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}},"non_fungible_tokens":{"type":"array","description":"List of non-fungible tokens in the contract","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"description":"Represents a Clarity type. It can be a simple string for primitive types or a nested object for complex types like lists and tuples.","type":"object","additionalProperties":true}}}},"epoch":{"type":"string","description":"Stacks epoch identifier (e.g., \"Epoch30\")."},"clarity_version":{"type":"string","description":"Clarity language version used by this contract.","enum":["Clarity1","Clarity2","Clarity3"]}}}}}}
```

## The clarity-name.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"clarity-name.schema":{"type":"string","description":"A valid Clarity name. Must either:\n- Start with a letter and contain only letters, numbers, and [-_!?+<>=/*]\n- Be exactly one of the special characters: - + = * /\n- Be a comparison operator: < > <= >=\n","pattern":"^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$","minLength":1,"maxLength":128}}}}
```

## The clarity-data.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"clarity-data.schema":{"description":"Response to a GET request for Clarity Data/MARF/MapEntry value","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Hex-encoded 0x prefixed string of the MARF value","pattern":"^0x[0-9a-f]+$"},"proof":{"type":"string","description":"Hex-encoded 0x prefixed string of the Merkle proof for the data. Empty string if proof not requested.","pattern":"^(0x[0-9a-f]+)?$"}}}}}}
```

## The contract-source.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"contract-source.schema":{"description":"GET request to get contract source","type":"object","additionalProperties":false,"required":["source","publish_height"],"properties":{"source":{"type":"string"},"publish_height":{"type":"integer","minimum":0,"description":"Block height at which the contract was published (32-bit unsigned integer)"},"proof":{"type":"string","description":"Hex-encoded 0x prefixed string of the Merkle proof for the contract source","pattern":"^0x[0-9a-f]+$"}}}}}}
```

## The principal.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"principal.schema":{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}(\\.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,127})?$","minLength":28,"maxLength":170}}}}
```

## The read-only-function-args.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"read-only-function-args.schema":{"description":"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","type":"object","additionalProperties":false,"required":["sender","arguments"],"properties":{"sender":{"description":"The simulated tx-sender.","allOf":[{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}$","minLength":28,"maxLength":41}]},"sponsor":{"description":"The simulated sponsor address.","allOf":[{"type":"string","pattern":"^S[PTMN][0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26,39}(\\.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,127})?$","minLength":28,"maxLength":170}]},"arguments":{"type":"array","description":"An array of hex serialized Clarity values","items":{"type":"string","pattern":"^(0x)?([0-9a-fA-F]{2})+$","description":"Hex-encoded Clarity value (optionally prefixed with 0x)"}}}}}}}
```

## The read-only-function-result.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"read-only-function-result.schema":{"description":"The result of a read-only function call.","oneOf":[{"type":"object","description":"Successful read-only function call result","required":["okay","result"],"properties":{"okay":{"type":"boolean","enum":[true]},"result":{"type":"string","description":"Hex-encoded Clarity value of the successful result."}}},{"type":"object","description":"Failed read-only function call result","required":["okay","cause"],"properties":{"okay":{"type":"boolean","enum":[false]},"cause":{"type":"string","description":"A string representing the cause of the error."}}}]}}}}
```

## The account-data.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"account-data.schema":{"description":"GET request for account data","type":"object","additionalProperties":false,"required":["balance","locked","unlock_height","nonce"],"properties":{"balance":{"type":"string"},"locked":{"type":"string"},"unlock_height":{"type":"integer","minimum":0,"description":"Block height when locked balance unlocks (64-bit unsigned integer)"},"nonce":{"type":"integer","minimum":0,"description":"Account transaction nonce (64-bit unsigned integer)"},"balance_proof":{"type":"string","description":"Merkle proof for the balance value"},"nonce_proof":{"type":"string","description":"Merkle proof for the nonce value"}}}}}}
```

## The fee-transaction-request.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"fee-transaction-request.schema":{"description":"POST request for estimated fee","type":"object","additionalProperties":false,"required":["transaction_payload"],"properties":{"transaction_payload":{"type":"string"},"estimated_len":{"type":"integer"}}}}}}
```

## The fee-transaction-response.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"fee-transaction-response.schema":{"description":"POST response for estimated fee","type":"object","additionalProperties":false,"required":["estimated_cost","estimated_cost_scalar","cost_scalar_change_by_byte","estimations"],"properties":{"estimated_cost":{"type":"object","additionalProperties":false,"required":["read_count","write_count","read_length","write_length","runtime"],"properties":{"read_count":{"type":"integer","minimum":0},"read_length":{"type":"integer","minimum":0},"runtime":{"type":"integer","minimum":0},"write_count":{"type":"integer","minimum":0},"write_length":{"type":"integer","minimum":0}}},"estimated_cost_scalar":{"type":"integer","minimum":0},"cost_scalar_change_by_byte":{"type":"number","minimum":0},"estimations":{"type":"array","items":{"type":"object","properties":{"fee_rate":{"type":"number","minimum":0},"fee":{"type":"integer","minimum":0}}}}}}}}}
```

## The fee-transaction-error.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"fee-transaction-error.schema":{"type":"object","description":"Returned when the node cannot calculate a fee estimate.\n","required":["error","reason"],"properties":{"error":{"type":"string","description":"Human-readable summary of the failure."},"reason":{"type":"string","description":"Machine-readable error code.","enum":["DatabaseError","NoEstimateAvailable"]},"reason_data":{"type":["object","null"],"description":"Optional structured details specific to `reason`.\nFor the current implementation it contains a `message` field,\nbut additional fields may be added in future.\n","properties":{"message":{"type":"string"}},"additionalProperties":true}}}}}}
```

## The node-info.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"node-info.schema":{"description":"GET request for core node information","type":"object","required":["peer_version","pox_consensus","burn_block_height","stable_pox_consensus","stable_burn_block_height","server_version","network_id","parent_network_id","stacks_tip_height","stacks_tip","stacks_tip_consensus_hash","genesis_chainstate_hash","tenure_height","is_fully_synced"],"properties":{"peer_version":{"type":"integer","description":"Identifies the version number for the networking communication. This\nshould not change while a node is running, and will only change if there's an\nupgrade.\n"},"pox_consensus":{"type":"string","description":"A hash used to identify the burnchain view for a node. It incorporates\nbitcoin chain information and PoX information. Nodes that disagree on this value\nwill appear to each other as forks. This value changes after every block.\n"},"burn_block_height":{"type":"integer","description":"Latest bitcoin chain height."},"stable_pox_consensus":{"type":"string","description":"Same as pox_consensus, but evaluated at stable_burn_block_height."},"stable_burn_block_height":{"type":"integer","description":"The bitcoin block height at which the last PoX anchor block was seen.\nLeftover from stacks 1.0, basically always burn_block_height - 1.\n"},"server_version":{"type":"string","description":"A version descriptor for the node."},"network_id":{"type":"integer","description":"Identifies the network (e.g., mainnet, testnet)."},"parent_network_id":{"type":"integer","description":"same as network_id, but for bitcoin"},"stacks_tip_height":{"type":"integer","description":"The latest Stacks chain height."},"stacks_tip":{"type":"string","description":"The best known block hash for the Stacks chain."},"stacks_tip_consensus_hash":{"type":"string","description":"The bitcoin consensus hash at the time that stacks_tip was mined."},"genesis_chainstate_hash":{"type":"string","description":"The SHA256 hash of the genesis chainstate."},"unanchored_tip":{"type":["string","null"],"description":"The latest microblock hash if any microblocks were processed. If no\nmicroblock has been processed for the current block, a 000.., hex array is\nreturned.\n"},"unanchored_seq":{"type":["integer","null"],"description":"The sequence number of the latest microblock if any microblocks were processed."},"tenure_height":{"type":"integer","description":"The latest Stacks tenure height."},"exit_at_block_height":{"type":["integer","null"],"description":"The block height at which a testnet network will be reset.\nNot applicable to mainnet.\n"},"is_fully_synced":{"type":"boolean","description":"Indicates whether the node has fully synchronized with the network."},"node_public_key":{"type":["string","null"],"description":"The node's public key."},"node_public_key_hash":{"type":["string","null"],"description":"The HASH160 of the node's public key."},"last_pox_anchor":{"type":["object","null"],"properties":{"anchor_block_hash":{"type":"string"},"anchor_block_txid":{"type":"string"}}},"stackerdbs":{"type":["array","null"],"items":{"type":"string"}}}}}}}
```

## The pox-info.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"pox-info.schema":{"description":"Get Proof of Transfer (PoX) information","type":"object","additionalProperties":false,"required":["contract_id","current_burnchain_block_height","first_burnchain_block_height","pox_activation_threshold_ustx","prepare_phase_block_length","reward_phase_block_length","reward_slots","total_liquid_supply_ustx","current_cycle","next_cycle","reward_cycle_length","contract_versions","epochs","current_epoch"],"properties":{"contract_id":{"type":"string","description":"The contract identifier for the PoX contract"},"first_burnchain_block_height":{"type":"integer","minimum":0,"description":"The first burn block evaluated in this Stacks chain"},"current_burnchain_block_height":{"type":"integer","minimum":0,"description":"The latest Bitcoin chain block height"},"current_epoch":{"type":"string","pattern":"^Epoch[0-9]+(_[0-9]+)?$","description":"The ID of the Stacks Epoch that the node is currently in."},"pox_activation_threshold_ustx":{"type":"integer","description":"The threshold of stacking participation that must be reached for PoX to activate in any cycle"},"rejection_fraction":{"type":["integer","null"],"description":"The fraction of liquid STX that must vote to reject PoX in order to prevent the next reward cycle from activating."},"reward_phase_block_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of the reward phase"},"prepare_phase_block_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of the prepare phase"},"reward_slots":{"type":"integer","minimum":0,"description":"The number of reward slots in a reward cycle"},"total_liquid_supply_ustx":{"type":"integer","minimum":0,"description":"The current total amount of liquid microstacks."},"reward_cycle_length":{"type":"integer","minimum":0,"description":"The length in burn blocks of a whole PoX cycle (reward phase and prepare phase)"},"current_cycle":{"type":"object","additionalProperties":false,"required":["id","min_threshold_ustx","stacked_ustx","is_pox_active"],"properties":{"id":{"type":"integer","minimum":0,"description":"The reward cycle number"},"min_threshold_ustx":{"type":"integer","minimum":0,"description":"The threshold amount for obtaining a slot in this reward cycle."},"stacked_ustx":{"type":"integer","minimum":0,"description":"The total amount of stacked microstacks in this reward cycle."},"is_pox_active":{"type":"boolean","description":"Whether or not PoX is active during this reward cycle."}}},"next_cycle":{"type":"object","additionalProperties":false,"required":["id","min_threshold_ustx","min_increment_ustx","stacked_ustx","prepare_phase_start_block_height","blocks_until_prepare_phase","reward_phase_start_block_height","blocks_until_reward_phase"],"properties":{"id":{"type":"integer","minimum":0,"description":"The reward cycle number"},"min_threshold_ustx":{"type":"integer","minimum":0,"description":"The threshold amount for obtaining a slot in this reward cycle."},"stacked_ustx":{"type":"integer","minimum":0,"description":"The total amount of stacked microstacks in this reward cycle."},"min_increment_ustx":{"type":"integer","minimum":0,"description":"The minimum amount that can be used to submit a `stack-stx` call."},"prepare_phase_start_block_height":{"type":"integer","minimum":0,"description":"The burn block height when the prepare phase for this cycle begins. Any eligible stacks must be stacked before this block."},"blocks_until_prepare_phase":{"type":"integer","description":"The number of burn blocks until the prepare phase for this cycle starts. If the prepare phase for this cycle already started, this value will be a negative number."},"reward_phase_start_block_height":{"type":"integer","minimum":0,"description":"The burn block height when the reward phase for this cycle begins. Any eligible stacks must be stacked before this block."},"blocks_until_reward_phase":{"type":"integer","minimum":0,"description":"The number of burn blocks until this reward phase starts."},"ustx_until_pox_rejection":{"type":["integer","null"],"minimum":0,"description":"The remaining amount of liquid STX that must vote to reject the next reward cycle to prevent the next reward cycle from activating."}}},"reward_cycle_id":{"type":"integer","minimum":0,"deprecated":true,"description":"The active reward cycle number"},"min_amount_ustx":{"type":"integer","minimum":0,"deprecated":true},"prepare_cycle_length":{"type":"integer","minimum":0,"deprecated":true},"rejection_votes_left_required":{"type":["integer","null"],"deprecated":true},"next_reward_cycle_in":{"type":"integer","minimum":0,"description":"The number of blocks until the next reward cycle.","deprecated":true},"contract_versions":{"type":"array","description":"Versions of each PoX","items":{"type":"object","additionalProperties":false,"required":["contract_id","activation_burnchain_block_height","first_reward_cycle_id"],"properties":{"contract_id":{"type":"string","description":"The contract identifier for the PoX contract"},"activation_burnchain_block_height":{"type":"integer","minimum":0,"description":"The burn block height at which this version of PoX is activated"},"first_reward_cycle_id":{"type":"integer","minimum":0,"description":"The first reward cycle number that uses this version of PoX"}}}},"epochs":{"type":"array","description":"Epochs","items":{"type":"object","required":["epoch_id","start_height","end_height","block_limit","network_epoch"],"properties":{"epoch_id":{"type":"string","pattern":"^Epoch[0-9]+(_[0-9]+)?$"},"start_height":{"type":"integer","minimum":0},"end_height":{"type":"integer","minimum":0},"block_limit":{"type":"object","required":["read_count","read_length","write_count","write_length","runtime"],"properties":{"read_count":{"type":"integer","minimum":0},"read_length":{"type":"integer","minimum":0},"write_count":{"type":"integer","minimum":0},"write_length":{"type":"integer","minimum":0},"runtime":{"type":"integer","minimum":0}}},"network_epoch":{"type":"integer","minimum":0}}}}}}}}}
```

## The is-trait-implemented.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"is-trait-implemented.schema":{"description":"GET request to get trait implementation information","type":"object","additionalProperties":false,"required":["is_implemented"],"properties":{"is_implemented":{"type":"boolean"}}}}}}
```

## The clarity-metadata.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"clarity-metadata.schema":{"description":"Response of get clarity metadata request","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Metadata value"}}}}}}
```

## The constant-value.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"constant-value.schema":{"description":"Response of get constant val request","type":"object","required":["data"],"properties":{"data":{"type":"string","description":"Hex-encoded 0x prefixed string of clarity value.","pattern":"^0x[0-9a-f]+$"}}}}}}
```

## The block-proposal.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"block-proposal.schema":{"description":"Get Response for Block Proposal","type":"object","additionalProperties":false,"required":["result","message"],"properties":{"result":{"type":"string","enum":["Error","Accepted"]},"message":{"type":"string","description":"A message describing the result or error message."}}}}}}
```

## The get-stacker-set.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"get-stacker-set.schema":{"type":"object","properties":{"stacker_set":{"type":"object","required":["rewarded_addresses","start_cycle_state"],"properties":{"rewarded_addresses":{"type":"array","description":"Reward addresses that will receive PoX rewards for the cycle.","items":{"type":"object","description":"PoX address object with serialization details (see SIP-007).","properties":{"Standard":{"type":"array","description":"Standard address representation.","items":{"oneOf":[{"type":"object","properties":{"bytes":{"type":"string","description":"Hex-encoded 20-byte address payload"},"version":{"type":"integer","description":"Address version byte"}}},{"type":"string","description":"Serialization method (e.g., \"SerializeP2PKH\")"}]}}},"additionalProperties":true}},"signers":{"type":"array","description":"Optional signer set for PoX-4 reward cycles.","items":{"type":"object","properties":{"signing_key":{"type":"string","description":"Hex-encoded compressed Secp256k1 public key (33 bytes)"},"weight":{"type":"integer","description":"Signer voting weight (number of slots)"},"stacked_amt":{"type":"integer","format":"int64","description":"Amount stacked by signer (in microSTX)"}}}},"start_cycle_state":{"type":"object","properties":{"missed_reward_slots":{"type":"array","description":"Principals that missed reward slots at cycle start.","items":{"type":"object"}}}},"pox_ustx_threshold":{"type":"integer","format":"int64","description":"Minimum STX amount required to qualify for stacking (optional)"}}}}}}}}
```

## The tenure-info.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"tenure-info.schema":{"type":"object","properties":{"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"tenure_start_block_id":{"type":"string","description":"Block ID where the tenure started","pattern":"^[0-9a-f]{64}$"},"parent_consensus_hash":{"type":"string","description":"Parent consensus hash","pattern":"^[0-9a-f]{40}$"},"parent_tenure_start_block_id":{"type":"string","description":"Parent tenure start block ID","pattern":"^[0-9a-f]{64}$"},"tip_block_id":{"type":"string","description":"Current tip block ID","pattern":"^[0-9a-f]{64}$"},"tip_height":{"type":"integer","minimum":0,"description":"Current tip height"},"reward_cycle":{"type":"integer","minimum":0,"description":"Current reward cycle"}}}}}}
```

## The tenure-blocks.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"tenure-blocks.schema":{"type":"object","properties":{"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"burn_block_height":{"type":"integer","description":"Height of the Bitcoin block","format":"uint64"},"burn_block_hash":{"type":"string","description":"Hash of the Bitcoin block","pattern":"^[0-9a-f]{64}$"},"stacks_blocks":{"type":"array","items":{"type":"object","properties":{"block_id":{"type":"string","description":"Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"block_hash":{"type":"string","description":"Hash of the block","pattern":"^[0-9a-f]{64}$"},"header_type":{"type":"string","description":"Type of block (currently \"epoch2\" or \"nakamoto\")"},"height":{"type":"integer","description":"Height of the block","format":"uint64"},"parent_block_id":{"type":"string","description":"Block ID (index block hash) of the parent","pattern":"^[0-9a-f]{64}$"}}}}}}}}}
```

## The Sortition object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"Sortition":{"type":"object","description":"Information about a burnchain sortition event","properties":{"burn_block_hash":{"type":"string","description":"The burnchain header hash of the block that triggered this event","pattern":"^0x[0-9a-f]{64}$"},"burn_block_height":{"type":"integer","description":"The burn height of the block that triggered this event","minimum":0},"burn_header_timestamp":{"type":"integer","description":"The burn block time of the sortition (Unix timestamp)","minimum":0},"sortition_id":{"type":"string","description":"This sortition ID of the block that triggered this event. This incorporates PoX forking information and the burn block hash to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{64}$"},"parent_sortition_id":{"type":"string","description":"The parent of this burn block's Sortition ID","pattern":"^0x[0-9a-f]{64}$"},"consensus_hash":{"type":"string","description":"The consensus hash of the block that triggered this event. This incorporates PoX forking information and burn op information to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{40}$"},"was_sortition":{"type":"boolean","description":"Boolean indicating whether or not there was a successful sortition (i.e. a winning block or miner was chosen). This will also be true if this sortition corresponds to a shadow block."},"miner_pk_hash160":{"type":["string","null"],"description":"If sortition occurred, and the miner's VRF key registration associated a nakamoto mining pubkey with their commit, this will contain the Hash160 of that mining key.","pattern":"^0x[0-9a-f]{40}$"},"stacks_parent_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the burn block corresponding to the winning block commit's parent block ptr. In 3.x, this is the consensus hash of the tenure that this new burn block's miner will be building off of.","pattern":"^0x[0-9a-f]{40}$"},"last_sortition_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the most recent sortition before this one.","pattern":"^0x[0-9a-f]{40}$"},"committed_block_hash":{"type":["string","null"],"description":"In Stacks 2.x, this is the winning block. In Stacks 3.x, this is the first block of the parent tenure.","pattern":"^0x[0-9a-f]{64}$"},"vrf_seed":{"type":["string","null"],"description":"This is the VRF seed generated by this sortition","pattern":"^0x[0-9a-f]{64}$"}},"required":["burn_block_hash","burn_block_height","burn_header_timestamp","sortition_id","parent_sortition_id","consensus_hash","was_sortition"]}}}}
```

## The sortitions.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"sortitions.schema":{"description":"Array of sortition information objects from the burnchain","type":"array","$defs":{"Sortition":{"type":"object","description":"Information about a burnchain sortition event","properties":{"burn_block_hash":{"type":"string","description":"The burnchain header hash of the block that triggered this event","pattern":"^0x[0-9a-f]{64}$"},"burn_block_height":{"type":"integer","description":"The burn height of the block that triggered this event","minimum":0},"burn_header_timestamp":{"type":"integer","description":"The burn block time of the sortition (Unix timestamp)","minimum":0},"sortition_id":{"type":"string","description":"This sortition ID of the block that triggered this event. This incorporates PoX forking information and the burn block hash to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{64}$"},"parent_sortition_id":{"type":"string","description":"The parent of this burn block's Sortition ID","pattern":"^0x[0-9a-f]{64}$"},"consensus_hash":{"type":"string","description":"The consensus hash of the block that triggered this event. This incorporates PoX forking information and burn op information to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{40}$"},"was_sortition":{"type":"boolean","description":"Boolean indicating whether or not there was a successful sortition (i.e. a winning block or miner was chosen). This will also be true if this sortition corresponds to a shadow block."},"miner_pk_hash160":{"type":["string","null"],"description":"If sortition occurred, and the miner's VRF key registration associated a nakamoto mining pubkey with their commit, this will contain the Hash160 of that mining key.","pattern":"^0x[0-9a-f]{40}$"},"stacks_parent_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the burn block corresponding to the winning block commit's parent block ptr. In 3.x, this is the consensus hash of the tenure that this new burn block's miner will be building off of.","pattern":"^0x[0-9a-f]{40}$"},"last_sortition_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the most recent sortition before this one.","pattern":"^0x[0-9a-f]{40}$"},"committed_block_hash":{"type":["string","null"],"description":"In Stacks 2.x, this is the winning block. In Stacks 3.x, this is the first block of the parent tenure.","pattern":"^0x[0-9a-f]{64}$"},"vrf_seed":{"type":["string","null"],"description":"This is the VRF seed generated by this sortition","pattern":"^0x[0-9a-f]{64}$"}},"required":["burn_block_hash","burn_block_height","burn_header_timestamp","sortition_id","parent_sortition_id","consensus_hash","was_sortition"]}},"items":{"type":"object","description":"Information about a burnchain sortition event","properties":{"burn_block_hash":{"type":"string","description":"The burnchain header hash of the block that triggered this event","pattern":"^0x[0-9a-f]{64}$"},"burn_block_height":{"type":"integer","description":"The burn height of the block that triggered this event","minimum":0},"burn_header_timestamp":{"type":"integer","description":"The burn block time of the sortition (Unix timestamp)","minimum":0},"sortition_id":{"type":"string","description":"This sortition ID of the block that triggered this event. This incorporates PoX forking information and the burn block hash to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{64}$"},"parent_sortition_id":{"type":"string","description":"The parent of this burn block's Sortition ID","pattern":"^0x[0-9a-f]{64}$"},"consensus_hash":{"type":"string","description":"The consensus hash of the block that triggered this event. This incorporates PoX forking information and burn op information to obtain an identifier that is unique across PoX forks and burnchain forks.","pattern":"^0x[0-9a-f]{40}$"},"was_sortition":{"type":"boolean","description":"Boolean indicating whether or not there was a successful sortition (i.e. a winning block or miner was chosen). This will also be true if this sortition corresponds to a shadow block."},"miner_pk_hash160":{"type":["string","null"],"description":"If sortition occurred, and the miner's VRF key registration associated a nakamoto mining pubkey with their commit, this will contain the Hash160 of that mining key.","pattern":"^0x[0-9a-f]{40}$"},"stacks_parent_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the burn block corresponding to the winning block commit's parent block ptr. In 3.x, this is the consensus hash of the tenure that this new burn block's miner will be building off of.","pattern":"^0x[0-9a-f]{40}$"},"last_sortition_ch":{"type":["string","null"],"description":"If sortition occurred, this will be the consensus hash of the most recent sortition before this one.","pattern":"^0x[0-9a-f]{40}$"},"committed_block_hash":{"type":["string","null"],"description":"In Stacks 2.x, this is the winning block. In Stacks 3.x, this is the first block of the parent tenure.","pattern":"^0x[0-9a-f]{64}$"},"vrf_seed":{"type":["string","null"],"description":"This is the VRF seed generated by this sortition","pattern":"^0x[0-9a-f]{64}$"}},"required":["burn_block_hash","burn_block_height","burn_header_timestamp","sortition_id","parent_sortition_id","consensus_hash","was_sortition"]}}}}}
```

## The signer-blocks-signed.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"signer-blocks-signed.schema":{"type":"object","properties":{"blocks_signed":{"type":"integer","description":"Number of blocks signed by this signer"}},"required":["blocks_signed"]}}}}
```

## The get-transaction.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"get-transaction.schema":{"type":"object","required":["index_block_hash","tx","result"],"properties":{"index_block_hash":{"type":"string","description":"Block hash where the transaction was included","pattern":"^[0-9a-f]{64}$"},"tx":{"type":"string","description":"Hex-encoded transaction"},"result":{"type":"string","description":"Transaction execution result (Clarity value)"},"block_height":{"type":["integer","null"],"description":"Height of the block where the transaction was included"},"is_canonical":{"type":"boolean","description":"Whether the block where this transaction was included is in the canonical chain tip"}}}}}}
```

## The get-health.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"get-health.schema":{"type":"object","required":["difference_from_max_peer","max_stacks_height_of_neighbors","node_stacks_tip_height"],"properties":{"difference_from_max_peer":{"type":"integer","minimum":0,"description":"The difference in Stacks height between this node and its most advanced peer"},"max_stacks_height_of_neighbors":{"type":"integer","minimum":0,"description":"The maximum Stacks height observed among the node's connected peers"},"node_stacks_tip_height":{"type":"integer","minimum":0,"description":"The current Stacks tip height of this node"},"max_stacks_neighbor_address":{"type":["string","null"],"description":"The address of the most advanced peer"}},"description":"Health information about the node's synchronization status"}}}}
```

## The attachment-data.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"attachment-data.schema":{"type":"object","properties":{"attachment":{"type":"string","format":"byte","description":"The attachment data, hex-encoded."}},"required":["attachment"]}}}}
```

## The attachment-inventory.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"attachment-inventory.schema":{"type":"object","properties":{"block_id":{"type":"string","description":"Index block hash"},"pages":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"Page index"},"inventory":{"type":"array","description":"8-byte bitfield for the page (array of integers 0-255)","items":{"type":"integer","minimum":0,"maximum":255}}}}}}}}}}
```

## The stackerdb-metadata.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"stackerdb-metadata.schema":{"type":"array","items":{"type":"object","properties":{"slot_id":{"type":"integer","description":"Slot identifier (unique for each DB instance)"},"slot_version":{"type":"integer","description":"Slot version (a lamport clock)"},"data_hash":{"type":"string","description":"Data hash (hex, no 0x prefix)"},"signature":{"type":"string","description":"signature over the above (hex, no 0x prefix)"}}}}}}}
```

## The stackerdb-chunk-data.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"stackerdb-chunk-data.schema":{"type":"object","required":["slot_id","slot_version","sig","data"],"properties":{"slot_id":{"type":"integer","minimum":0,"maximum":4294967295,"description":"Slot identifier (u32 range)"},"slot_version":{"type":"integer","minimum":0,"maximum":4294967295,"description":"Slot version (lamport clock, u32 range)"},"sig":{"type":"string","description":"Hex-encoded signature from the stacker","pattern":"^[0-9a-f]{130}$"},"data":{"type":"string","description":"Hex-encoded chunk data (must be even length)","pattern":"^([0-9a-f]{2})*$"}}}}}}
```

## The stackerdb-chunk-ack-data.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"stackerdb-chunk-ack-data.schema":{"type":"object","required":["accepted"],"properties":{"accepted":{"type":"boolean","description":"Whether the chunk was accepted"},"reason":{"type":["string","null"],"description":"JSON-encoded reason for rejection (only present when accepted is false)"},"metadata":{"type":["object","null"],"description":"Slot metadata (present on successful acceptance)","properties":{"slot_id":{"type":"integer","minimum":0,"description":"Slot identifier"},"slot_version":{"type":"integer","minimum":0,"description":"Slot version"},"data_hash":{"type":"string","description":"Hex-encoded SHA512/256 hash of the data","pattern":"^[0-9a-f]{64}$"},"signature":{"type":"string","description":"Hex-encoded signature","pattern":"^[0-9a-f]{130}$"}}},"code":{"type":["integer","null"],"description":"Error code (only present when accepted is false)"}}}}}}
```

## The stackerdb-replicas.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"stackerdb-replicas.schema":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"},"public_key_hash":{"type":"string","description":"20-byte public key hash"}}}}}}}
```

## The block-headers.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"block-headers.schema":{"type":"array","description":"JSON array returned by /v2/headers/{quantity}. Each entry is an ExtendedStacksHeader.","items":{"type":"object","required":["consensus_hash","header","parent_block_id"],"properties":{"consensus_hash":{"type":"string","description":"20-byte burn-chain consensus hash (hex, no 0x prefix)","pattern":"^[0-9a-f]{40}$"},"header":{"type":"string","description":"Hex-encoded SIP-003 serialization of the Stacks block header","pattern":"^[0-9a-f]+$"},"parent_block_id":{"type":"string","description":"32-byte index-block ID of the parent Stacks block (hex)","pattern":"^[0-9a-f]{64}$"}},"additionalProperties":false}}}}}
```

## The RPCNeighbor object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"RPCNeighbor":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}}}}
```

## The network-peers.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"network-peers.schema":{"description":"Information about the node's neighbor peers in the network.","type":"object","required":["bootstrap","sample","inbound","outbound"],"properties":{"bootstrap":{"type":"array","description":"List of bootstrap peers known to the node.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"sample":{"type":"array","description":"List of a sample of gossiped peers.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"inbound":{"type":"array","description":"List of inbound peer connections.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}},"outbound":{"type":"array","description":"List of outbound peer connections.","items":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}}},"$defs":{"RPCNeighbor":{"type":"object","description":"A peer in the network","required":["network_id","peer_version","ip","port","public_key_hash","authenticated"],"properties":{"network_id":{"type":"integer","description":"The network ID of the peer."},"peer_version":{"type":"integer","description":"The peer version."},"ip":{"type":"string","description":"The IP address of the peer.","format":"ip"},"port":{"type":"integer","description":"The port number of the peer."},"public_key_hash":{"type":"string","description":"The HASH160 of the peer's public key.","pattern":"^[0-9a-f]{40}$"},"authenticated":{"type":"boolean","description":"Whether the peer connection is authenticated."},"stackerdbs":{"type":["array","null"],"description":"List of StackerDBs the peer supports, represented as qualified contract identifiers.","items":{"type":"string"}},"age":{"type":["integer","null"],"format":"int64","description":"The age of the peer connection in seconds."}}}}}}}}
```

## The tenure-fork-info.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"tenure-fork-info.schema":{"type":"object","description":"Information about a tenure used for fork-detection.","required":["burn_block_hash","burn_block_height","sortition_id","parent_sortition_id","consensus_hash","was_sortition"],"properties":{"burn_block_hash":{"type":"string","description":"0x-prefixed 32-byte Bitcoin block hash that triggered the tenure event","pattern":"^0x[0-9a-fA-F]{64}$"},"burn_block_height":{"type":"integer","format":"uint64"},"sortition_id":{"type":"string","description":"0x-prefixed 32-byte sortition ID (unique across PoX and Bitcoin forks)","pattern":"^0x[0-9a-fA-F]{64}$"},"parent_sortition_id":{"type":"string","description":"0x-prefixed sortition ID of the parent burn block","pattern":"^0x[0-9a-fA-F]{64}$"},"consensus_hash":{"type":"string","description":"0x-prefixed 20-byte consensus hash identifying the tenure","pattern":"^0x[0-9a-fA-F]{40}$"},"was_sortition":{"type":"boolean","description":"Whether a winning sortition occurred at this burn block"},"first_block_mined":{"type":["string","null"],"description":"0x-prefixed index-block ID of the first Stacks block in the tenure (if any)","pattern":"^0x[0-9a-fA-F]{64}$"},"nakamoto_blocks":{"type":["string","null"],"description":"0x-prefixed SIP-003 binary encoding of all Nakamoto blocks mined in this tenure"}},"additionalProperties":false}}}}
```

## The tenure-tip.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"tenure-tip.schema":{"description":"JSON encoding of `StacksBlockHeaderTypes` returned by /v3/tenures/tip.\nExactly one variant property will be present: either `Epoch2` or `Nakamoto`.\n","oneOf":[{"title":"Epoch2HeaderVariant","type":"object","required":["Epoch2"],"additionalProperties":false,"properties":{"Epoch2":{"type":"object","description":"Header structure for a Stacks 2.x anchored block.","required":["version","total_work","proof","parent_block","parent_microblock","parent_microblock_sequence","tx_merkle_root","state_index_root","microblock_pubkey_hash"],"properties":{"version":{"type":"integer","minimum":0},"total_work":{"type":"object","required":["burn","work"],"properties":{"burn":{"type":"integer","format":"uint64"},"work":{"type":"integer","format":"uint64"}}},"proof":{"type":"string","description":"Hex-encoded VRF proof"},"parent_block":{"type":"string","description":"32-byte hex of the parent block header hash"},"parent_microblock":{"type":"string","description":"32-byte hex of the parent microblock header hash"},"parent_microblock_sequence":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of the transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"microblock_pubkey_hash":{"type":"string","description":"Hash160 (20-byte hex) of the microblock public key"}},"additionalProperties":false}}},{"title":"NakamotoHeaderVariant","type":"object","required":["Nakamoto"],"additionalProperties":false,"properties":{"Nakamoto":{"type":"object","description":"Header structure for a Nakamoto-epoch Stacks block.","required":["version","chain_length","burn_spent","consensus_hash","parent_block_id","tx_merkle_root","state_index_root","timestamp","miner_signature","signer_signature","pox_treatment"],"properties":{"version":{"type":"integer","minimum":0},"chain_length":{"type":"integer","format":"uint64","description":"Number of ancestor blocks including Stacks 2.x blocks"},"burn_spent":{"type":"integer","format":"uint64","description":"Total BTC spent by the sortition that elected this block"},"consensus_hash":{"type":"string","description":"20-byte hex consensus hash that identifies the tenure"},"parent_block_id":{"type":"string","description":"32-byte hex identifier of the parent block (hash+consensus)"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of all transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"timestamp":{"type":"integer","description":"Unix timestamp (seconds)"},"miner_signature":{"type":"string","description":"Recoverable ECDSA signature from the miner"},"signer_signature":{"type":"array","description":"Signer-set signatures over the block header","items":{"type":"string"}},"pox_treatment":{"type":"string","description":"Bit-vector, hex-encoded, indicating PoX reward treatment"}},"additionalProperties":false}}}]}}}}
```

## The tenure-tip-metadata.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"tenure-tip-metadata.schema":{"description":"JSON encoding of `BlockHeaderWithMetadata` returned by /v3/tenures/tip_metadata.\nExactly one variant property will be present: either `Epoch2` or `Nakamoto`.\n","type":"object","required":["anchored_header"],"properties":{"burn_view":{"type":"string","description":"Hex-encoded bitcoin block hash"},"anchored_header":{"oneOf":[{"title":"Epoch2HeaderVariant","type":"object","required":["Epoch2"],"additionalProperties":false,"properties":{"Epoch2":{"type":"object","description":"Header structure for a Stacks 2.x anchored block.","required":["version","total_work","proof","parent_block","parent_microblock","parent_microblock_sequence","tx_merkle_root","state_index_root","microblock_pubkey_hash"],"properties":{"version":{"type":"integer","minimum":0},"total_work":{"type":"object","required":["burn","work"],"properties":{"burn":{"type":"integer","format":"uint64"},"work":{"type":"integer","format":"uint64"}}},"proof":{"type":"string","description":"Hex-encoded VRF proof"},"parent_block":{"type":"string","description":"32-byte hex of the parent block header hash"},"parent_microblock":{"type":"string","description":"32-byte hex of the parent microblock header hash"},"parent_microblock_sequence":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of the transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"microblock_pubkey_hash":{"type":"string","description":"Hash160 (20-byte hex) of the microblock public key"}},"additionalProperties":false}}},{"title":"NakamotoHeaderVariant","type":"object","required":["Nakamoto"],"additionalProperties":false,"properties":{"Nakamoto":{"type":"object","description":"Header structure for a Nakamoto-epoch Stacks block.","required":["version","chain_length","burn_spent","consensus_hash","parent_block_id","tx_merkle_root","state_index_root","timestamp","miner_signature","signer_signature","pox_treatment"],"properties":{"version":{"type":"integer","minimum":0},"chain_length":{"type":"integer","format":"uint64","description":"Number of ancestor blocks including Stacks 2.x blocks"},"burn_spent":{"type":"integer","format":"uint64","description":"Total BTC spent by the sortition that elected this block"},"consensus_hash":{"type":"string","description":"20-byte hex consensus hash that identifies the tenure"},"parent_block_id":{"type":"string","description":"32-byte hex identifier of the parent block (hash+consensus)"},"tx_merkle_root":{"type":"string","description":"Hex-encoded merkle root of all transactions in the block"},"state_index_root":{"type":"string","description":"Hex-encoded MARF trie root after this block"},"timestamp":{"type":"integer","description":"Unix timestamp (seconds)"},"miner_signature":{"type":"string","description":"Recoverable ECDSA signature from the miner"},"signer_signature":{"type":"array","description":"Signer-set signatures over the block header","items":{"type":"string"}},"pox_treatment":{"type":"string","description":"Bit-vector, hex-encoded, indicating PoX reward treatment"}},"additionalProperties":false}}}]}}}}}}
```

## The unconfirmed-transaction.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"unconfirmed-transaction.schema":{"type":"object","properties":{"tx":{"type":"string","description":"Hex-encoded transaction data"},"status":{"oneOf":[{"type":"object","properties":{"Microblock":{"type":"object","properties":{"block_hash":{"type":"string","description":"Block hash containing the microblock"},"seq":{"type":"integer","description":"Microblock sequence number"}}}}},{"type":"string","enum":["Mempool"]}]}}}}}}
```

## The block-upload-response.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"block-upload-response.schema":{"type":"object","properties":{"stacks_block_id":{"type":"string","description":"The ID of the uploaded block"},"accepted":{"type":"boolean","description":"Whether the block was accepted"}}}}}}
```

## The block-replay.schema object

```json
{"openapi":"3.1.0","info":{"title":"Stacks 3.0+ RPC API","version":"1.0.0"},"components":{"schemas":{"block-replay.schema":{"type":"object","properties":{"block_hash":{"type":"string","description":"Hash of the block","pattern":"^[0-9a-f]{64}$"},"block_id":{"type":"string","description":"Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"block_height":{"type":"integer","description":"Height of the Stacks block","format":"uint64"},"consensus_hash":{"type":"string","description":"Consensus hash of the tenure","pattern":"^[0-9a-f]{40}$"},"fees":{"type":"integer","description":"total fees for the block"},"miner_signature":{"type":"string","description":"Uncompressed signature of the miner","pattern":"^[0-9a-f]{130}$"},"parent_block_id":{"type":"string","description":"Parent Block ID (index block hash)","pattern":"^[0-9a-f]{64}$"},"signer_signature":{"type":"array","items":{"type":"string","description":"Uncompressed signature of the signer","pattern":"^[0-9a-f]{130}$"}},"state_index_root":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"block state index root computed from the MARF (got from the original block)"},"timestamp":{"type":"integer"},"tx_merkle_root":{"type":"string","description":"merkle_root of the included transactions"},"valid_merkle_root":{"type":"boolean","description":"does the merkle_root matches the chain block and the simulated one?"},"transactions":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","description":"JSON representation of the transaction payload"},"events":{"type":"array","items":{"type":"object","description":"JSON representation of the transaction events"}},"execution_cost":{"type":"object","description":"costs accounting for the transaction"},"hex":{"type":"string","description":"hexadecimal representation of the transaction body"},"result":{"type":"object","description":"Clarity value representing the transaction result"},"result_hex":{"type":"string","description":"The transaction's result, encoded as a Clarity hex string"},"post_condition_aborted":{"type":"boolean","description":"Whether the transaction was aborted by a post-condition"},"stx_burned":{"type":"integer","description":"number of burned stx"},"tx_index":{"type":"integer","description":"index of the transaction in the array of transactions"},"txid":{"type":"string","description":"transaction id"},"vm_error":{"type":["string","null"],"description":"optional vm error (for runtime failures)"}}}}}}}}}
```
