{ "openapi": "3.1.0", "info": { "title": "Maestro Symphony", "description": "Maestro Symphony is a **fast**, **mempool-aware**, and **extensible** Bitcoin indexer and API server. It provides a framework for indexing UTXOs, metaprotocols, and other onchain transactions.", "contact": { "name": "info@gomaestro.org" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.txt" }, "version": "v0.1.2" }, "paths": { "/addresses/{address}/charms/utxos": { "get": { "tags": [ "Addresses" ], "summary": "Charm UTXOs by Address", "description": "Returns all UTXOs controlled by the provided address which contain charms, sorted by height.", "operationId": "addresses_all_charm_utxos", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "mempool", "in": "query", "description": "Mempool-aware (default: false)", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "All charm UTXOs at address", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_CharmUtxo" } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Not found" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/charms/utxos/{charm}": { "get": { "tags": [ "Addresses" ], "summary": "Charm UTXOs by Address and Charm", "description": "Returns UTXOs controlled by the provided address which contain the specified charm, sorted by height.", "operationId": "addresses_specific_charm_utxos", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "charm", "in": "path", "description": "Charm app in URI-safe form (dashes instead of slashes)", "required": true, "schema": { "type": "string" }, "example": "t-0000000000000000000000000000000000000000000000000000000000000001-0000000000000000000000000000000000000000000000000000000000000002" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Charm UTXOs for specific charm at address", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_CharmUtxo" } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Not found" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/runes/balances": { "get": { "tags": [ "Addresses" ], "summary": "Rune Balances by Address", "description": "Returns total rune balances held in UTxOs controlled by the provided address, sorted by rune ID.", "operationId": "addresses_all_rune_balances", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "mempool", "in": "query", "description": "Mempool-aware (default: false)", "required": false, "schema": { "type": "boolean" } }, { "name": "include_info", "in": "query", "description": "Include rune info for each balance (default: false)", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_RuneBalanceWithInfo" }, "example": { "data": [ { "amount": "100000000", "id": "30562:50", "info": { "divisibility": 8, "etching_height": 30562, "etching_tx": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121", "id": "30562:50", "name": "BESTINSLOTXYZ", "premine": "100000000", "spaced_name": "BESTINSLOT•XYZ", "symbol": "ʃ", "terms": { "amount": "100000000", "cap": "3402823669209384634633746074316", "end_height": null, "start_height": null } } }, { "amount": "990000", "id": "63523:1", "info": { "divisibility": 2, "etching_height": 63523, "etching_tx": "3bcc9e8f8eaf120ea5af65a378925b703f6fb1960435629eef5cb5900c19bec9", "id": "63523:1", "name": "JFMJFMJFMHHHAAA", "premine": "1000000", "spaced_name": "JFMJFMJFMHHHAAA", "symbol": "J", "terms": { "amount": "100000", "cap": "100", "end_height": null, "start_height": 63515 } } } ], "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/runes/balances/{rune}": { "get": { "tags": [ "Addresses" ], "summary": "Rune Balance by Address and Rune", "description": "Returns the total amount of the provided rune kind held in UTxOs controlled by the provided address.", "operationId": "addresses_specific_rune_balance", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "rune", "in": "path", "description": "Rune ID or name (spaced or unspaced)", "required": true, "schema": { "type": "string" }, "example": "BITCOIN•PIZZAS" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_String" }, "example": { "data": "100000000", "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/runes/txs/{txid}": { "get": { "tags": [ "Addresses" ], "summary": "Rune Edicts by Address and Transaction", "operationId": "addresses_runes_by_tx", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "txid", "in": "path", "description": "Transaction ID", "required": true, "schema": { "type": "string" }, "example": "c0345bb5906257a05cdc2d11b6580ce75fdfe8b7ac09b7b2711d435e2ba0a9b3" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_RuneEdict" }, "example": { "data": [ { "amount": "100000000", "block_height": 30562, "output": 1, "rune_id": "30562:50" } ], "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/runes/utxos": { "get": { "tags": [ "Addresses" ], "summary": "Rune UTxOs by Address", "description": "Returns all UTxOs controlled by the provided address which contain runes, sorted by height.", "operationId": "addresses_all_rune_utxos", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "mempool", "in": "query", "description": "Mempool-aware (default: false)", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_RuneUtxo" }, "example": { "data": [ { "height": 30562, "output_index": 1, "runes": [ { "amount": "100000000", "id": "30562:50" } ], "satoshis": "10000", "tx_hash": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121" } ], "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/runes/utxos/{rune}": { "get": { "tags": [ "Addresses" ], "summary": "Rune UTxOs by Address and Rune", "description": "Returns UTxOs controlled by the provided address which contain the provided rune, sorted by height.", "operationId": "addresses_specific_rune_utxos", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "rune", "in": "path", "description": "Rune ID or name (spaced or unspaced)", "required": true, "schema": { "type": "string" }, "example": "BITCOIN•PIZZAS" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_RuneUtxo" }, "example": { "data": [ { "height": 30562, "output_index": 1, "runes": [ { "amount": "100000000", "id": "30562:50" } ], "satoshis": "10000", "tx_hash": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121" } ], "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/tx_count": { "get": { "tags": [ "Addresses" ], "summary": "Transaction Count by Address", "description": "Returns the number of transactions in which the address controlled an input or output", "operationId": "addresses_tx_count_by_address", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_u64" }, "example": { "data": 21086, "indexer_info": { "chain_tip": { "block_hash": "0000000004af5483f4e54ebf8f1d728b003d19ebc184761b82c50b8e86ec2a0a", "block_height": 91625 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/addresses/{address}/utxos": { "get": { "tags": [ "Addresses" ], "summary": "UTxOs by Address", "description": "Returns UTxOs controlled by the provided address, sorted by height.", "operationId": "addresses_utxos_by_address", "parameters": [ { "name": "address", "in": "path", "description": "Bitcoin address", "required": true, "schema": { "type": "string" }, "example": "tb1qphcdyah2e4vtpxn56hsz3p6kapg90pl4x525kc" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_Vec_AddressUtxo" }, "example": { "data": [ { "height": 30562, "output_index": 1, "satoshis": "10000", "tx_hash": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121" } ], "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/charms/{charm}/latest": { "get": { "tags": [ "Charms (Metaprotocol)" ], "summary": "Latest Charm UTXO", "description": "Returns the most recently produced UTXO containing the specified charm, along with all charm\nvalues in that UTXO. Useful for getting reference NFT content.", "operationId": "charm_latest", "parameters": [ { "name": "charm", "in": "path", "description": "Charm app in URI-safe form (dashes instead of slashes)", "required": true, "schema": { "type": "string" }, "example": "t-0000000000000000000000000000000000000000000000000000000000000001-0000000000000000000000000000000000000000000000000000000000000002" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Latest UTXO containing this charm", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_CharmUtxo" } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Charm not found" }, "500": { "description": "Internal server error" } } } }, "/charms/{charm}/utxos/{utxo}/value": { "get": { "tags": [ "Charms (Metaprotocol)" ], "summary": "Charm Value at UTXO", "description": "Returns the value of the specified charm at the provided UTXO. For fungible tokens (tag `t`),\nthe value is a u64 amount. For other charms, it can be any JSON value.", "operationId": "charm_value_at_utxo", "parameters": [ { "name": "utxo", "in": "path", "description": "UTXO reference in format txid:index", "required": true, "schema": { "type": "string" }, "example": "c0345bb5906257a05cdc2d11b6580ce75fdfe8b7ac09b7b2711d435e2ba0a9b3:1" }, { "name": "charm", "in": "path", "description": "Charm app in URI-safe form (dashes instead of slashes)", "required": true, "schema": { "type": "string" }, "example": "t-0000000000000000000000000000000000000000000000000000000000000001-0000000000000000000000000000000000000000000000000000000000000002" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Charm value at UTXO", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_CharmAndValue" } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Charm or UTXO not found" }, "500": { "description": "Internal server error" } } } }, "/runes/info": { "post": { "tags": [ "Runes (Metaprotocol)" ], "summary": "Info by Rune (Batch)", "description": "Given a list of rune identifiers (name or id), returns a map of identifiers to rune info (or null if no info found).", "operationId": "runes_rune_info_batch", "parameters": [ { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } }, "example": [ "BESTINSLOTXYZ", "ABCDEF" ] } }, "required": true }, "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_HashMap_String_Option_RuneInfo" }, "example": { "data": { "30562:50": { "divisibility": 8, "etching_height": 30562, "etching_tx": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121", "id": "30562:50", "name": "BESTINSLOTXYZ", "premine": "100000000", "spaced_name": "BESTINSLOT•XYZ", "symbol": "ʃ", "terms": { "amount": "100000000", "cap": "3402823669209384634633746074316", "end_height": null, "start_height": null } }, "ABCDEF": null }, "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested entity not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/runes/{rune}": { "get": { "tags": [ "Runes (Metaprotocol)" ], "summary": "Info by Rune", "description": "Given a rune identifier (name or id), returns the rune info.", "operationId": "rune_info", "parameters": [ { "name": "rune", "in": "path", "description": "Rune identifier (name or id)", "required": true, "schema": { "type": "string" } }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_RuneInfo" }, "example": { "data": { "divisibility": 8, "etching_height": 30562, "etching_tx": "63937d48e35d15a7c5530469210c202104cc94a945cc848554f336b3f4f24121", "id": "30562:50", "name": "BESTINSLOTXYZ", "premine": "100000000", "spaced_name": "BESTINSLOT•XYZ", "symbol": "ʃ", "terms": { "amount": "100000000", "cap": "3402823669209384634633746074316", "end_height": null, "start_height": null } }, "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested rune not found on-chain" }, "500": { "description": "Internal server error" } } } }, "/runes/{rune}/utxos/{utxo}/balance": { "get": { "tags": [ "Runes (Metaprotocol)" ], "summary": "Rune Balance by UTXO and Rune", "description": "Returns the amount of the specified rune contained in the provided UTXO. If the rune is not\npresent in the UTXO, `0` is returned.", "operationId": "rune_balance_at_utxo", "parameters": [ { "name": "utxo", "in": "path", "description": "UTXO reference in format txid:index", "required": true, "schema": { "type": "string" }, "example": "c0345bb5906257a05cdc2d11b6580ce75fdfe8b7ac09b7b2711d435e2ba0a9b3:1" }, { "name": "rune", "in": "path", "description": "Rune ID or name (spaced or unspaced)", "required": true, "schema": { "type": "string" }, "example": "BITCOIN•PIZZAS" }, { "name": "mempool", "in": "query", "description": "Mempool-aware", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Requested data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServeResponse_String" }, "example": { "data": "100000000", "indexer_info": { "chain_tip": { "block_hash": "00000000000000108a4cd9755381003a01bea7998ca2d770fe09b576753ac7ef", "block_height": 31633 }, "estimated_blocks": [], "mempool_timestamp": null } } } } }, "400": { "description": "Malformed query parameters" }, "404": { "description": "Requested rune or UTXO not found on-chain" }, "500": { "description": "Internal server error" } } } } }, "components": { "schemas": { "AddressUtxo": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis" ], "properties": { "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } }, "ChainTip": { "type": "object", "required": [ "block_hash", "block_height" ], "properties": { "block_hash": { "type": "string", "description": "The hash of the block" }, "block_height": { "type": "integer", "format": "int64", "description": "The height of the block in the blockchain", "minimum": 0 } } }, "CharmAndValue": { "type": "object", "required": [ "app", "value" ], "properties": { "app": { "type": "string", "description": "Canonical charm app identifier (e.g. \"t/identity/vk\")" }, "value": { "description": "Decoded charm value (CBOR -> JSON)" } } }, "CharmUtxo": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis", "charms" ], "properties": { "charms": { "type": "array", "items": { "$ref": "#/components/schemas/CharmAndValue" } }, "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } }, "EstimatedBlock": { "type": "object", "required": [ "block_height" ], "properties": { "block_height": { "type": "integer", "format": "int64", "minimum": 0 } } }, "IndexerInfo": { "type": "object", "required": [ "chain_tip", "estimated_blocks" ], "properties": { "chain_tip": { "$ref": "#/components/schemas/ChainTip", "description": "Most recent *mined* block in the indexed mainchain, any estimated blocks will be descendants of this block" }, "estimated_blocks": { "type": "array", "items": { "$ref": "#/components/schemas/EstimatedBlock" }, "description": "Information about any estimated blocks from the mempool that were indexed in addition to the mainchain" }, "mempool_timestamp": { "type": [ "string", "null" ], "description": "Timestamp of the indexed mempool snapshot, if any estimated blocks from the mempool have been indexed" } } }, "MempoolParam": { "type": "object", "properties": { "mempool": { "type": "boolean" } } }, "RuneAndAmount": { "type": "object", "required": [ "id", "amount" ], "properties": { "amount": { "type": "string" }, "id": { "type": "string" } } }, "RuneBalanceWithInfo": { "type": "object", "required": [ "id", "amount" ], "properties": { "amount": { "type": "string" }, "id": { "type": "string" }, "info": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RuneInfo" } ] } } }, "RuneBalancesParam": { "type": "object", "properties": { "include_info": { "type": "boolean" }, "mempool": { "type": "boolean" } } }, "RuneEdict": { "type": "object", "required": [ "rune_id", "amount", "block_height" ], "properties": { "amount": { "type": "string" }, "block_height": { "type": "integer", "format": "int64", "minimum": 0 }, "output": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "rune_id": { "type": "string" } } }, "RuneInfo": { "type": "object", "required": [ "id", "name", "spaced_name", "divisibility", "etching_tx", "etching_height", "premine" ], "properties": { "divisibility": { "type": "integer", "format": "int32", "minimum": 0 }, "etching_height": { "type": "integer", "format": "int64", "minimum": 0 }, "etching_tx": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "premine": { "type": "string" }, "spaced_name": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "terms": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RuneTerms" } ] } } }, "RuneTerms": { "type": "object", "properties": { "amount": { "type": [ "string", "null" ] }, "cap": { "type": [ "string", "null" ] }, "end_height": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "start_height": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } } }, "RuneUtxo": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis", "runes" ], "properties": { "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "runes": { "type": "array", "items": { "$ref": "#/components/schemas/RuneAndAmount" } }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } }, "ServeResponse_AddressUtxo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis" ], "properties": { "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_CharmAndValue": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "object", "required": [ "app", "value" ], "properties": { "app": { "type": "string", "description": "Canonical charm app identifier (e.g. \"t/identity/vk\")" }, "value": { "description": "Decoded charm value (CBOR -> JSON)" } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_CharmUtxo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis", "charms" ], "properties": { "charms": { "type": "array", "items": { "$ref": "#/components/schemas/CharmAndValue" } }, "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_HashMap_String_Option_RuneInfo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "object", "additionalProperties": { "oneOf": [ { "type": "null" }, { "type": "object", "required": [ "id", "name", "spaced_name", "divisibility", "etching_tx", "etching_height", "premine" ], "properties": { "divisibility": { "type": "integer", "format": "int32", "minimum": 0 }, "etching_height": { "type": "integer", "format": "int64", "minimum": 0 }, "etching_tx": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "premine": { "type": "string" }, "spaced_name": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "terms": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RuneTerms" } ] } } } ] }, "propertyNames": { "type": "string" } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_RuneInfo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "object", "required": [ "id", "name", "spaced_name", "divisibility", "etching_tx", "etching_height", "premine" ], "properties": { "divisibility": { "type": "integer", "format": "int32", "minimum": 0 }, "etching_height": { "type": "integer", "format": "int64", "minimum": 0 }, "etching_tx": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "premine": { "type": "string" }, "spaced_name": { "type": "string" }, "symbol": { "type": [ "string", "null" ] }, "terms": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RuneTerms" } ] } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_String": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "string" }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_AddressUtxo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis" ], "properties": { "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_CharmUtxo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis", "charms" ], "properties": { "charms": { "type": "array", "items": { "$ref": "#/components/schemas/CharmAndValue" } }, "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_RuneAndAmount": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "id", "amount" ], "properties": { "amount": { "type": "string" }, "id": { "type": "string" } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_RuneBalanceWithInfo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "id", "amount" ], "properties": { "amount": { "type": "string" }, "id": { "type": "string" }, "info": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RuneInfo" } ] } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_RuneEdict": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "rune_id", "amount", "block_height" ], "properties": { "amount": { "type": "string" }, "block_height": { "type": "integer", "format": "int64", "minimum": 0 }, "output": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "rune_id": { "type": "string" } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_Vec_RuneUtxo": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "tx_hash", "output_index", "height", "satoshis", "runes" ], "properties": { "height": { "type": "integer", "format": "int64", "minimum": 0 }, "output_index": { "type": "integer", "format": "int32", "minimum": 0 }, "runes": { "type": "array", "items": { "$ref": "#/components/schemas/RuneAndAmount" } }, "satoshis": { "type": "string" }, "tx_hash": { "type": "string" } } } }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } }, "ServeResponse_u64": { "type": "object", "required": [ "data", "indexer_info" ], "properties": { "data": { "type": "integer", "format": "int64", "minimum": 0 }, "indexer_info": { "$ref": "#/components/schemas/IndexerInfo" } } } } } }