{
  "openapi": "3.1.0",
  "info": {
    "title": "Ordinals REST API",
    "description": "Quicknode Ordinals REST API reference",
    "version": "1.0.0"
  },
  "paths": {
    "/address/{address}": {
      "get": {
        "operationId": "get_address_by_address",
        "summary": "Returns balances and transactions of an address.",
        "tags": [
          "address"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-address"
        },
        "description": "Returns balances and transactions of an address. Transactions are sorted by block height, newest first.",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "A Bitcoin address to query."
            },
            "required": true,
            "description": "A Bitcoin address to query."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The page number to retrieve for paginated results."
            },
            "description": "The page number to retrieve for paginated results."
          },
          {
            "name": "size",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The number of transactions per page."
            },
            "description": "The number of transactions per page."
          },
          {
            "name": "fromHeight",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Filter transactions from this block height (inclusive)."
            },
            "description": "Filter transactions from this block height (inclusive)."
          },
          {
            "name": "details",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Level of detail for returned transactions. Must be one of: basic, txids, or txs."
            },
            "description": "Level of detail for returned transactions. Must be one of: basic, txids, or txs."
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Filter transactions by token. Provide a token's contract address, or `0` to return only transactions with no token transfers."
            },
            "description": "Filter transactions by token. Provide a token's contract address, or `0` to return only transactions with no token transfers."
          },
          {
            "name": "contract",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Limit returned token balances and transactions to the specified token contract address."
            },
            "description": "Limit returned token balances and transactions to the specified token contract address."
          },
          {
            "name": "protocols",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Comma-separated list of token protocols to include (for example `erc20`)."
            },
            "description": "Comma-separated list of token protocols to include (for example `erc20`)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "page": {
                      "type": "integer",
                      "description": "Current page number"
                    },
                    "totalPages": {
                      "type": "integer",
                      "description": "Total number of pages"
                    },
                    "itemsOnPage": {
                      "type": "integer",
                      "description": "Number of items on each page"
                    },
                    "address": {
                      "type": "string",
                      "description": "The queried address"
                    },
                    "balance": {
                      "type": "string",
                      "description": "Current confirmed balance in satoshis"
                    },
                    "totalReceived": {
                      "type": "string",
                      "description": "Total amount received in satoshis"
                    },
                    "totalSent": {
                      "type": "string",
                      "description": "Total amount sent in satoshis"
                    },
                    "unconfirmedBalance": {
                      "type": "string",
                      "description": "Unconfirmed balance in satoshis"
                    },
                    "unconfirmedTxs": {
                      "type": "integer",
                      "description": "Number of unconfirmed transactions"
                    },
                    "txs": {
                      "type": "integer",
                      "description": "Total number of transactions"
                    },
                    "txids": {
                      "type": "array",
                      "items": {},
                      "description": "List of transaction IDs associated with the address"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/balancehistory/{xpub_or_address}": {
      "get": {
        "operationId": "get_balancehistory_by_xpub_or_address",
        "summary": "Returns the balance history for the specified address or XPUB.",
        "tags": [
          "balancehistory"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-balancehistory"
        },
        "description": "Returns the balance history for the specified address or XPUB. The response is an array of time-interval records showing received, sent, and self-sent amounts.",
        "parameters": [
          {
            "name": "xpub_or_address",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "A Bitcoin address or XPUB to query."
            },
            "required": true,
            "description": "A Bitcoin address or XPUB to query."
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The starting Unix timestamp (in seconds) for the time range."
            },
            "description": "The starting Unix timestamp (in seconds) for the time range."
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The ending Unix timestamp (in seconds) for the time range."
            },
            "description": "The ending Unix timestamp (in seconds) for the time range."
          },
          {
            "name": "fiatcurrency",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Fiat currency code for exchange rate conversion (e.g., usd, eur)."
            },
            "description": "Fiat currency code for exchange rate conversion (e.g., usd, eur)."
          },
          {
            "name": "groupBy",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The time interval in seconds for grouping balance data (e.g., 3600 for hourly)."
            },
            "description": "The time interval in seconds for grouping balance data (e.g., 3600 for hourly)."
          },
          {
            "name": "gap",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
            },
            "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "time": {
                      "type": "integer",
                      "description": "Unix timestamp for the time interval"
                    },
                    "txs": {
                      "type": "integer",
                      "description": "Number of transactions in the interval"
                    },
                    "received": {
                      "type": "string",
                      "description": "Total amount received in satoshis during the interval"
                    },
                    "sent": {
                      "type": "string",
                      "description": "Total amount sent in satoshis during the interval"
                    },
                    "sentToSelf": {
                      "type": "string",
                      "description": "Amount sent to self in satoshis during the interval"
                    },
                    "rates": {
                      "type": "object",
                      "properties": {
                        "{currency}": {
                          "type": "integer",
                          "description": "Exchange rate in the requested fiat currency"
                        }
                      },
                      "description": "Exchange rates at the time of the interval"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/block/{block}": {
      "get": {
        "operationId": "get_block_by_block",
        "summary": "Returns detailed block data including transaction objects for the specified block hash.",
        "tags": [
          "block"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-block"
        },
        "parameters": [
          {
            "name": "block",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The hash of the block to retrieve."
            },
            "required": true,
            "description": "The hash of the block to retrieve."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated transaction results within the block."
            },
            "description": "The page number for paginated transaction results within the block."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "page": {
                      "type": "integer",
                      "description": "Current page number"
                    },
                    "totalPages": {
                      "type": "integer",
                      "description": "Total number of pages"
                    },
                    "itemsOnPage": {
                      "type": "integer",
                      "description": "Number of items on each page"
                    },
                    "hash": {
                      "type": "string",
                      "description": "Block hash"
                    },
                    "previousBlockHash": {
                      "type": "string",
                      "description": "Hash of the previous block"
                    },
                    "nextBlockHash": {
                      "type": "string",
                      "description": "Hash of the next block"
                    },
                    "height": {
                      "type": "integer",
                      "description": "Block height"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "size": {
                      "type": "integer",
                      "description": "Block size in bytes"
                    },
                    "time": {
                      "type": "integer",
                      "description": "Unix timestamp of when the block was mined"
                    },
                    "version": {
                      "type": "integer",
                      "description": "Block version"
                    },
                    "merkleRoot": {
                      "type": "string",
                      "description": "Merkle root of the block"
                    },
                    "nonce": {
                      "type": "string",
                      "description": "Block nonce"
                    },
                    "bits": {
                      "type": "string",
                      "description": "Difficulty target in compact format"
                    },
                    "difficulty": {
                      "type": "string",
                      "description": "Block difficulty"
                    },
                    "txCount": {
                      "type": "integer",
                      "description": "Total number of transactions in the block"
                    },
                    "txs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "txid": {
                            "type": "string",
                            "description": "Transaction ID"
                          },
                          "vin": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "n": {
                                  "type": "integer",
                                  "description": "Input index"
                                },
                                "isAddress": {
                                  "type": "boolean",
                                  "description": "Whether the input is from an address"
                                },
                                "value": {
                                  "type": "string",
                                  "description": "Input value in satoshis"
                                }
                              }
                            },
                            "description": "Array of transaction inputs"
                          },
                          "vout": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "value": {
                                  "type": "string",
                                  "description": "Output value in satoshis"
                                },
                                "n": {
                                  "type": "integer",
                                  "description": "Output index"
                                },
                                "spent": {
                                  "type": "boolean",
                                  "description": "Whether the output has been spent"
                                },
                                "addresses": {
                                  "type": "array",
                                  "items": {},
                                  "description": "Output addresses"
                                },
                                "isAddress": {
                                  "type": "boolean",
                                  "description": "Whether the output is to an address"
                                }
                              }
                            },
                            "description": "Array of transaction outputs"
                          },
                          "blockHash": {
                            "type": "string",
                            "description": "Block hash containing this transaction"
                          },
                          "blockHeight": {
                            "type": "integer",
                            "description": "Block height"
                          },
                          "confirmations": {
                            "type": "integer",
                            "description": "Number of confirmations"
                          },
                          "blockTime": {
                            "type": "integer",
                            "description": "Block timestamp"
                          },
                          "value": {
                            "type": "string",
                            "description": "Total output value in satoshis"
                          },
                          "valueIn": {
                            "type": "string",
                            "description": "Total input value in satoshis"
                          },
                          "fees": {
                            "type": "string",
                            "description": "Transaction fee in satoshis"
                          }
                        }
                      },
                      "description": "Array of transactions in the block"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/block-index/{block_height}": {
      "get": {
        "operationId": "get_block_index_by_block_height",
        "summary": "Returns the block hash for the specified block height.",
        "tags": [
          "block-index"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-block-index"
        },
        "parameters": [
          {
            "name": "block_height",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The height of the block to look up."
            },
            "required": true,
            "description": "The height of the block to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "blockHash": {
                      "type": "object",
                      "properties": {
                        "blockHash": {
                          "type": "string",
                          "description": "The hash of the block at the specified height"
                        }
                      },
                      "description": "Object containing the block hash for the specified height"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/estimatefee/{blocks}": {
      "get": {
        "operationId": "get_estimatefee_by_blocks",
        "summary": "Returns the estimated transaction fee for a target confirmation window.",
        "tags": [
          "estimatefee"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-estimatefee"
        },
        "description": "Returns the estimated transaction fee for a target confirmation window. On UTXO chains this is a fee rate per kilobyte; on EVM chains it is the suggested gas price.",
        "parameters": [
          {
            "name": "blocks",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The confirmation target: the number of blocks within which the transaction should confirm."
            },
            "required": true,
            "description": "The confirmation target: the number of blocks within which the transaction should confirm."
          },
          {
            "name": "conservative",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When true, returns a more conservative (higher) estimate that is less sensitive to short-term mempool changes. Defaults to true."
            },
            "description": "When true, returns a more conservative (higher) estimate that is less sensitive to short-term mempool changes. Defaults to true."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "result": {
                      "type": "string",
                      "description": "The estimated fee. On UTXO chains this is a fee rate per kilobyte (in the main unit, e.g. BTC/kB); on EVM chains it is the suggested gas price (in the main unit, e.g. ETH)."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/feestats/{block_id}": {
      "get": {
        "operationId": "get_feestats_by_block_id",
        "summary": "Returns fee statistics for a block, including transaction count, total fees, average fee per kilobyte, and the fee-per-k",
        "tags": [
          "feestats"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-feestats"
        },
        "description": "Returns fee statistics for a block, including transaction count, total fees, average fee per kilobyte, and the fee-per-kilobyte distribution by decile.",
        "parameters": [
          {
            "name": "block_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The block height or block hash to query."
            },
            "required": true,
            "description": "The block height or block hash to query."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txCount": {
                      "type": "integer",
                      "description": "Number of transactions in the block."
                    },
                    "totalFeesSat": {
                      "type": "string",
                      "description": "Total fees paid in the block, in satoshis."
                    },
                    "averageFeePerKb": {
                      "type": "integer",
                      "description": "Average fee per kilobyte across the block, in satoshis."
                    },
                    "decilesFeePerKb": {
                      "type": "array",
                      "items": {},
                      "description": "Fee-per-kilobyte distribution split into deciles (11 values, lowest to highest), in satoshis."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/multi-tickers": {
      "get": {
        "operationId": "get_multi_tickers",
        "summary": "Returns exchange rates (fiat and crypto) for one or more timestamps in a single request.",
        "tags": [
          "multi-tickers"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-multi-tickers"
        },
        "parameters": [
          {
            "name": "timestamp",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "One or more Unix timestamps (in seconds), comma-separated, for which to return rates."
            },
            "required": true,
            "description": "One or more Unix timestamps (in seconds), comma-separated, for which to return rates."
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Return only the rate for this currency code (for example `usd`). When omitted, all available rates are returned."
            },
            "description": "Return only the rate for this currency code (for example `usd`). When omitted, all available rates are returned."
          },
          {
            "name": "token",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Return the rate for the specified token contract address instead of the base coin."
            },
            "description": "Return the rate for the specified token contract address instead of the base coin."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ts": {
                      "type": "integer",
                      "description": "Unix timestamp of the ticker entry. The result is an array of these objects, one per requested timestamp."
                    },
                    "rates": {
                      "type": "object",
                      "description": "Map of currency/token code to its exchange rate at that timestamp."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rawblock/{block_id}": {
      "get": {
        "operationId": "get_rawblock_by_block_id",
        "summary": "Returns the raw, hex-encoded serialized data for a block, specified by height or hash.",
        "tags": [
          "rawblock"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-rawblock"
        },
        "parameters": [
          {
            "name": "block_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The block height or block hash to query."
            },
            "required": true,
            "description": "The block height or block hash to query."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hex": {
                      "type": "string",
                      "description": "The raw, hex-encoded serialized block."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sendtx": {
      "get": {
        "operationId": "get_sendtx",
        "summary": "Broadcasts a signed raw transaction to the Bitcoin network and returns the resulting transaction hash.",
        "tags": [
          "sendtx"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-sendtx"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hex": {
                    "type": "string",
                    "description": "The signed raw transaction in hex-encoded format."
                  }
                },
                "required": [
                  "hex"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "result": {
                      "type": "string",
                      "description": "Transaction ID of the broadcasted transaction"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tickers": {
      "get": {
        "operationId": "get_tickers",
        "summary": "Returns currency exchange rates for the specified date and currency.",
        "tags": [
          "tickers"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-tickers"
        },
        "description": "Returns currency exchange rates for the specified date and currency. If a rate is unavailable for the requested timestamp, the closest available rate is returned.",
        "parameters": [
          {
            "name": "timestamp",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Unix timestamp (in seconds) for the date to query rates. If not provided, returns the latest available rates."
            },
            "description": "Unix timestamp (in seconds) for the date to query rates. If not provided, returns the latest available rates."
          },
          {
            "name": "block",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Return fiat rates as of the specified block height."
            },
            "description": "Return fiat rates as of the specified block height."
          },
          {
            "name": "token",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Return the rate for the specified token contract address instead of the base coin."
            },
            "description": "Return the rate for the specified token contract address instead of the base coin."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ts": {
                      "type": "integer",
                      "description": "Unix timestamp of the rates"
                    },
                    "rates": {
                      "type": "object",
                      "properties": {
                        "{currency}": {
                          "type": "integer",
                          "description": "Exchange rate in the given fiat currency. All available currencies are listed (e.g., usd, eur, gbp, jpy, etc.)"
                        }
                      },
                      "description": "Exchange rates for all available fiat currencies"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tickers-list": {
      "get": {
        "operationId": "get_tickers_list",
        "summary": "Returns a list of available fiat currency rate tickers for the specified date, along with the data timestamp.",
        "tags": [
          "tickers-list"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-tickers-list"
        },
        "parameters": [
          {
            "name": "timestamp",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Unix timestamp (in seconds) for the date to query available tickers. If not provided, returns the latest available tickers."
            },
            "description": "Unix timestamp (in seconds) for the date to query available tickers. If not provided, returns the latest available tickers."
          },
          {
            "name": "token",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Return the rate for the specified token contract address instead of the base coin."
            },
            "description": "Return the rate for the specified token contract address instead of the base coin."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ts": {
                      "type": "integer",
                      "description": "Unix timestamp of the available rates"
                    },
                    "available_currencies": {
                      "type": "array",
                      "items": {},
                      "description": "List of available fiat currency codes"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tx/{txid}": {
      "get": {
        "operationId": "get_tx_by_txid",
        "summary": "Returns the transaction object for the specified transaction hash, including inputs, outputs, and block information.",
        "tags": [
          "tx"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-tx"
        },
        "parameters": [
          {
            "name": "txid",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The transaction hash to look up."
            },
            "required": true,
            "description": "The transaction hash to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txid": {
                      "type": "string",
                      "description": "Transaction ID"
                    },
                    "version": {
                      "type": "integer",
                      "description": "Transaction version"
                    },
                    "vin": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "n": {
                            "type": "integer",
                            "description": "Input index"
                          },
                          "sequence": {
                            "type": "integer",
                            "description": "Sequence number"
                          },
                          "isAddress": {
                            "type": "boolean",
                            "description": "Whether the input is from an address"
                          },
                          "coinbase": {
                            "type": "string",
                            "description": "Coinbase data (for coinbase transactions)"
                          }
                        }
                      },
                      "description": "Array of transaction inputs"
                    },
                    "vout": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "description": "Output value in satoshis"
                          },
                          "n": {
                            "type": "integer",
                            "description": "Output index"
                          },
                          "spent": {
                            "type": "boolean",
                            "description": "Whether the output has been spent"
                          },
                          "hex": {
                            "type": "string",
                            "description": "Output script hex"
                          },
                          "addresses": {
                            "type": "array",
                            "items": {},
                            "description": "Output addresses"
                          },
                          "isAddress": {
                            "type": "boolean",
                            "description": "Whether the output is to an address"
                          }
                        }
                      },
                      "description": "Array of transaction outputs"
                    },
                    "blockHash": {
                      "type": "string",
                      "description": "Block hash containing this transaction"
                    },
                    "blockHeight": {
                      "type": "integer",
                      "description": "Block height of the transaction"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "blockTime": {
                      "type": "integer",
                      "description": "Unix timestamp of the block"
                    },
                    "size": {
                      "type": "integer",
                      "description": "Transaction size in bytes"
                    },
                    "vsize": {
                      "type": "integer",
                      "description": "Virtual transaction size"
                    },
                    "value": {
                      "type": "string",
                      "description": "Total output value in satoshis"
                    },
                    "valueIn": {
                      "type": "string",
                      "description": "Total input value in satoshis"
                    },
                    "fees": {
                      "type": "string",
                      "description": "Transaction fee in satoshis"
                    },
                    "hex": {
                      "type": "string",
                      "description": "Raw transaction hex"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tx-specific/{txid_specific}": {
      "get": {
        "operationId": "get_tx_specific_by_txid_specific",
        "summary": "Returns the raw transaction data in the exact format provided by the Bitcoin backend, including full script details.",
        "tags": [
          "tx-specific"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-tx-specific"
        },
        "parameters": [
          {
            "name": "txid_specific",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The transaction hash to look up."
            },
            "required": true,
            "description": "The transaction hash to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txid": {
                      "type": "string",
                      "description": "Transaction ID"
                    },
                    "hash": {
                      "type": "string",
                      "description": "Transaction hash (differs from txid for SegWit transactions)"
                    },
                    "version": {
                      "type": "integer",
                      "description": "Transaction version"
                    },
                    "size": {
                      "type": "integer",
                      "description": "Transaction size in bytes"
                    },
                    "vsize": {
                      "type": "integer",
                      "description": "Virtual transaction size"
                    },
                    "weight": {
                      "type": "integer",
                      "description": "Transaction weight units"
                    },
                    "locktime": {
                      "type": "integer",
                      "description": "Transaction locktime"
                    },
                    "vin": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "coinbase": {
                            "type": "string",
                            "description": "Coinbase data (for coinbase transactions)"
                          },
                          "txid": {
                            "type": "string",
                            "description": "Previous transaction ID (for non-coinbase)"
                          },
                          "vout": {
                            "type": "integer",
                            "description": "Previous output index (for non-coinbase)"
                          },
                          "scriptSig": {
                            "type": "object",
                            "properties": {
                              "asm": {
                                "type": "string",
                                "description": "Script in assembly format"
                              },
                              "hex": {
                                "type": "string",
                                "description": "Script in hex format"
                              }
                            },
                            "description": "Input script signature"
                          },
                          "txinwitness": {
                            "type": "array",
                            "items": {},
                            "description": "Segregated Witness data"
                          },
                          "sequence": {
                            "type": "integer",
                            "description": "Sequence number"
                          }
                        }
                      },
                      "description": "Array of transaction inputs"
                    },
                    "vout": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "number",
                            "description": "Output value in BTC"
                          },
                          "n": {
                            "type": "integer",
                            "description": "Output index"
                          },
                          "scriptPubKey": {
                            "type": "object",
                            "properties": {
                              "asm": {
                                "type": "string",
                                "description": "Script in assembly format"
                              },
                              "desc": {
                                "type": "string",
                                "description": "Output descriptor"
                              },
                              "hex": {
                                "type": "string",
                                "description": "Script in hex format"
                              },
                              "address": {
                                "type": "string",
                                "description": "Output address"
                              },
                              "type": {
                                "type": "string",
                                "description": "Script type (e.g., witness_v0_keyhash, nulldata)"
                              }
                            },
                            "description": "Output script"
                          }
                        }
                      },
                      "description": "Array of transaction outputs"
                    },
                    "hex": {
                      "type": "string",
                      "description": "Raw transaction hex"
                    },
                    "blockhash": {
                      "type": "string",
                      "description": "Block hash containing this transaction"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "time": {
                      "type": "integer",
                      "description": "Transaction time as Unix timestamp"
                    },
                    "blocktime": {
                      "type": "integer",
                      "description": "Block time as Unix timestamp"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/utxo/{xpub_or_address}": {
      "get": {
        "operationId": "get_utxo_by_xpub_or_address",
        "summary": "Returns unspent transaction outputs (UTXOs) for an address, extended public key, or output descriptor.",
        "tags": [
          "utxo"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-utxo"
        },
        "description": "Returns unspent transaction outputs (UTXOs) for an address, extended public key, or output descriptor. By default, includes both confirmed and unconfirmed outputs.",
        "parameters": [
          {
            "name": "xpub_or_address",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "An address, an extended public key, or an output descriptor. Supported descriptor forms: `pkh(...)`, `wpkh(...)`, `sh(wpkh(...))`, and `tr(...)`. Must be an account-level key, not a master key. URL-encode the descriptor when placing it in the REST path."
            },
            "required": true,
            "description": "An address, an extended public key, or an output descriptor. Supported descriptor forms: `pkh(...)`, `wpkh(...)`, `sh(wpkh(...))`, and `tr(...)`. Must be an account-level key, not a master key. URL-encode the descriptor when placing it in the REST path."
          },
          {
            "name": "confirmed",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "When set to true, only returns confirmed UTXOs."
            },
            "description": "When set to true, only returns confirmed UTXOs."
          },
          {
            "name": "gap",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
            },
            "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txid": {
                      "type": "string",
                      "description": "Transaction ID of the UTXO"
                    },
                    "vout": {
                      "type": "integer",
                      "description": "Output index in the transaction"
                    },
                    "value": {
                      "type": "string",
                      "description": "UTXO value in satoshis"
                    },
                    "height": {
                      "type": "integer",
                      "description": "Block height where the UTXO was created"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "address": {
                      "type": "string",
                      "description": "The address this UTXO belongs to. Returned only for xpub and descriptor queries; omitted for single-address queries."
                    },
                    "path": {
                      "type": "string",
                      "description": "BIP32 derivation path of the address, e.g. `m/86'/0'/0'/0/0`. The last two segments are the branch (0 = receive, 1 = change) and the address index. Returned only for xpub and descriptor queries; omitted for single-address queries."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/xpub/{xpub}": {
      "get": {
        "operationId": "get_xpub_by_xpub",
        "summary": "Returns balances and transactions for an XPUB or output descriptor.",
        "tags": [
          "xpub"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/api-v2-xpub"
        },
        "description": "Returns balances and transactions for an XPUB or output descriptor. Useful for querying all addresses derived from a single extended public key.",
        "parameters": [
          {
            "name": "xpub",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "An extended public key, or an output descriptor wrapping one. Supported descriptor forms: `pkh(...)`, `wpkh(...)`, `sh(wpkh(...))`, and `tr(...)`. Must be an account-level key, not a master key. Example: `tr(xpub...)`. URL-encode the descriptor when placing it in the REST path."
            },
            "required": true,
            "description": "An extended public key, or an output descriptor wrapping one. Supported descriptor forms: `pkh(...)`, `wpkh(...)`, `sh(wpkh(...))`, and `tr(...)`. Must be an account-level key, not a master key. Example: `tr(xpub...)`. URL-encode the descriptor when placing it in the REST path."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The page number to retrieve for paginated results."
            },
            "description": "The page number to retrieve for paginated results."
          },
          {
            "name": "size",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The number of transactions per page."
            },
            "description": "The number of transactions per page."
          },
          {
            "name": "fromHeight",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "Filter transactions from this block height (inclusive)."
            },
            "description": "Filter transactions from this block height (inclusive)."
          },
          {
            "name": "details",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Level of detail for returned transactions. Must be one of: basic, txids, or txs."
            },
            "description": "Level of detail for returned transactions. Must be one of: basic, txids, or txs."
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Filter transactions by token. Provide a token's contract address, or `0` to return only transactions with no token transfers."
            },
            "description": "Filter transactions by token. Provide a token's contract address, or `0` to return only transactions with no token transfers."
          },
          {
            "name": "contract",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Limit returned token balances and transactions to the specified token contract address."
            },
            "description": "Limit returned token balances and transactions to the specified token contract address."
          },
          {
            "name": "protocols",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Comma-separated list of token protocols to include (for example `erc20`)."
            },
            "description": "Comma-separated list of token protocols to include (for example `erc20`)."
          },
          {
            "name": "gap",
            "in": "query",
            "schema": {
              "type": "integer",
              "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
            },
            "description": "The gap limit used when deriving addresses from an extended public key (xpub). Defaults to 20."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "page": {
                      "type": "integer",
                      "description": "Current page number"
                    },
                    "totalPages": {
                      "type": "integer",
                      "description": "Total number of pages"
                    },
                    "itemsOnPage": {
                      "type": "integer",
                      "description": "Number of items on each page"
                    },
                    "address": {
                      "type": "string",
                      "description": "The queried xpub key"
                    },
                    "balance": {
                      "type": "string",
                      "description": "Current confirmed balance in satoshis"
                    },
                    "totalReceived": {
                      "type": "string",
                      "description": "Total amount received in satoshis"
                    },
                    "totalSent": {
                      "type": "string",
                      "description": "Total amount sent in satoshis"
                    },
                    "unconfirmedBalance": {
                      "type": "string",
                      "description": "Unconfirmed balance in satoshis"
                    },
                    "unconfirmedTxs": {
                      "type": "integer",
                      "description": "Number of unconfirmed transactions"
                    },
                    "txs": {
                      "type": "integer",
                      "description": "Total number of transactions"
                    },
                    "txids": {
                      "type": "array",
                      "items": {},
                      "description": "List of transaction IDs"
                    },
                    "tokens": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Token type (e.g., XPUBAddress)"
                          },
                          "name": {
                            "type": "string",
                            "description": "Derived address"
                          },
                          "path": {
                            "type": "string",
                            "description": "BIP32 derivation path"
                          },
                          "transfers": {
                            "type": "integer",
                            "description": "Number of transfers for this address"
                          },
                          "decimals": {
                            "type": "integer",
                            "description": "Decimal places"
                          },
                          "balance": {
                            "type": "string",
                            "description": "Balance of this derived address"
                          },
                          "totalReceived": {
                            "type": "string",
                            "description": "Total received by this derived address"
                          },
                          "totalSent": {
                            "type": "string",
                            "description": "Total sent from this derived address"
                          }
                        }
                      },
                      "description": "Derived addresses from the xpub"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/collections/{page}": {
      "get": {
        "operationId": "get_collections_by_page",
        "summary": "Fetches a paginated list of inscription collections.",
        "tags": [
          "collections"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/collections-page"
        },
        "parameters": [
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs representing collection parents"
                    },
                    "next": {
                      "type": "integer",
                      "description": "The next page number, if more results are available"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/content/{inscription_id}": {
      "get": {
        "operationId": "get_content_by_inscription_id",
        "summary": "Returns the raw content of an inscription.",
        "tags": [
          "content"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/content-inscription-id"
        },
        "description": "Returns the raw content of an inscription. The response content type depends on the inscription's content type (e.g., text/plain, image/png, application/json).",
        "parameters": [
          {
            "name": "inscription_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The inscription ID to retrieve content for."
            },
            "required": true,
            "description": "The inscription ID to retrieve content for."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "content": {
                      "type": "string",
                      "description": "The raw content of the inscription. The content type varies depending on the inscription (e.g., text, image, JSON)."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inscription/{inscription_id}": {
      "get": {
        "operationId": "get_inscription_by_inscription_id",
        "summary": "Fetches detailed information about a specific inscription by its ID.",
        "tags": [
          "inscription"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/inscription-inscription-id"
        },
        "parameters": [
          {
            "name": "inscription_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The inscription ID to look up."
            },
            "required": true,
            "description": "The inscription ID to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string",
                      "description": "The Bitcoin address currently holding the inscription"
                    },
                    "charms": {
                      "type": "array",
                      "items": {},
                      "description": "Array of charms associated with the inscription"
                    },
                    "child_count": {
                      "type": "integer",
                      "description": "Number of child inscriptions"
                    },
                    "children": {
                      "type": "array",
                      "items": {},
                      "description": "Array of child inscription IDs"
                    },
                    "content_length": {
                      "type": "integer",
                      "description": "Length of the inscription content in bytes"
                    },
                    "content_type": {
                      "type": "string",
                      "description": "MIME type of the inscription content"
                    },
                    "effective_content_type": {
                      "type": "string",
                      "description": "The effective content type after processing"
                    },
                    "fee": {
                      "type": "integer",
                      "description": "Transaction fee paid in satoshis"
                    },
                    "height": {
                      "type": "integer",
                      "description": "Block height where the inscription was created"
                    },
                    "id": {
                      "type": "string",
                      "description": "The inscription ID"
                    },
                    "next": {
                      "type": "string",
                      "description": "The next inscription ID in sequence"
                    },
                    "number": {
                      "type": "integer",
                      "description": "The inscription number"
                    },
                    "parents": {
                      "type": "array",
                      "items": {},
                      "description": "Array of parent inscription IDs"
                    },
                    "previous": {
                      "type": "string",
                      "description": "The previous inscription ID in sequence"
                    },
                    "rune": {
                      "type": "string",
                      "description": "Associated rune, if any"
                    },
                    "sat": {
                      "type": "integer",
                      "description": "The satoshi number this inscription is attached to"
                    },
                    "satpoint": {
                      "type": "string",
                      "description": "The satpoint location of the inscription (txid:vout:offset)"
                    },
                    "timestamp": {
                      "type": "integer",
                      "description": "Unix timestamp of the inscription creation"
                    },
                    "value": {
                      "type": "integer",
                      "description": "Value in satoshis of the output containing the inscription"
                    },
                    "metaprotocol": {
                      "type": "string",
                      "description": "Metaprotocol tag, if any"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inscriptions/block/{blockheight}/{page}": {
      "get": {
        "operationId": "get_inscriptions_block_by_blockheight_by_page",
        "summary": "Returns a paginated list of inscription IDs created in the specified block.",
        "tags": [
          "inscriptions"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/inscriptions-block-blockheight-page"
        },
        "parameters": [
          {
            "name": "blockheight",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The block height to query inscriptions for."
            },
            "required": true,
            "description": "The block height to query inscriptions for."
          },
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs found in the specified block"
                    },
                    "more": {
                      "type": "boolean",
                      "description": "Whether more pages of results are available"
                    },
                    "page_index": {
                      "type": "integer",
                      "description": "The current page index"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inscriptions/{page}": {
      "get": {
        "operationId": "get_inscriptions_by_page",
        "summary": "Returns a paginated list of all inscription IDs, ordered by most recent first.",
        "tags": [
          "inscriptions"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/inscriptions-page"
        },
        "parameters": [
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs"
                    },
                    "more": {
                      "type": "boolean",
                      "description": "Whether more pages of results are available"
                    },
                    "page_index": {
                      "type": "integer",
                      "description": "The current page index"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/output/{outpoint}": {
      "get": {
        "operationId": "get_output_by_outpoint",
        "summary": "Returns information about a specific transaction output, including any inscriptions or runes it contains.",
        "tags": [
          "output"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/output-outpoint"
        },
        "parameters": [
          {
            "name": "outpoint",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The outpoint to query in the format txid:vout."
            },
            "required": true,
            "description": "The outpoint to query in the format txid:vout."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string",
                      "description": "The Bitcoin address associated with the output"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "indexed": {
                      "type": "boolean",
                      "description": "Whether the output has been indexed for inscriptions"
                    },
                    "inscriptions": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs on this output"
                    },
                    "outpoint": {
                      "type": "string",
                      "description": "The outpoint identifier (txid:vout)"
                    },
                    "runes": {
                      "type": "object",
                      "description": "Object containing rune balances on this output"
                    },
                    "sat_ranges": {
                      "type": "array",
                      "items": {},
                      "description": "Array of satoshi ranges in this output, if sat index is enabled"
                    },
                    "script_pubkey": {
                      "type": "string",
                      "description": "The output script public key in hex"
                    },
                    "spent": {
                      "type": "boolean",
                      "description": "Whether the output has been spent"
                    },
                    "transaction": {
                      "type": "string",
                      "description": "The transaction ID"
                    },
                    "value": {
                      "type": "integer",
                      "description": "The output value in satoshis"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/blockhash": {
      "get": {
        "operationId": "get_r_blockhash",
        "summary": "Fetches the latest block hash known to the Ordinals indexer.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-blockhash"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "blockhash": {
                      "type": "string",
                      "description": "The hash of the latest block"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/blockhash/{blockheight}": {
      "get": {
        "operationId": "get_r_blockhash_by_blockheight",
        "summary": "Fetches the block hash for a specific block height.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-blockhash-blockheight"
        },
        "parameters": [
          {
            "name": "blockheight",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The block height to get the hash for."
            },
            "required": true,
            "description": "The block height to get the hash for."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "blockhash": {
                      "type": "string",
                      "description": "The block hash for the specified height"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/blockheight": {
      "get": {
        "operationId": "get_r_blockheight",
        "summary": "Fetches the latest block height known to the Ordinals indexer.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-blockheight"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "blockheight": {
                      "type": "integer",
                      "description": "The current block height"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/blockinfo/{blockheight}": {
      "get": {
        "operationId": "get_r_blockinfo_by_blockheight",
        "summary": "Returns detailed block information for a specific block height using the recursion API.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-blockinfo-blockheight"
        },
        "parameters": [
          {
            "name": "blockheight",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The block height to get information for."
            },
            "required": true,
            "description": "The block height to get information for."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "average_fee": {
                      "type": "integer",
                      "description": "Average transaction fee in satoshis"
                    },
                    "average_fee_rate": {
                      "type": "integer",
                      "description": "Average fee rate in sat/vB"
                    },
                    "bits": {
                      "type": "integer",
                      "description": "Difficulty target in compact format"
                    },
                    "chainwork": {
                      "type": "string",
                      "description": "Total cumulative chain work in hex"
                    },
                    "confirmations": {
                      "type": "integer",
                      "description": "Number of confirmations"
                    },
                    "difficulty": {
                      "type": "number",
                      "description": "Block mining difficulty"
                    },
                    "hash": {
                      "type": "string",
                      "description": "The block hash"
                    },
                    "feerate_percentiles": {
                      "type": "array",
                      "items": {},
                      "description": "Array of fee rate percentiles [10th, 25th, 50th, 75th, 90th] in sat/vB"
                    },
                    "height": {
                      "type": "integer",
                      "description": "Block height"
                    },
                    "max_fee": {
                      "type": "integer",
                      "description": "Maximum transaction fee in satoshis"
                    },
                    "max_fee_rate": {
                      "type": "integer",
                      "description": "Maximum fee rate in sat/vB"
                    },
                    "max_tx_size": {
                      "type": "integer",
                      "description": "Maximum transaction size in bytes"
                    },
                    "median_fee": {
                      "type": "integer",
                      "description": "Median transaction fee in satoshis"
                    },
                    "median_time": {
                      "type": "integer",
                      "description": "Median time of the last 11 blocks"
                    },
                    "merkle_root": {
                      "type": "string",
                      "description": "Merkle root of the block"
                    },
                    "min_fee": {
                      "type": "integer",
                      "description": "Minimum transaction fee in satoshis"
                    },
                    "min_fee_rate": {
                      "type": "integer",
                      "description": "Minimum fee rate in sat/vB"
                    },
                    "next_block": {
                      "type": "string",
                      "description": "Hash of the next block"
                    },
                    "nonce": {
                      "type": "integer",
                      "description": "Block nonce"
                    },
                    "previous_block": {
                      "type": "string",
                      "description": "Hash of the previous block"
                    },
                    "subsidy": {
                      "type": "integer",
                      "description": "Block subsidy in satoshis"
                    },
                    "target": {
                      "type": "string",
                      "description": "Difficulty target in hex"
                    },
                    "timestamp": {
                      "type": "integer",
                      "description": "Unix timestamp of the block"
                    },
                    "total_fee": {
                      "type": "integer",
                      "description": "Total fees in the block in satoshis"
                    },
                    "total_size": {
                      "type": "integer",
                      "description": "Total size of all transactions in bytes"
                    },
                    "total_weight": {
                      "type": "integer",
                      "description": "Total weight of all transactions"
                    },
                    "transaction_count": {
                      "type": "integer",
                      "description": "Number of transactions in the block"
                    },
                    "version": {
                      "type": "integer",
                      "description": "Block version number"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/blocktime": {
      "get": {
        "operationId": "get_r_blocktime",
        "summary": "Fetches the timestamp of the latest block known to the Ordinals indexer.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-blocktime"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "blocktime": {
                      "type": "integer",
                      "description": "Unix timestamp of the latest block"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/children/{inscription_id}/{page}": {
      "get": {
        "operationId": "get_r_children_by_inscription_id_by_page",
        "summary": "Returns a paginated list of child inscription IDs for a given parent inscription using the recursion API.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-children-inscription-id-page"
        },
        "parameters": [
          {
            "name": "inscription_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The parent inscription ID."
            },
            "required": true,
            "description": "The parent inscription ID."
          },
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {},
                      "description": "Array of child inscription IDs"
                    },
                    "more": {
                      "type": "boolean",
                      "description": "Whether more pages of results are available"
                    },
                    "page": {
                      "type": "integer",
                      "description": "The current page number"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/inscription/{inscription_id}": {
      "get": {
        "operationId": "get_r_inscription_by_inscription_id",
        "summary": "Fetches inscription details using the recursive endpoint.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-inscription-inscription-id"
        },
        "description": "Fetches inscription details using the recursive endpoint. Recursive endpoints are whitelisted endpoints that allow access to on-chain data, including the content of other inscriptions.",
        "parameters": [
          {
            "name": "inscription_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The inscription ID to look up."
            },
            "required": true,
            "description": "The inscription ID to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "charms": {
                      "type": "array",
                      "items": {},
                      "description": "Array of charms associated with the inscription"
                    },
                    "content_type": {
                      "type": "string",
                      "description": "MIME type of the inscription content"
                    },
                    "content_length": {
                      "type": "integer",
                      "description": "Length of the inscription content in bytes"
                    },
                    "delegate": {
                      "type": "string",
                      "description": "Delegate inscription ID, if any"
                    },
                    "fee": {
                      "type": "integer",
                      "description": "Transaction fee paid in satoshis"
                    },
                    "height": {
                      "type": "integer",
                      "description": "Block height where the inscription was created"
                    },
                    "id": {
                      "type": "string",
                      "description": "The inscription ID"
                    },
                    "number": {
                      "type": "integer",
                      "description": "The inscription number"
                    },
                    "output": {
                      "type": "string",
                      "description": "The output containing the inscription (txid:vout)"
                    },
                    "sat": {
                      "type": "integer",
                      "description": "The satoshi number this inscription is attached to"
                    },
                    "satpoint": {
                      "type": "string",
                      "description": "The satpoint location (txid:vout:offset)"
                    },
                    "timestamp": {
                      "type": "integer",
                      "description": "Unix timestamp of the inscription creation"
                    },
                    "value": {
                      "type": "integer",
                      "description": "Value in satoshis of the output containing the inscription"
                    },
                    "address": {
                      "type": "string",
                      "description": "The Bitcoin address currently holding the inscription"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/metadata/{inscription_id}": {
      "get": {
        "operationId": "get_r_metadata_by_inscription_id",
        "summary": "Fetches the CBOR-decoded metadata for an inscription.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-metadata-inscription-id"
        },
        "description": "Fetches the CBOR-decoded metadata for an inscription. Returns the metadata if present, or a not-found message if the inscription has no metadata.",
        "parameters": [
          {
            "name": "inscription_id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The inscription ID to retrieve metadata for."
            },
            "required": true,
            "description": "The inscription ID to retrieve metadata for."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "type": "object",
                      "description": "The CBOR-decoded metadata object for the inscription. Returns null if the inscription has no metadata."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/sat/{sat}/at/{index}": {
      "get": {
        "operationId": "get_r_sat_by_sat_at_by_index",
        "summary": "Returns the inscription ID at the specified index on a given satoshi using the recursion API.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-sat-sat-at-index"
        },
        "parameters": [
          {
            "name": "sat",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The satoshi number to query."
            },
            "required": true,
            "description": "The satoshi number to query."
          },
          {
            "name": "index",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The inscription index on the satoshi (0-indexed)."
            },
            "required": true,
            "description": "The inscription index on the satoshi (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The inscription ID at the specified index on the satoshi, or null if none exists"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/r/sat/{sat}/{page}": {
      "get": {
        "operationId": "get_r_sat_by_sat_by_page",
        "summary": "Returns a paginated list of inscription IDs on a given satoshi using the recursion API.",
        "tags": [
          "r"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/r-sat-sat-page"
        },
        "parameters": [
          {
            "name": "sat",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The satoshi number to query."
            },
            "required": true,
            "description": "The satoshi number to query."
          },
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ids": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs on the satoshi"
                    },
                    "more": {
                      "type": "boolean",
                      "description": "Whether more pages of results are available"
                    },
                    "page": {
                      "type": "integer",
                      "description": "The current page number"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rune/{runeid}": {
      "get": {
        "operationId": "get_rune_by_runeid",
        "summary": "Fetches detailed information about a specific rune by its ID.",
        "tags": [
          "rune"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/rune-runeid"
        },
        "parameters": [
          {
            "name": "runeid",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The rune ID in the format blockheight:txindex."
            },
            "required": true,
            "description": "The rune ID in the format blockheight:txindex."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entry": {
                      "type": "object",
                      "properties": {
                        "block": {
                          "type": "integer",
                          "description": "Block height where the rune was etched"
                        },
                        "burned": {
                          "type": "integer",
                          "description": "Total amount of the rune that has been burned"
                        },
                        "divisibility": {
                          "type": "integer",
                          "description": "Number of decimal places for the rune"
                        },
                        "etching": {
                          "type": "string",
                          "description": "Transaction ID of the etching transaction"
                        },
                        "mints": {
                          "type": "integer",
                          "description": "Number of times the rune has been minted"
                        },
                        "number": {
                          "type": "integer",
                          "description": "The rune number"
                        },
                        "premine": {
                          "type": "integer",
                          "description": "Amount of the rune that was premined"
                        },
                        "spaced_rune": {
                          "type": "string",
                          "description": "The rune name with spacer dots"
                        },
                        "symbol": {
                          "type": "string",
                          "description": "The rune symbol character"
                        },
                        "terms": {
                          "type": "object",
                          "description": "Minting terms, if any"
                        },
                        "timestamp": {
                          "type": "integer",
                          "description": "Unix timestamp of the etching"
                        },
                        "turbo": {
                          "type": "boolean",
                          "description": "Whether the rune opted into turbo mode"
                        }
                      },
                      "description": "The rune entry details"
                    },
                    "id": {
                      "type": "string",
                      "description": "The rune ID (blockheight:txindex)"
                    },
                    "mintable": {
                      "type": "boolean",
                      "description": "Whether the rune is currently mintable"
                    },
                    "parent": {
                      "type": "string",
                      "description": "The parent inscription ID of the rune"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/runes/{page}": {
      "get": {
        "operationId": "get_runes_by_page",
        "summary": "Returns a paginated list of runes, ordered by most recent first.",
        "tags": [
          "runes"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/runes-page"
        },
        "parameters": [
          {
            "name": "page",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The page number for paginated results (0-indexed)."
            },
            "required": true,
            "description": "The page number for paginated results (0-indexed)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rune_id": {
                            "type": "string",
                            "description": "The rune ID (blockheight:txindex)"
                          },
                          "rune_entry": {
                            "type": "object",
                            "properties": {
                              "block": {
                                "type": "integer",
                                "description": "Block height where the rune was etched"
                              },
                              "burned": {
                                "type": "integer",
                                "description": "Total amount burned"
                              },
                              "divisibility": {
                                "type": "integer",
                                "description": "Number of decimal places"
                              },
                              "etching": {
                                "type": "string",
                                "description": "Etching transaction ID"
                              },
                              "mints": {
                                "type": "integer",
                                "description": "Number of mints"
                              },
                              "number": {
                                "type": "integer",
                                "description": "The rune number"
                              },
                              "premine": {
                                "type": "integer",
                                "description": "Premined amount"
                              },
                              "spaced_rune": {
                                "type": "string",
                                "description": "Rune name with spacers"
                              },
                              "symbol": {
                                "type": "string",
                                "description": "Rune symbol"
                              },
                              "terms": {
                                "type": "object",
                                "description": "Minting terms"
                              },
                              "timestamp": {
                                "type": "integer",
                                "description": "Etching timestamp"
                              },
                              "turbo": {
                                "type": "boolean",
                                "description": "Turbo mode flag"
                              }
                            },
                            "description": "The rune entry details"
                          }
                        }
                      },
                      "description": "Array of [rune_id, rune_entry] tuples"
                    },
                    "more": {
                      "type": "boolean",
                      "description": "Whether more pages of results are available"
                    },
                    "next": {
                      "type": "integer",
                      "description": "The next page number, if available"
                    },
                    "prev": {
                      "type": "integer",
                      "description": "The previous page number, if available"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sat/{sat}": {
      "get": {
        "operationId": "get_sat_by_sat",
        "summary": "Returns detailed information about a specific satoshi, including its ordinal theory properties.",
        "tags": [
          "sat"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/sat-sat"
        },
        "parameters": [
          {
            "name": "sat",
            "in": "path",
            "schema": {
              "type": "integer",
              "description": "The satoshi number to look up."
            },
            "required": true,
            "description": "The satoshi number to look up."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string",
                      "description": "The Bitcoin address currently holding the satoshi"
                    },
                    "block": {
                      "type": "integer",
                      "description": "The block height where the satoshi was mined"
                    },
                    "charms": {
                      "type": "array",
                      "items": {},
                      "description": "Array of charms associated with the satoshi"
                    },
                    "cycle": {
                      "type": "integer",
                      "description": "The cycle number of the satoshi"
                    },
                    "decimal": {
                      "type": "string",
                      "description": "Decimal notation of the satoshi (block.offset)"
                    },
                    "degree": {
                      "type": "string",
                      "description": "Degree notation of the satoshi"
                    },
                    "epoch": {
                      "type": "integer",
                      "description": "The epoch of the satoshi"
                    },
                    "inscriptions": {
                      "type": "array",
                      "items": {},
                      "description": "Array of inscription IDs on this satoshi"
                    },
                    "name": {
                      "type": "string",
                      "description": "The alphabetic name of the satoshi"
                    },
                    "number": {
                      "type": "integer",
                      "description": "The satoshi number"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Offset within the block"
                    },
                    "percentile": {
                      "type": "string",
                      "description": "The satoshi's position as a percentile of total supply"
                    },
                    "period": {
                      "type": "integer",
                      "description": "The difficulty adjustment period"
                    },
                    "rarity": {
                      "type": "string",
                      "description": "The rarity of the satoshi (common, uncommon, rare, epic, legendary, mythic)"
                    },
                    "satpoint": {
                      "type": "string",
                      "description": "The current satpoint location"
                    },
                    "timestamp": {
                      "type": "integer",
                      "description": "Unix timestamp of when the satoshi was mined"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "operationId": "get_status",
        "summary": "Returns the current status of the Ordinals indexer, including sync state and feature flags.",
        "tags": [
          "status"
        ],
        "externalDocs": {
          "description": "Quicknode docs",
          "url": "https://www.quicknode.com/docs/bitcoin/status"
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address_index": {
                      "type": "boolean",
                      "description": "Whether the address index is enabled"
                    },
                    "blessed_inscriptions": {
                      "type": "integer",
                      "description": "Total number of blessed (valid) inscriptions"
                    },
                    "chain": {
                      "type": "string",
                      "description": "The chain name (e.g., mainnet)"
                    },
                    "cursed_inscriptions": {
                      "type": "integer",
                      "description": "Total number of cursed inscriptions"
                    },
                    "height": {
                      "type": "integer",
                      "description": "The current indexed block height"
                    },
                    "initial_sync_time": {
                      "type": "object",
                      "properties": {
                        "secs": {
                          "type": "integer",
                          "description": "Seconds component"
                        },
                        "nanos": {
                          "type": "integer",
                          "description": "Nanoseconds component"
                        }
                      },
                      "description": "Time taken for initial sync"
                    },
                    "inscription_index": {
                      "type": "boolean",
                      "description": "Whether the inscription index is enabled"
                    },
                    "inscriptions": {
                      "type": "integer",
                      "description": "Total number of inscriptions"
                    },
                    "json_api": {
                      "type": "boolean",
                      "description": "Whether the JSON API is enabled"
                    },
                    "lost_sats": {
                      "type": "integer",
                      "description": "Number of lost satoshis"
                    },
                    "minimum_rune_for_next_block": {
                      "type": "string",
                      "description": "Minimum rune name that can be etched in the next block"
                    },
                    "rune_index": {
                      "type": "boolean",
                      "description": "Whether the rune index is enabled"
                    },
                    "runes": {
                      "type": "integer",
                      "description": "Total number of runes"
                    },
                    "sat_index": {
                      "type": "boolean",
                      "description": "Whether the sat index is enabled"
                    },
                    "started": {
                      "type": "string",
                      "description": "ISO-8601 timestamp of when the indexer started"
                    },
                    "transaction_index": {
                      "type": "boolean",
                      "description": "Whether the transaction index is enabled"
                    },
                    "unrecoverably_reorged": {
                      "type": "boolean",
                      "description": "Whether an unrecoverable reorg has occurred"
                    },
                    "uptime": {
                      "type": "object",
                      "properties": {
                        "secs": {
                          "type": "integer",
                          "description": "Seconds component"
                        },
                        "nanos": {
                          "type": "integer",
                          "description": "Nanoseconds component"
                        }
                      },
                      "description": "Current uptime of the indexer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://docs-demo.btc.quiknode.pro/addon/679",
      "description": "Quicknode Bitcoin"
    }
  ]
}