Skip to main content
Glama
winter0x

nockchain-mcp

by winter0x

nockchain-agent

Типизированный TypeScript-клиент и MCP-сервер для чтения Nockchain из агента.

Создано Prism. Не аффилировано с Nockchain, Nock Community Co, Zorp или National Compute, не одобрено ими и не управляется ими.

Установка

npm install nockchain-agent-sdk

MCP-сервер запускается прямо из npm:

npx nockchain-mcp

Node 20 или новее.

Related MCP server: XRPL MCP Server

Прочитать баланс

import { NockchainClient } from "nockchain-agent-sdk";

const client = new NockchainClient();
const balance = await client.getBalance("2s3K...");

console.log(`${balance.nock} NOCK (${balance.nicks} nicks) across ${balance.notes.length} notes`);

Проверить платёж

Выдайте один адрес на каждый счёт, а затем запросите, был ли он оплачен:

import { NockchainClient } from "nockchain-agent-sdk";

const client = new NockchainClient();
const result = await client.verifyPayment({
  address: invoiceAddress,
  minNock: "1.5",
  sinceHeight: 133400,
  confirmations: 3,
});

if (result.paid) {
  console.log(`${result.confirmedNock} NOCK settled at height ${result.tipHeight}`);
}

Использование через MCP-клиент

{
  "mcpServers": {
    "nockchain": {
      "command": "npx",
      "args": ["-y", "nockchain-mcp"]
    }
  }
}

Семь инструментов, все только для чтения:

инструмент

что возвращает

nock_tip

текущую высоту, с оценкой свежести по каждому эндпоинту

nock_balance

что адрес может потратить прямо сейчас

nock_verify_payment

был ли этот адрес оплачен, с количеством подтверждений

nock_block

содержимое блока по высоте или идентификатору блока

nock_transaction

содержимое транзакции или почему узел не смог её декодировать

nock_metrics

состояние кэша и обновления выбранного эндпоинта, и его таблицу пиров

nock_endpoints

полную таблицу здоровья эндпоинтов

Зачем это нужно

Два аспекта чтения Nockchain сегодня отнимают больше времени, чем должны.

Балансы возвращаются нулевыми. Публичный вызов WalletGetBalance принимает селектор адреса, и для заметок в текущем формате v1 этот селектор не возвращает ничего. Баланс находится под полем first-name заметки, к которому можно добраться, хэшируя pay-to-pubkey-hash, стоящий за адресом. Важны два варианта деривации, потому что coinbase-заметки блокируются иначе, чем обычные, а реальный баланс — это объединение обоих. getBalance выполняет эту работу и возвращает сумму, которую адрес действительно может потратить.

Публичные узлы незаметно устаревают. Три эндпоинта, измеренные в течение одной минуты 2026-08-25:

эндпоинт

высота

возраст состояния цепочки

api.nockscan.net:443

133598

157 s

23.252.122.18:5556

133598

214 s

rpc.nockbox.org:443

133226

50625 s, около 14 часов

Ответ не содержит никаких сведений о том, какой из узлов ответил. Клиент опрашивает каждый эндпоинт из своего пула и отказывается читать через тот, который не проходит порог свежести, выбрасывая типизированную ошибку, называющую измеренные возраста. client.health() возвращает полную таблицу.

Ограничения

Только чтение. Для Nockchain не существует библиотеки подписи, поэтому отправка NOCK требует официального CLI nockchain-wallet. SDK сможет отправить транзакцию, которую CLI уже подготовил. Он не будет создавать или подписывать её.

Баланс — это текущее множество непотраченных заметок. Он показывает, что адрес может потратить на текущей вершине. Потраченная заметка покидает множество, поэтому итог не является записью о том, что адрес получал за всё время существования. Кроме того, ни одна отправка кошелька не содержит в сети memo или метку, поэтому корреляция платежей работает за счёт выдачи одного адреса на один счёт.

Вышестоящий GetTransactionDetails падает на транзакциях, созданных после обновления Logos. Узел отвечает ошибкой декодера вместо самой транзакции. getTransactionDetails перехватывает этот случай и возвращает { ok: false, reason: "upstream_decoder_bug", txId, fallback }, где fallback содержит факты включения, которые GetTransactionBlock и GetBlockDetails всё ещё могут установить, например, высоту блока и его метку времени.

Публичный API — это альфа без аутентификации. Никакого ключа получать не нужно, и никакого ограничения скорости, которое нужно было бы учитывать, нет. Эндпоинты переносятся and отстают без предупреждения.

Пакеты

пакет

содержимое

nockchain-agent-sdk

клиент и деривация first-name заметок, от которой он зависит

nockchain-mcp

stdio MCP-сервер, построенный на его основе

Примеры

Примеры используют workspace-сборку, поэтому сначала соберите её один раз.

npm install
npm run build
node examples/balance.mjs 2s3K...
node examples/verify-payment.mjs 2s3K... 1.5

Оба читают публичную сеть.

Разработка

npm install
npm run build
npm test

Тесты работают офлайн, на фикстурах, включая эталонные векторы, созданные из вышеперечисленных Rust-крейтов. В наборе тестов не открывается ни одного сокета.

Лицензия

Apache-2.0. См. LICENSE и NOTICE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real Bitcoin full node data via 17 tools, with pay-per-call in USDC on Base mainnet. Free tools include blockchain info, fees, and mempool; paid tools enable transaction tracking, address analysis, and more.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides read-only, real-time access to TON blockchain data including wallet balances, token holdings, transactions, prices, NFTs, DNS resolution, and address validation, without requiring private keys.
    8
    17 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides live, read-only access to Robinhood Chain and Lox Corp data, enabling AI agents to query chain stats, token launches, agent details, and more.
    6 npm
    MIT