{
  "components": {
    "headers": {
      "X-Quota-Daily-Remaining": {
        "description": "Units left today (UTC), when the plan has a daily quota.",
        "schema": {
          "type": "string"
        }
      },
      "X-Quota-Monthly-Remaining": {
        "description": "Units left this month (UTC), when the plan has a monthly quota.",
        "schema": {
          "type": "string"
        }
      },
      "X-RateLimit-Limit": {
        "description": "Burst size of your plan.",
        "schema": {
          "type": "string"
        }
      },
      "X-RateLimit-Remaining": {
        "description": "Requests you can send right now.",
        "schema": {
          "type": "string"
        }
      },
      "X-RateLimit-Reset": {
        "description": "Seconds until the burst is fully refilled (not a timestamp).",
        "schema": {
          "type": "string"
        }
      },
      "X-Request-Id": {
        "description": "A unique id for the request; quote it to support.",
        "schema": {
          "type": "string"
        }
      }
    },
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "BAD_REQUEST: malformed height, hash, address or parameter.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "Forbidden": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "KEY_REVOKED, ACCOUNT_SUSPENDED or CHAIN_NOT_IN_PLAN.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "NotFound": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "NOT_FOUND (no such block, transaction or address — charged, it is an answer), CHAIN_NOT_FOUND, ENDPOINT_NOT_FOUND, or NOT_ON_THIS_CHAIN (this chain's family has no such thing).",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "TooManyRequests": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "RATE_LIMITED, DAILY_QUOTA_EXCEEDED, MONTHLY_QUOTA_EXCEEDED, KEY_DAILY_QUOTA_EXCEEDED, TOO_MANY_CONCURRENT or TOO_MANY_INVALID_KEYS; Retry-After says how long to wait.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "Unauthorized": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "MISSING_API_KEY or INVALID_API_KEY.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "Unavailable": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "SERVICE_UNAVAILABLE or GATEWAY_BUSY: retry after Retry-After seconds.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      },
      "Upstream": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "UPSTREAM_ERROR or UPSTREAM_TIMEOUT: our side; retry shortly. Not charged unless the call ran past the time limit.",
        "headers": {
          "Retry-After": {
            "description": "Seconds to wait (429 and 503).",
            "schema": {
              "type": "integer"
            }
          },
          "X-Request-Id": {
            "$ref": "#/components/headers/X-Request-Id"
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "example": {
          "error": {
            "message": "transaction not found",
            "reason": "NOT_FOUND"
          }
        },
        "properties": {
          "error": {
            "properties": {
              "message": {
                "type": "string"
              },
              "reason": {
                "description": "A stable code, for example BAD_REQUEST, MISSING_API_KEY, INVALID_API_KEY, KEY_REVOKED, ACCOUNT_SUSPENDED, CHAIN_NOT_IN_PLAN, NOT_FOUND, CHAIN_NOT_FOUND, ENDPOINT_NOT_FOUND, NOT_ON_THIS_CHAIN, RATE_LIMITED, DAILY_QUOTA_EXCEEDED, MONTHLY_QUOTA_EXCEEDED, KEY_DAILY_QUOTA_EXCEEDED, TOO_MANY_CONCURRENT, TOO_MANY_INVALID_KEYS, GATEWAY_BUSY, UPSTREAM_ERROR, SERVICE_UNAVAILABLE, UPSTREAM_TIMEOUT.",
                "type": "string"
              }
            },
            "required": [
              "reason",
              "message"
            ],
            "type": "object"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyHeader": {
        "description": "Your Olenza API key (olz_…). Keys are never accepted in the URL.",
        "in": "header",
        "name": "X-API-Key",
        "type": "apiKey"
      },
      "Bearer": {
        "description": "The same key as `Authorization: Bearer olz_…`.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "externalDocs": {
    "description": "Olenza documentation (Explorer tab)",
    "url": "https://olenza.io/docs"
  },
  "info": {
    "contact": {
      "email": "support@olenza.io",
      "name": "Olenza support",
      "url": "https://olenza.io/docs"
    },
    "description": "Blocks, transactions and addresses for Bitcoin, Ethereum, Litecoin, Dogecoin, Bitcoin Cash, eCash, Zcash, Decred and Monero. Every chain shares the envelope and /status; transactions follow the chain's own model, named by `family` in /status (utxo, account, ring). Amounts are strings in the coin's smallest unit (divide by 10^decimals from /status). Every call is one unit against the Explorer plan's daily and monthly allowance; 5xx answers the explorer fails to give are not charged. Get a key at https://account.olenza.io/signup (free plan available); plans: https://olenza.io/pricing.",
    "summary": "Blocks, transactions and addresses as JSON, from Olenza's own indexes.",
    "termsOfService": "https://olenza.io/terms",
    "title": "Olenza Explorer API",
    "version": "1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/{chain}/address/{address}": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): Balance, total received and sent, transaction count.\n\n**account** chains (eth): Balance in wei, nonce, and whether the address holds code.",
        "operationId": "address",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth"
              ],
              "type": "string"
            }
          },
          {
            "description": "An address in the chain's own format.",
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Balance, total received and sent, transaction count."
      }
    },
    "/{chain}/address/{address}/txs": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): An address's transactions, newest first.\n\n**account** chains (eth): An address's transactions, newest first. Carries `coverage`: what the index has actually seen.",
        "operationId": "addressTxs",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth"
              ],
              "type": "string"
            }
          },
          {
            "description": "An address in the chain's own format.",
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "utxo: page number, from 1 (default 1)",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "utxo: 1 to 50 (default 25)",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "account: block height to continue from (from next_cursor); default: the tip",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "account: 1 to 50 (default 25)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "An address's transactions, newest first."
      }
    },
    "/{chain}/address/{address}/utxo": {
      "get": {
        "description": "Unspent outputs of an address — at most 1000, the largest first when there are more; count says how many there are.",
        "operationId": "addressUtxo",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr"
              ],
              "type": "string"
            }
          },
          {
            "description": "An address in the chain's own format.",
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Unspent outputs of an address — at most 1000, the largest first when there are more; count says how many there are."
      }
    },
    "/{chain}/block/{block}": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): One block's header and transaction count.\n\n**account** chains (eth): One block's header and transaction count.\n\n**ring** chains (xmr): One block's header and transaction count.",
        "operationId": "block",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "Block height (decimal) or block hash.",
            "in": "path",
            "name": "block",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "One block's header and transaction count."
      }
    },
    "/{chain}/block/{block}/txs": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): A block's transactions, in block order.\n\n**account** chains (eth): A block's transactions with their receipts.\n\n**ring** chains (xmr): A block's transactions.",
        "operationId": "blockTxs",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "Block height (decimal) or block hash.",
            "in": "path",
            "name": "block",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "utxo: page number, from 1 (default 1); ring: page number, from 1 (default 1)",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "utxo: 1 to 50 (default 25); ring: 1 to 50 (default 25)",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "account: block height to continue from (from next_cursor); default: the tip",
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "account: 1 to 50 (default 25)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "A block's transactions, in block order."
      }
    },
    "/{chain}/blocks": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): Latest blocks, newest first.\n\n**account** chains (eth): Latest blocks, newest first.\n\n**ring** chains (xmr): Latest blocks, newest first.",
        "operationId": "blocks",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "utxo: 1 to 25 (default 10); account: 1 to 25 (default 10); ring: 1 to 25 (default 10)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "utxo: height to start from (default: the tip); account: height to start from (default: the tip); ring: height to start from (default: the tip)",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Latest blocks, newest first."
      }
    },
    "/{chain}/contract/{address}": {
      "get": {
        "description": "Who created a contract, and in which transaction.",
        "operationId": "contract",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "eth"
              ],
              "type": "string"
            }
          },
          {
            "description": "An address in the chain's own format.",
            "in": "path",
            "name": "address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Who created a contract, and in which transaction."
      }
    },
    "/{chain}/gas": {
      "get": {
        "description": "Current base fee and priority-fee suggestions.",
        "operationId": "gas",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "eth"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Current base fee and priority-fee suggestions."
      }
    },
    "/{chain}/mempool": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): Transactions waiting to be mined.\n\n**account** chains (eth): Pending transactions.\n\n**ring** chains (xmr): Transactions waiting to be mined.",
        "operationId": "mempool",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "account: 1 to 50 (default 25)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ring: page number, from 1 (default 1)",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ring: 1 to 50 (default 25)",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Transactions waiting to be mined."
      }
    },
    "/{chain}/search/{query}": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): What a height, hash, txid or address is: block, tx, address or none.\n\n**account** chains (eth): What a height, hash or address is.\n\n**ring** chains (xmr): What a height or hash is. An address cannot be searched: it never appears on the chain.",
        "operationId": "search",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "A height, hash, transaction id or address.",
            "in": "path",
            "name": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "What a height, hash, txid or address is: block, tx, address or none."
      }
    },
    "/{chain}/status": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): Chain tip, sync state, the coin's symbol and decimals, mempool size, and `family` — which shape this chain's answers take.\n\n**account** chains (eth): Chain tip, sync state, the coin's symbol and decimals, mempool size, and `family` — which shape this chain's answers take.\n\n**ring** chains (xmr): Chain tip, sync state, the coin's symbol and decimals, mempool size, and `family` — which shape this chain's answers take.",
        "operationId": "status",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Chain tip, sync state, the coin's symbol and decimals, mempool size, and `family` — which shape this chain's answers take."
      }
    },
    "/{chain}/tx/{hash}": {
      "get": {
        "description": "**utxo** chains (btc, ltc, doge, bch, xec, zec, dcr): One transaction with every input resolved: input values and addresses, total in, fee.\n\n**account** chains (eth): One transaction and what it did: receipt, status, gas paid, every log it emitted, the internal operations it made, and the token transfers it caused.\n\n**ring** chains (xmr): One transaction: fee, size, ring size, each input's key image and the ring it hides in, and the one-time keys of the outputs. Amounts are hidden by the protocol and are reported only where they are public.",
        "operationId": "tx",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "btc",
                "ltc",
                "doge",
                "bch",
                "xec",
                "zec",
                "dcr",
                "eth",
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "Transaction id / hash (64 hex characters; 0x-prefixed on account chains).",
            "in": "path",
            "name": "hash",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "One transaction with every input resolved: input values and addresses, total in, fee."
      }
    },
    "/{chain}/tx/{hash}/outputs/check": {
      "post": {
        "description": "Which outputs of a transaction belong to an address. The chain does not say, so you supply the secret that shows it: `viewkey` is the recipient’s and reveals every payment ever made to that wallet; `txkey` is the sender’s and covers this transaction only (`monero-wallet-cli get_tx_key`). POST, because a key in a URL ends up in access logs, browser history and Referer headers. Nothing is stored.",
        "operationId": "txOutputsCheck",
        "parameters": [
          {
            "description": "Chain id.",
            "in": "path",
            "name": "chain",
            "required": true,
            "schema": {
              "enum": [
                "xmr"
              ],
              "type": "string"
            }
          },
          {
            "description": "Transaction id / hash (64 hex characters; 0x-prefixed on account chains).",
            "in": "path",
            "name": "hash",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "address": "4… or 8…",
                "key": "64 hex characters",
                "kind": "viewkey"
              },
              "schema": {
                "properties": {
                  "address": {
                    "description": "The wallet's standard address (4…) or subaddress (8…).",
                    "type": "string"
                  },
                  "key": {
                    "description": "The recipient's private view key, or the sender's transaction key.",
                    "pattern": "^[0-9a-fA-F]{64}$",
                    "type": "string"
                  },
                  "kind": {
                    "default": "viewkey",
                    "enum": [
                      "viewkey",
                      "txkey"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "address",
                  "key"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "The answer. Amounts are strings in the coin's smallest unit; a field that does not apply to a chain is left out.",
            "headers": {
              "X-Quota-Daily-Remaining": {
                "$ref": "#/components/headers/X-Quota-Daily-Remaining"
              },
              "X-Quota-Monthly-Remaining": {
                "$ref": "#/components/headers/X-Quota-Monthly-Remaining"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "X-Request-Id": {
                "$ref": "#/components/headers/X-Request-Id"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "502": {
            "$ref": "#/components/responses/Upstream"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          },
          "504": {
            "$ref": "#/components/responses/Upstream"
          }
        },
        "summary": "Which outputs of a transaction belong to an address."
      }
    }
  },
  "security": [
    {
      "ApiKeyHeader": []
    },
    {
      "Bearer": []
    }
  ],
  "servers": [
    {
      "url": "https://explorer.olenza.io/api/v1"
    }
  ]
}