{
  "openapi": "3.1.0",
  "info": {
    "title": "Morana Explorer API",
    "version": "0.3.0",
    "summary": "Public chain data from the Morana gateway, as listed on the explorer's /api page.",
    "description": "Read-only routes of the Morana gateway that the explorer uses, plus the two broadcast routes. Amounts are decimal strings of atoms (100000000 atoms = 1 XMOR); null means unavailable, not zero. Operations marked x-morana-availability: newer-gateway-builds-only are answered by newer gateway builds only. The gateway limits requests per client: back off on 429."
  },
  "servers": [
    {
      "url": "https://gw1.morana.network",
      "description": "Public Morana gateway (testnet)"
    }
  ],
  "tags": [
    {
      "name": "chain",
      "description": "Chain tip and gateway identity."
    },
    {
      "name": "blocks",
      "description": "Blocks and headers."
    },
    {
      "name": "transactions",
      "description": "Transactions and the latest-transactions feed."
    },
    {
      "name": "mempool",
      "description": "The node's mempool."
    },
    {
      "name": "search",
      "description": "One search box for every kind of input."
    },
    {
      "name": "addresses",
      "description": "Transparent addresses."
    },
    {
      "name": "supply",
      "description": "Supply, private pool and emission."
    },
    {
      "name": "network",
      "description": "Network parameters, pool and history series."
    },
    {
      "name": "relays",
      "description": "Relay registry and roster."
    },
    {
      "name": "names",
      "description": "MORID names."
    },
    {
      "name": "broadcast",
      "description": "Broadcasting signed transactions."
    }
  ],
  "paths": {
    "/stats/network": {
      "get": {
        "operationId": "get_stats_network",
        "tags": [
          "chain"
        ],
        "summary": "Height, index position, hashrate and shielded transactions (24h)",
        "description": "Changes every block. Gateway contract EXPLORER_API.md §2.22.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "best_height": {
                      "type": "integer"
                    },
                    "indexed_height": {
                      "type": "integer"
                    },
                    "chain_height": {
                      "type": "integer"
                    },
                    "blocks_behind": {
                      "type": "integer"
                    },
                    "chain_height_known": {
                      "type": "boolean"
                    },
                    "network_hash_ps": {
                      "type": "number"
                    },
                    "shielded_tx_24h": {
                      "type": "integer"
                    },
                    "updated_at": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/server/info": {
      "get": {
        "operationId": "get_server_info",
        "tags": [
          "chain"
        ],
        "summary": "Network, genesis and API schema",
        "description": "Also names the gateway build: build_commit and build_version (contract §2.18). Gateway contract EXPLORER_API.md §2.18.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "network": {
                      "type": "string",
                      "description": "Node's own word: main / test / regtest."
                    },
                    "network_canonical": {
                      "type": "string",
                      "description": "mainnet / testnet / regtest."
                    },
                    "bech32_hrp": {
                      "type": "string"
                    },
                    "chain_height": {
                      "type": "integer"
                    },
                    "best_height": {
                      "type": "integer"
                    },
                    "indexed_height": {
                      "type": "integer"
                    },
                    "blocks_behind": {
                      "type": "integer"
                    },
                    "best_hash": {
                      "type": "string"
                    },
                    "genesis_hash": {
                      "type": "string"
                    },
                    "backend_schema_version": {
                      "type": "integer"
                    },
                    "build_commit": {
                      "type": "string"
                    },
                    "build_version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/blocks": {
      "get": {
        "operationId": "get_explorer_blocks",
        "tags": [
          "blocks"
        ],
        "summary": "Blocks, newest first",
        "description": "limit ≤ 50; from is a block height. Gateway contract EXPLORER_API.md §2.1.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Block height to page down from; omitted — from the tip.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Page size; larger values are clamped to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "integer"
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "count": {
                      "type": "integer"
                    },
                    "next_from": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "null on the last page."
                    },
                    "blocks": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Block"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/headers": {
      "get": {
        "operationId": "get_explorer_headers",
        "tags": [
          "blocks"
        ],
        "summary": "Block headers, newest first, with the header bytes for your own KawPow check",
        "description": "limit ≤ 50; from is a block height. Gateway contract EXPLORER_API.md §2.21.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Block height to page down from; omitted — from the tip.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Page size; larger values are clamped to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "integer"
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "count": {
                      "type": "integer"
                    },
                    "next_from": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "null on the last page."
                    },
                    "headers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "height": {
                            "type": "integer"
                          },
                          "hash": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "prev_hash": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "time": {
                            "type": "integer"
                          },
                          "bits": {
                            "type": "string"
                          },
                          "header_hex": {
                            "type": "string",
                            "description": "Header bytes for your own KawPow check."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/reorgs": {
      "get": {
        "operationId": "get_explorer_reorgs",
        "tags": [
          "blocks"
        ],
        "summary": "Reorg events this gateway's node saw: fork height, depth, old and new tip, rolled-back blocks",
        "description": "limit ≤ 200; the last 1000 events are kept. Gateway contract EXPLORER_API.md §2.29.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Events, newest first; larger values are clamped to 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "events": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "detected_at": {
                            "type": "integer",
                            "description": "Unix seconds when the gateway saw the reorg."
                          },
                          "fork_height": {
                            "type": "integer",
                            "description": "First replaced height."
                          },
                          "depth": {
                            "type": "integer",
                            "description": "Blocks rolled back."
                          },
                          "old_tip_hash": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "new_tip_hash": {
                            "anyOf": [
                              {
                                "$ref": "#/components/schemas/Hash64"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "orphaned_hashes": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/Hash64"
                            },
                            "description": "Rolled-back block hashes, at most 100."
                          }
                        }
                      }
                    },
                    "source": {
                      "type": "string",
                      "description": "gateway_indexer"
                    }
                  },
                  "description": "The last 1000 reorgs this gateway's node saw; empty after a genesis reset. Gateways can differ."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/chaintips": {
      "get": {
        "operationId": "get_explorer_chaintips",
        "tags": [
          "blocks"
        ],
        "summary": "Chain tips of the gateway's node; a valid-fork tip is an orphan branch",
        "description": "no parameters. Gateway contract EXPLORER_API.md §2.30.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "height": {
                        "type": "integer"
                      },
                      "hash": {
                        "$ref": "#/components/schemas/Hash64"
                      },
                      "branchlen": {
                        "type": "integer"
                      },
                      "status": {
                        "type": "string",
                        "description": "active — main chain; valid-fork — an orphan branch; valid-headers, headers-only, invalid."
                      }
                    }
                  },
                  "description": "getchaintips of the gateway's node, allow-listed fields."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/block/{height}": {
      "get": {
        "operationId": "get_block_height",
        "tags": [
          "blocks"
        ],
        "summary": "One block by height",
        "description": "A block hash goes to /block/hash/{hash}. Gateway contract EXPLORER_API.md §2.23.",
        "parameters": [
          {
            "name": "height",
            "in": "path",
            "required": true,
            "description": "Block height. A hash is refused here (400): use /block/hash/{hash}.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Block"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/block/hash/{hash}": {
      "get": {
        "operationId": "get_block_hash_hash",
        "tags": [
          "blocks"
        ],
        "summary": "One block by hash",
        "description": "64 hexadecimal characters. Gateway contract EXPLORER_API.md §2.24.",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "required": true,
            "description": "Block hash.",
            "schema": {
              "$ref": "#/components/schemas/Hash64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Block"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/tx/{txid}": {
      "get": {
        "operationId": "get_tx_txid",
        "tags": [
          "transactions"
        ],
        "summary": "A confirmed transaction; the shielded part as counts only, never amounts",
        "description": "Unconfirmed: /explorer/mempool/{txid}. Gateway contract EXPLORER_API.md §2.7.",
        "parameters": [
          {
            "name": "txid",
            "in": "path",
            "required": true,
            "description": "Transaction ID.",
            "schema": {
              "$ref": "#/components/schemas/Hash64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/tx/{txid}/detail": {
      "get": {
        "operationId": "get_explorer_tx_txid_detail",
        "tags": [
          "transactions"
        ],
        "summary": "Transaction breakdown: scripts, witnesses and previous outputs; raw bytes only for a fully transparent transaction",
        "description": "An unknown transaction answers 502, not 404; use /explorer/search. Gateway contract EXPLORER_API.md §2.19.",
        "parameters": [
          {
            "name": "txid",
            "in": "path",
            "required": true,
            "description": "Transaction ID.",
            "schema": {
              "$ref": "#/components/schemas/Hash64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txid": {
                      "$ref": "#/components/schemas/Hash64"
                    },
                    "block_hash": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "height": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "confirmations": {
                      "type": "integer"
                    },
                    "size": {
                      "type": "integer"
                    },
                    "vsize": {
                      "type": "integer"
                    },
                    "weight": {
                      "type": "integer"
                    },
                    "version": {
                      "type": "integer"
                    },
                    "locktime": {
                      "type": "integer"
                    },
                    "has_shielded": {
                      "type": "boolean"
                    },
                    "shielded_inputs": {
                      "type": "integer"
                    },
                    "shielded_outputs": {
                      "type": "integer"
                    },
                    "vin": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "prev_txid": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "vout": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "sequence": {
                            "type": "integer"
                          },
                          "script_sig_hex": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "script_sig_asm": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "witness": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "prevout": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "value_sat": {
                                "$ref": "#/components/schemas/Atoms"
                              },
                              "script_pubkey_hex": {
                                "type": "string"
                              },
                              "script_pubkey_asm": {
                                "type": "string"
                              },
                              "address": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          },
                          "coinbase_hex": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "vout": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "n": {
                            "type": "integer"
                          },
                          "value_sat": {
                            "$ref": "#/components/schemas/Atoms"
                          },
                          "script_pubkey_hex": {
                            "type": "string"
                          },
                          "script_pubkey_asm": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "address": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "raw_hex": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Only for a fully transparent transaction."
                    },
                    "raw_hex_withheld": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "shielded",
                        "too_large",
                        null
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/mempool": {
      "get": {
        "operationId": "get_explorer_mempool",
        "tags": [
          "mempool"
        ],
        "summary": "Transaction IDs waiting in the node's mempool",
        "description": "Changes every few seconds. Gateway contract EXPLORER_API.md §2.3.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "txids": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Hash64"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/mempool/fees": {
      "get": {
        "operationId": "get_explorer_mempool_fees",
        "tags": [
          "mempool"
        ],
        "summary": "Mempool fee-rate histogram and low / medium / high estimates; aggregates only, no transaction IDs",
        "description": "One snapshot every 10 seconds. Gateway contract EXPLORER_API.md §2.20.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tip_height": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "tx_count": {
                      "type": "integer"
                    },
                    "vsize_total": {
                      "type": "integer"
                    },
                    "minrelay_atoms_per_vb": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "buckets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "min": {
                            "type": "number"
                          },
                          "max": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "tx_count": {
                            "type": "integer"
                          },
                          "vsize": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "estimates": {
                      "type": "object",
                      "properties": {
                        "low": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "medium": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "high": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "description": "Atoms per vbyte; null when the mempool is empty."
                    },
                    "updated_at": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/mempool/{txid}": {
      "get": {
        "operationId": "get_explorer_mempool_txid",
        "tags": [
          "mempool"
        ],
        "summary": "One unconfirmed transaction; if it is not in the mempool, an absence answer with evidence",
        "description": "Two answer forms: the transaction, or in_mempool: false. Gateway contract EXPLORER_API.md §2.4.",
        "parameters": [
          {
            "name": "txid",
            "in": "path",
            "required": true,
            "description": "Transaction ID.",
            "schema": {
              "$ref": "#/components/schemas/Hash64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/Transaction"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "txid": {
                          "$ref": "#/components/schemas/Hash64"
                        },
                        "in_mempool": {
                          "const": false
                        },
                        "confirmed": {
                          "type": "boolean"
                        },
                        "height": {
                          "type": "integer"
                        },
                        "block_hash": {
                          "type": "string"
                        },
                        "mempool_size": {
                          "type": "integer"
                        },
                        "completeness": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "description": "Absence answer with evidence."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/search": {
      "get": {
        "operationId": "get_explorer_search",
        "tags": [
          "search"
        ],
        "summary": "Search by height, block hash, transaction ID, address or name",
        "description": "Returns the kind found and the route to open. Gateway contract EXPLORER_API.md §2.5.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Height, block hash, transaction ID, address, MORID name or relay ID.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "found": {
                      "type": "boolean",
                      "description": "false is not an error (200)."
                    },
                    "where": {
                      "type": "string",
                      "description": "Only for kind tx: block or mempool."
                    },
                    "route": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/address/{address}": {
      "get": {
        "operationId": "get_address_address",
        "tags": [
          "addresses"
        ],
        "summary": "Balance and unspent outputs of a transparent address",
        "description": "Private addresses are refused (400). Gateway contract EXPLORER_API.md §2.13.",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "description": "A transparent address of this network; private addresses are refused (400).",
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string"
                    },
                    "balance_sat": {
                      "$ref": "#/components/schemas/Atoms"
                    },
                    "utxo_count": {
                      "type": "integer"
                    },
                    "utxos": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "txid": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "vout": {
                            "type": "integer"
                          },
                          "valueSat": {
                            "$ref": "#/components/schemas/Atoms"
                          },
                          "height": {
                            "type": "integer"
                          },
                          "blockHash": {
                            "type": "string"
                          },
                          "confirmations": {
                            "type": "integer"
                          },
                          "coinbase": {
                            "type": "boolean"
                          },
                          "spent": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/address/{address}/history": {
      "get": {
        "operationId": "get_explorer_address_address_history",
        "tags": [
          "addresses"
        ],
        "summary": "Transparent history of an address, newest first, with index coverage",
        "description": "Use the previous page’s next_from string as from, unchanged. Omit from for the first page. A numeric height returns 400. Gateway contract EXPLORER_API.md §2.2.",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "description": "A transparent address of this network; private addresses are refused (400).",
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Opaque cursor: next_from of the previous page, passed back unchanged to the same gateway. Omitted — the newest page. A block height is refused (400).",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Page size; larger values are clamped to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string"
                    },
                    "from": {
                      "type": "integer",
                      "description": "Height of the first row, for display only; -1 on an empty page. Not a continuation parameter."
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "count": {
                      "type": "integer"
                    },
                    "next_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Opaque cursor for the next page; null on the last page. Valid only on the gateway that issued it."
                    },
                    "history": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "txid": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "height": {
                            "type": "integer"
                          },
                          "blockHash": {
                            "type": "string"
                          },
                          "directionHint": {
                            "type": "string"
                          },
                          "valueSat": {
                            "$ref": "#/components/schemas/Atoms"
                          }
                        }
                      }
                    },
                    "completeness": {
                      "$ref": "#/components/schemas/IndexCoverage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/supply": {
      "get": {
        "operationId": "get_explorer_supply",
        "tags": [
          "supply"
        ],
        "summary": "Transparent, private and total supply with the node's schedule check",
        "description": "Amounts are atom strings. Gateway contract EXPLORER_API.md §2.6.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "height": {
                      "type": "integer"
                    },
                    "transparent_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "shielded_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "total_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "audit": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "trust": {
                      "type": "string"
                    },
                    "resolve_via": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/private": {
      "get": {
        "operationId": "get_explorer_private",
        "tags": [
          "supply"
        ],
        "summary": "Sapling pool and transaction share",
        "description": "1–10,080 blocks; default 1,440. Gateway contract EXPLORER_API.md §2.12.1.",
        "parameters": [
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Window in blocks.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10080,
              "default": 1440
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "height": {
                      "type": "integer"
                    },
                    "pool_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pool_source": {
                      "type": "string"
                    },
                    "pool_reason": {
                      "type": "string"
                    },
                    "node_status": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": true
                    },
                    "node_status_reason": {
                      "type": "string"
                    },
                    "window": {
                      "type": "object",
                      "properties": {
                        "window_blocks": {
                          "type": "integer"
                        },
                        "from_height": {
                          "type": "integer"
                        },
                        "to_height": {
                          "type": "integer"
                        },
                        "txs_total": {
                          "type": "integer"
                        },
                        "txs_with_shielded_outputs": {
                          "type": "integer"
                        },
                        "share_bp": {
                          "type": "integer"
                        },
                        "shielded_index_tip": {
                          "type": "integer"
                        },
                        "transparent_index_tip": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/emission": {
      "get": {
        "operationId": "get_explorer_emission",
        "tags": [
          "supply"
        ],
        "summary": "Next-block subsidy, allocations and MDEV",
        "description": "Cached here for 20 seconds. Gateway contract EXPLORER_API.md §2.12.2.",
        "parameters": [
          {
            "name": "height",
            "in": "query",
            "required": false,
            "description": "Block height; omitted — the block being built.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "split": {
                      "type": "object",
                      "properties": {
                        "available": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "height": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "subsidy_sat": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Atoms"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "dev_reward_sat": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Atoms"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "relay_reward_cap_sat": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Atoms"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "miner_sat": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Atoms"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "relay_reward_is_ceiling": {
                          "type": "boolean"
                        }
                      }
                    },
                    "dev_recipient": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "schedule": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "schedule_available": {
                      "type": "boolean"
                    },
                    "schedule_reason": {
                      "type": "string"
                    },
                    "schedule_note": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/dev-recipient": {
      "get": {
        "operationId": "get_explorer_dev_recipient",
        "tags": [
          "supply"
        ],
        "summary": "Current developer-share recipient and scheduled recipient change (MDEV)",
        "description": "no parameters. Gateway contract EXPLORER_API.md §2.32.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "height": {
                      "type": "integer",
                      "description": "Node tip; every field is about this block."
                    },
                    "active": {
                      "type": "object",
                      "properties": {
                        "script_hex": {
                          "type": "string"
                        },
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "null — the script has no standard address."
                        }
                      }
                    },
                    "pending": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "script_hex": {
                          "type": "string"
                        },
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "effective_height": {
                          "type": "integer",
                          "description": "First height whose coinbase pays the new script; always > height."
                        },
                        "recorded_height": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "txid": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/Hash64"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "record_located": {
                          "type": "boolean",
                          "description": "false — the gateway did not find the MDEV record in its scan window, not \"no record\"."
                        }
                      },
                      "description": "Scheduled rotation; null — none scheduled or already in effect."
                    },
                    "share_percent": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "Developer share of the block subsidy, whole percent by the node's rule."
                    },
                    "source": {
                      "type": "string",
                      "description": "node:getdevrecipient"
                    },
                    "share_source": {
                      "type": "string",
                      "description": "node:getemissionschedule"
                    },
                    "dev_reward_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "subsidy_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "rotation_rule_active": {
                      "type": "boolean"
                    },
                    "delay_blocks": {
                      "type": "integer",
                      "description": "The node's MDEV delay (nMdevDelay)."
                    },
                    "trust": {
                      "type": "string",
                      "description": "unverified"
                    }
                  },
                  "description": "Read from the node on every request. 502 when the node does not name the recipient — never a 200 with an invented one."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/pool": {
      "get": {
        "operationId": "get_explorer_pool",
        "tags": [
          "network"
        ],
        "summary": "Public pool statistics",
        "description": "Missing configuration → 503. Gateway contract EXPLORER_API.md §2.12.5.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "source": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "pool": {
                      "type": "object",
                      "properties": {
                        "pool_id": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "hashrate_hps": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "miners": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "workers": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "blocks_found": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "fee_percent": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "last_block_height": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "minimum_payment_xmor": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "payment_scheme": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "stratum_ports": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/txs": {
      "get": {
        "operationId": "get_explorer_txs",
        "tags": [
          "transactions"
        ],
        "summary": "Latest transactions and record types",
        "description": "limit ≤ 50; next_cursor continues the snapshot. Gateway contract EXPLORER_API.md §2.12.3.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Page size; larger values are clamped to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "next_cursor of the previous page, passed unchanged.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "txid": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "height": {
                            "type": "integer"
                          },
                          "time": {
                            "type": "integer"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "records": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "shielded_spends": {
                            "type": "integer"
                          },
                          "shielded_outputs": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "next_cursor": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "anchor_height": {
                      "type": "integer"
                    },
                    "anchor_block_hash": {
                      "type": "string"
                    },
                    "anchor_age_blocks": {
                      "type": "integer"
                    },
                    "complete": {
                      "type": "boolean"
                    },
                    "completeness": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/explorer/stats/timeseries": {
      "get": {
        "operationId": "get_explorer_stats_timeseries",
        "tags": [
          "network"
        ],
        "summary": "Network history",
        "description": "Default 60; node metrics ≤ 100; index metrics ≤ 500. Gateway contract EXPLORER_API.md §2.12.4.",
        "parameters": [
          {
            "name": "metric",
            "in": "query",
            "required": true,
            "description": "Series name.",
            "schema": {
              "type": "string",
              "enum": [
                "hashrate",
                "difficulty",
                "txs_per_block",
                "shielded_outputs",
                "shielded_spends",
                "name_records",
                "relay_payout_epochs"
              ]
            }
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "description": "Points; node metrics (hashrate, difficulty) at most 100, index metrics at most 500.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 60
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "metric": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "unit": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "max_points": {
                      "type": "integer"
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "index_floor": {
                      "type": "integer"
                    },
                    "index_tip": {
                      "type": "integer"
                    },
                    "series": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "x": {
                            "type": "integer",
                            "description": "Height; for relay_payout_epochs — epoch index."
                          },
                          "value": {
                            "type": "number"
                          },
                          "time": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/params": {
      "get": {
        "operationId": "get_network_params",
        "tags": [
          "network"
        ],
        "summary": "Network parameters: relay fee floor, private action fee, relay stake S(E), address prefixes, coinbase maturity",
        "description": "null means not measured, never zero. Gateway contract EXPLORER_API.md §2.10.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "activation_height": {
                      "type": "integer"
                    },
                    "tip_height": {
                      "type": "integer"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "min_fee_find_sat": {
                      "$ref": "#/components/schemas/Atoms"
                    },
                    "min_fee_ghost_sat": {
                      "$ref": "#/components/schemas/Atoms"
                    },
                    "coinbase_maturity": {
                      "type": "integer"
                    },
                    "relay_min_stake_effective_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "relay_min_stake_floor_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "minrelaytxfee_sat_per_kvb": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "shielded_fee_per_action_sat": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "bech32_hrp": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "bech32_private_hrp": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "bech32_ua_hrp": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "description": "null means not measured, never zero; *_note fields explain why."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/relays": {
      "get": {
        "operationId": "get_network_relays",
        "tags": [
          "relays"
        ],
        "summary": "The on-chain relay registry at the tip",
        "description": "Amounts are atom strings. Gateway contract EXPLORER_API.md §2.25.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "height": {
                      "type": "integer"
                    },
                    "relay_reward_active": {
                      "type": "boolean"
                    },
                    "next_payee": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "relays": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "relay_id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "payout_address": {
                            "type": "string"
                          },
                          "stake": {
                            "type": "object",
                            "properties": {
                              "txid": {
                                "$ref": "#/components/schemas/Hash64"
                              },
                              "vout": {
                                "type": "integer"
                              },
                              "amount_sat": {
                                "$ref": "#/components/schemas/Atoms"
                              }
                            }
                          },
                          "register_height": {
                            "type": "integer"
                          },
                          "deregister_height": {
                            "type": "integer"
                          },
                          "last_paid_height": {
                            "type": "integer"
                          },
                          "income_epoch_sat": {
                            "$ref": "#/components/schemas/Atoms"
                          },
                          "income_epoch_index": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/relay-payouts": {
      "get": {
        "operationId": "get_network_relay_payouts",
        "tags": [
          "relays"
        ],
        "summary": "Relay payouts to one payout address",
        "description": "The address must be a transparent address of this network. Gateway contract EXPLORER_API.md §2.13.",
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": true,
            "description": "A transparent address of this network; private addresses are refused (400).",
            "schema": {
              "type": "string",
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": "string"
                    },
                    "total_paid_sat": {
                      "$ref": "#/components/schemas/Atoms"
                    },
                    "payouts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "height": {
                            "type": "integer"
                          },
                          "amount_sat": {
                            "$ref": "#/components/schemas/Atoms"
                          },
                          "txid": {
                            "$ref": "#/components/schemas/Hash64"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/roster/snapshot": {
      "get": {
        "operationId": "get_network_roster_snapshot",
        "tags": [
          "relays"
        ],
        "summary": "The relay roster fixed at the start of the epoch",
        "description": "Differs from the registry at the tip by design. Gateway contract EXPLORER_API.md §2.26.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "active": {
                      "type": "boolean"
                    },
                    "height": {
                      "type": "integer"
                    },
                    "boundary": {
                      "type": "boolean"
                    },
                    "snapshot_height": {
                      "type": "integer"
                    },
                    "roster_epoch": {
                      "type": "integer"
                    },
                    "member_count": {
                      "type": "integer"
                    },
                    "merkle_root": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/roster/v2": {
      "get": {
        "operationId": "get_network_roster_v2",
        "tags": [
          "relays"
        ],
        "summary": "Roster with placement and MREP anchors",
        "description": "Verify the root against the chain. Gateway contract EXPLORER_API.md §2.11.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "leaf_schema": {
                      "type": "string"
                    },
                    "snapshot_height": {
                      "type": "integer"
                    },
                    "members": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "relay_id": {
                            "type": "string"
                          },
                          "placement_id": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "placement_source": {
                            "type": "string"
                          },
                          "descriptor_hash": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "mrep_anchor": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "seq": {
                                "type": "integer"
                              },
                              "valid_until_height": {
                                "type": "integer"
                              },
                              "expired": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/network/roster/descriptors": {
      "get": {
        "operationId": "get_network_roster_descriptors",
        "tags": [
          "relays"
        ],
        "summary": "Signed relay descriptors, byte for byte, with the gateway's per-descriptor signature check",
        "description": "503 when there is nothing to check against, never an empty list. Gateway contract EXPLORER_API.md §2.11.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "descriptors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "relay_id": {
                            "type": "string"
                          },
                          "version": {
                            "type": "integer"
                          },
                          "seq": {
                            "type": "integer"
                          },
                          "valid_until_height": {
                            "type": "integer"
                          },
                          "anchor_hash": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "mrep_expired": {
                            "type": "boolean"
                          },
                          "verified_by_gateway": {
                            "type": "boolean"
                          },
                          "signature_check": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "verified_count": {
                      "type": "integer"
                    },
                    "verified_by_gateway": {
                      "type": "boolean",
                      "description": "About the answer as a whole; stays false."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/morid/name/{name}": {
      "get": {
        "operationId": "get_morid_name_name",
        "tags": [
          "names"
        ],
        "summary": "A MORID name record and the unified address its owner declared",
        "description": "Absence is not proof; see completeness. Gateway contract EXPLORER_API.md §2.8.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "MORID name.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "found": {
                      "type": "boolean"
                    },
                    "reveal": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": true
                    },
                    "indexed_height": {
                      "type": "integer"
                    },
                    "last_registration_height": {
                      "type": "integer"
                    },
                    "confirmations": {
                      "type": "integer"
                    },
                    "proves": {
                      "type": "string"
                    },
                    "does_not_prove": {
                      "type": "string"
                    },
                    "completeness": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "unified_address": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": true
                    },
                    "expiry_height": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "renewal_count": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/morid/name/{name}/proof": {
      "get": {
        "operationId": "get_morid_name_name_proof",
        "tags": [
          "names"
        ],
        "summary": "MNST proof with name term and renewals",
        "description": "Verify the proof against block commitments. Gateway contract EXPLORER_API.md §2.27.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "MORID name.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": false,
            "description": "Prove as of this block height.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "with",
            "in": "query",
            "required": false,
            "description": "Also link the MNST commitment to the block's coinbase.",
            "schema": {
              "type": "string",
              "enum": [
                "coinbase"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "proof": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "header": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "height": {
                          "type": "integer"
                        },
                        "block_hash": {
                          "type": "string"
                        },
                        "header_hex": {
                          "type": "string"
                        }
                      }
                    },
                    "header_unavailable_reason": {
                      "type": "string"
                    },
                    "header_chain_query": {
                      "type": "string"
                    },
                    "coinbase_link": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "client_must_verify": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/registrations/name/{name}": {
      "get": {
        "operationId": "get_registrations_name_name",
        "tags": [
          "names"
        ],
        "summary": "Registration history of a name",
        "description": "trust: unverified; truncated lists are marked. Gateway contract EXPLORER_API.md §2.28.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "MORID name.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "key": {
                      "type": "string"
                    },
                    "registrations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "txid": {
                            "$ref": "#/components/schemas/Hash64"
                          },
                          "height": {
                            "type": "integer"
                          },
                          "owner": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "truncated": {
                      "type": "boolean"
                    },
                    "trust": {
                      "type": "string"
                    },
                    "resolve_via": {
                      "type": "string"
                    },
                    "completeness": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/morid/ladder": {
      "get": {
        "operationId": "get_morid_ladder",
        "tags": [
          "names"
        ],
        "summary": "Price ladder of a free name by length, with the demand multiplier",
        "description": "No parameters: the name you are pricing is never sent. Gateway contract EXPLORER_API.md §2.17.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "price_height": {
                      "type": "integer"
                    },
                    "current_height": {
                      "type": "integer"
                    },
                    "price_units": {
                      "type": "string"
                    },
                    "era_base_sat": {
                      "$ref": "#/components/schemas/Atoms"
                    },
                    "ladder": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true
                      }
                    },
                    "fee_split_bp": {
                      "type": "object",
                      "properties": {
                        "miner": {
                          "type": "integer"
                        },
                        "relay_pool": {
                          "type": "integer"
                        }
                      }
                    },
                    "term_blocks": {
                      "type": "integer"
                    },
                    "grace_blocks": {
                      "type": "integer"
                    },
                    "auction_blocks": {
                      "type": "integer"
                    },
                    "identity_active": {
                      "type": "boolean"
                    },
                    "source": {
                      "type": "string"
                    },
                    "does_not_prove": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/morid/quote": {
      "get": {
        "operationId": "get_morid_quote",
        "tags": [
          "names"
        ],
        "summary": "Price of a registered name (owned, in grace or in auction): renewal and buy-back",
        "description": "Free names answer 404 without a price; use the ladder. Gateway contract EXPLORER_API.md §2.16.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "description": "MORID name.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "quote": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "height": {
                          "type": "integer"
                        },
                        "length": {
                          "type": "integer"
                        },
                        "tier": {
                          "type": "integer"
                        },
                        "state": {
                          "type": "string"
                        },
                        "era_base_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "tier_price_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "price_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "renewal_price_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "miner_share_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "relay_pool_share_sat": {
                          "$ref": "#/components/schemas/Atoms"
                        },
                        "term_blocks": {
                          "type": "integer"
                        },
                        "grace_blocks": {
                          "type": "integer"
                        },
                        "auction_blocks": {
                          "type": "integer"
                        },
                        "expiry_height": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "quote_note": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "does_not_prove": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/tx/send": {
      "post": {
        "operationId": "post_tx_send",
        "tags": [
          "broadcast"
        ],
        "summary": "Broadcast one signed transaction: {\"raw_tx\": \"<hex>\"}",
        "description": "Only signed hex; key material is refused (400). Gateway contract EXPLORER_API.md §2.9.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "raw_tx"
                ],
                "properties": {
                  "raw_tx": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]+$",
                    "description": "One signed transaction, hex."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "txid": {
                      "$ref": "#/components/schemas/Hash64"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    },
    "/tx/sendpackage": {
      "post": {
        "operationId": "post_tx_sendpackage",
        "tags": [
          "broadcast"
        ],
        "summary": "Broadcast a parent and child together (fee bumping); the node's verdict is returned as is",
        "description": "≤ 25 transactions, ≤ 404,000 bytes; rejected → 422. Gateway contract EXPLORER_API.md §2.9.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 25,
                    "items": {
                      "type": "string",
                      "pattern": "^[0-9a-fA-F]+$"
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "raw_txs"
                    ],
                    "properties": {
                      "raw_txs": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 25,
                        "items": {
                          "type": "string",
                          "pattern": "^[0-9a-fA-F]+$"
                        }
                      }
                    }
                  }
                ],
                "description": "Signed transactions in topological order, child last; at most 25 and 404,000 bytes in total."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "package_msg": {
                      "type": "string",
                      "description": "\"success\" when the node accepted the whole package."
                    },
                    "tx-results": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "description": "The node's verdict, byte for byte; 422 carries the same body when rejected."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "422": {
            "description": "The node rejected the package; the body is its verdict.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "package_msg": {
                      "type": "string",
                      "description": "\"success\" when the node accepted the whole package."
                    },
                    "tx-results": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "description": "The node's verdict, byte for byte; 422 carries the same body when rejected."
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Atoms": {
        "type": "string",
        "pattern": "^-?[0-9]+$",
        "description": "Amount in atoms as a decimal integer string (100000000 atoms = 1 XMOR). Never a JSON number: keep it as a string or use an arbitrary-precision integer. null elsewhere means unavailable, not zero (contract §0.1)."
      },
      "Hash64": {
        "type": "string",
        "pattern": "^[0-9a-f]{64}$",
        "description": "32 bytes as 64 lowercase hexadecimal characters."
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "What was wrong with the request or what is unavailable."
          }
        },
        "description": "Error body of the gateway."
      },
      "Block": {
        "type": "object",
        "properties": {
          "height": {
            "type": "integer"
          },
          "hash": {
            "$ref": "#/components/schemas/Hash64"
          },
          "prev_hash": {
            "type": "string"
          },
          "time": {
            "type": "integer",
            "description": "Unix seconds."
          },
          "tx_count": {
            "type": "integer"
          },
          "coinbase_txid": {
            "$ref": "#/components/schemas/Hash64"
          },
          "difficulty": {
            "type": "number"
          },
          "bits": {
            "type": "string"
          },
          "nonce": {
            "type": "string",
            "description": "A string, not a number."
          },
          "size": {
            "type": "integer"
          },
          "merkle_root": {
            "type": "string"
          },
          "mined_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MinedBy"
              },
              {
                "type": "null",
                "description": "The gateway does not know the block's pool (no pool list and no project tag matched, or the index is behind)."
              }
            ]
          },
          "msnr": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MsnrRecord"
              },
              {
                "type": "null",
                "description": "The node names no MSNR record in this block (genesis, or the rule is not active). Older gateway builds omit the field; its absence is not \"no record\"."
              }
            ]
          }
        }
      },
      "MsnrRecord": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "const": 1
          },
          "note_root": {
            "$ref": "#/components/schemas/Hash64",
            "description": "Private note tree root, in the record's byte order (spec order, not RPC order; do not reverse)."
          },
          "compact_digest": {
            "$ref": "#/components/schemas/Hash64",
            "description": "Digest of the block's compact private data, in the record's byte order."
          }
        },
        "description": "MSNR record v1 from the block's coinbase (contract §2.33). An untrusted indexer's claim: check it against the coinbase output via /tx/inclusion/{coinbase_txid}."
      },
      "MinedBy": {
        "type": "object",
        "properties": {
          "pool": {
            "type": [
              "string",
              "null"
            ],
            "description": "Project pool that found the block: morana-eu, morana-us; null — not identified (a miner outside the project pools is normal)."
          },
          "method": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "coinbase_address",
              "coinbase_tag",
              null
            ],
            "description": "How the gateway matched the pool; null when not identified."
          }
        },
        "description": "Which project pool found the block. Newer gateway builds only: older builds omit the field, and its absence is not \"not identified\". The field itself may be null — the gateway does not know the pool; the explorer shows that as \"not identified\" too."
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "txid": {
            "$ref": "#/components/schemas/Hash64"
          },
          "block_hash": {
            "type": "string",
            "description": "Empty string while the transaction is not in a block."
          },
          "height": {
            "type": "integer",
            "description": "-1 while unconfirmed; 0 is the genesis height."
          },
          "time": {
            "type": "integer"
          },
          "confirmations": {
            "type": "integer"
          },
          "has_shielded": {
            "type": "boolean"
          },
          "shielded_inputs": {
            "type": "integer",
            "description": "Count only."
          },
          "shielded_outputs": {
            "type": "integer",
            "description": "Count only."
          },
          "vin": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "txid": {
                  "type": "string"
                },
                "vout": {
                  "type": "integer"
                },
                "coinbase": {
                  "type": "string"
                }
              }
            }
          },
          "vout": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "n": {
                  "type": "integer"
                },
                "value_sat": {
                  "$ref": "#/components/schemas/Atoms"
                },
                "address": {
                  "type": "string"
                },
                "script_hex": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": "Transparent part in full; the shielded part as counts only, never amounts or addresses."
      },
      "IndexCoverage": {
        "type": "object",
        "properties": {
          "answer_type": {
            "type": "string"
          },
          "index_read_through_height": {
            "type": "integer"
          },
          "index_floor_height": {
            "type": "integer"
          },
          "node_tip_height": {
            "type": "integer",
            "description": "-1 when the node did not answer."
          }
        },
        "description": "What the index answer covers — and therefore what it does not."
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid input.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "The request budget is exhausted; retry later.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "BadGateway": {
        "description": "The upstream (node) answer is unavailable.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unavailable": {
        "description": "The index, snapshot or configured source cannot serve the request now.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  }
}
