Bitcoin · UTXO

scantxoutset

Сканирует весь UTXO-набор по списку дескрипторов адресов и возвращает суммарный неистраченный остаток — основной способ доказать резервы (proof of reserve) без обращения к стороннему индексатору. Тяжёлый метод: полный проход по UTXO-набору занимает секунды и грузит ноду, поэтому балансировщик помечает его как heavy и может ограничить частоту. Доступен на обоих fallback-апстримах (dRPC и GetBlock).

Идемпотентен — повторяется на другом апстриме при сбое

Параметры

ИмяТипОбязателенОписание
actionSTRINGдаstart — запустить скан, status — статус текущего, abort — прервать
scanobjectsARRAYнетДескрипторы адресов для скана (обязателен при action=start)

Возвращает

OBJECT — итог скана: список найденных выходов и суммарный остаток

Пример запроса

{
  "jsonrpc": "2.0",
  "method": "scantxoutset",
  "params": [
    "start",
    [
      "addr(bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq)"
    ]
  ],
  "id": 1
}

Пример ответа

{
  "jsonrpc": "2.0",
  "result": {
    "success": true,
    "txouts": 512300123,
    "height": 872341,
    "total_amount": 12.53847219,
    "unspents": [
      {
        "txid": "ab12cd34...",
        "vout": 0,
        "amount": 0.05,
        "height": 871900
      }
    ]
  },
  "id": 1
}

Пример вызова

curl -X POST https://app.nodegate.ru/v1/{product_id} \
  -H "X-API-Key: ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"scantxoutset","params":["start",["addr(bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq)"]],"id":1}'