ryntra-solana-evidence
Ryntra Solana Evidence Kit
Читайте, что Solana-актив может вам сделать, предварительно просматривайте, что именно сделает перевод, и проверяйте квитанцию, не спрашивая сторону, которая её выписала.
Apache-2.0. Только для чтения по построению: никакого ключа, никакого пути подписания, никакого построения транзакций и один метод RPC — getAccountInfo. Тест перечисляет каждый вызов RPC и каждый идентификатор, похожий на подпись, в поставляемых исходниках при каждом запуске, так что это предложение — скорее шлюз, чем обещание.
npm ci
npm run verify # lint, typecheck, network-free tests, boundary gate
npm run cli -- inspect 2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXoПоследняя команда читает PayPal USD в мейннете через публичную конечную точку, без какого-либо аккаунта, и выводит восемь расширений токена с тем, что каждое из них означает для держателя актива.
Почему
Mint Token Extensions может нести полномочия, которые баланс вам не показывает. Постоянный делегат позволяет эмитенту перемещать или сжигать токены с любого аккаунта. Хук перевода запускает чужую программу при каждом переводе. Комиссия за перевод означает, что получатель получает меньше, чем было отправлено. Состояние аккаунта по умолчанию заморожено означает, что получение токена — это не то же самое, что возможность его переместить.
Ничего из этого не скрыто — это в цепочке, в mint-аккаунте, декодируемо кем угодно. Просто это не читается большинством того, на что люди нажимают кнопки.
Этот набор читает это, говорит, что это означает в предложении, понятном держателю, и отказывается сжимать что-либо из этого в оценку. Здесь нет рейтинга, и лучшее заключение, которое может вернуть механизм политик, — это NO_KNOWN_BLOCKER.
Related MCP server: Solana Debug MCP
Три инструмента
flowchart LR
RPC[("Solana JSON-RPC<br/>getAccountInfo")]
MINT["mint account bytes"]
RPC --> MINT
MINT --> P["<b>inspect_solana_mint</b><br/>Asset Passport<br/>identity · authorities<br/>extensions with provenance"]
P --> F["<b>preflight_solana_action</b><br/>exact preview<br/>fee math · resolved hook<br/>expected balance deltas"]
POL["owner policy<br/>13 declared dials"] --> V["policy verdict<br/>13 findings"]
F --> V
R[("Outcome Receipt<br/>JSON")] --> VR["<b>verify_solana_receipt</b><br/>schema · integrity<br/>issuer · binding"]
classDef tool fill:#101418,stroke:#4c8bf5,color:#e8eef6
classDef data fill:#0d1117,stroke:#3d444d,color:#c9d1d9
class P,F,V,VR tool
class RPC,MINT,POL,R dataЧто отвечает | Обращается к сети | |
| Что это за актив, и что его эмитент может сделать держателю | да, одно чтение |
| Что сделает именно этот перевод, и как моя политика его оценивает | да, одно чтение |
| Цела ли эта квитанция, кто её подписал, и относится ли она к Solana | нет — полностью локально |
Каждый доступен тремя способами: как типизированный вызов SDK, как инструмент MCP и из CLI.
Структура
lib/solana/ the evidence core — decoding, passport, preflight, policy, receipt
lib/agent-control/ the frozen canonical hashing and the Solana registry adapter
lib/guard/ the one canonical JSON serializer both hashers use
packages/solana-evidence-sdk/ typed calls over the core
packages/solana-evidence-mcp/ local stdio MCP server
examples/solana-evidence-cli/ the runnable CLI
docs/solana/schemas/ published JSON Schemas for non-JS consumerslib/ — это не копия. Это те же модули, которые запускает ryntra.io, извлечённые с сохранением путей — так что результат из этого набора и результат из продукта исходят из одного кода, и извлечение, нарушающее это, проваливает собственные тесты. lib/stellar/evidence.ts здесь по той же причине и никакой другой: конверт доказательств не зависит от цепочки, и поставка одной реализации лучше, чем поставка копии, которая расходится. lib/solana/evidence.ts сообщает об этом там, где вы с ним встречаетесь.
Правила проектирования и их цена
Каждый факт несёт информацию о том, как он известен. ONCHAIN_VERIFIED, DECLARED, DERIVED, CONFLICTING, UNKNOWN, UNSUPPORTED. Значение без источника здесь не является значением. Цена — многословность, и она того стоит: маркетинг самого эмитента и чтение реестра никогда не должны носить один и тот же значок.
Предложение описывает обстановку, а не слот. Mint, несущий TransferHook с нулевым идентификатором программы, не имеет установленного хука — паспорт говорит об этом и говорит, кто может его установить. Общее предложение было бы ложным для единственного наиболее проверяемого mint Token Extensions.
Суммы — это сырые базовые единицы в виде строк. 64-битная сумма не переживёт число JavaScript, а потерянная сумма — это неверная сумма. Никаких десятичных знаков на пути значений.
Расширение, для которого никто не написал семантики, всё равно отображается, с пометкой и сырым видом. Декодированный факт без красивого предложения всё равно остаётся фактом; скрывать его было бы ложью.
Ничего не выбрасывает исключений. Отказы — это значения с кодом и причиной — ACCOUNT_NOT_FOUND, NOT_A_MINT, DECODE_FAILED. «Нет ответа» и «этот ответ» не должны выглядеть одинаково.
Повторы покрывают транспорт, но никогда не ответ. Ответ, который разбирается, возвращается как есть, включая «нет аккаунта», потому что повторный запрос не меняет факты.
Квитанции
Квитанция результата Ryntra — это наблюдение за тем, что уже произошло — никогда не инструкция и никогда не доказательство того, что это сделала Ryntra. verify_solana_receipt пересчитывает оба хеша из собственных байтов квитанции и проверяет подпись Ed25519 по ключу, который несёт квитанция. Четыре оси, отчитываемые отдельно:
схема — имеет ли это вообще форму квитанции;
целостность — пересчитываются ли оба хеша;
эмитент — корректна ли подпись; и, только если вы передаёте
trustedPublicKeys, является ли ключ тем, которому вы доверяете;привязка — указывает ли имя реестра на адаптер Solana.
«Подписано кем-то» — это не «подписано Ryntra», и объединение их — это ошибка, для предотвращения которой существует эта ось. lib/solana/fixtures/receipt-*.json — это реальные артефакты, с которыми вы можете это запустить, включая тот, который является подписанным с одним изменённым символом.
Граница доверия
Некастодиальный и без ключей. Никакой ключ не хранится, не читается, не извлекается и не запрашивается. Нет пути подписания, и пограничный шлюз проваливает сборку, если такой появляется.
Ничего не выполняется. Никакая транзакция не строится и не отправляется.
Заключение — это не оценка безопасности. Оно сообщает об отсутствии известных блокировок в рамках политики, объявленной вызывающим, и в словаре заключений нет слова для безопасности.
Конечная точка — это выбор оператора. Ни один инструмент или вызов SDK не принимает URL от вызывающего; конечные точки провайдера берутся из
RYNTRA_SOLANA_RPC_MAINNETиRYNTRA_SOLANA_RPC_DEVNET, а публичные значения по умолчанию работают без аккаунта.Распространяется с исходниками. Корневой пакет является
private, поэтому случайныйnpm publishотказывает. Никакой npm-пакет не заявлен.
Ссылки
MCP-сервер:
packages/solana-evidence-mcpБезопасность: SECURITY.md · Участие: CONTRIBUTING.md
Рабочее пространство, откуда это взято: https://ryntra.io/solana
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides read-only access to Solana on-chain data, enabling natural language queries for wallet balances, token holdings, prices, transactions, and more via MCP-compatible clients.8MIT
- AlicenseAqualityCmaintenanceInspects and debugs Solana transactions, accounts, Anchor IDLs, errors, and PDAs from MCP-compatible clients.52MIT
- FlicenseAqualityDmaintenanceProvides read-only access to the XRP Ledger for querying accounts, transactions, NFTs, DEX order books, and more.12

Tegro Wallet MCPofficial
Alicense-qualityBmaintenanceProvides 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.7MIT
Related MCP Connectors
Ask what you can't be sure of. Read-only checks on tokens, NFTs, wallets and contracts.
Read-only crypto safety: token honeypot checks, EIP-712 signature decode, approval scans.
Solana on-chain intelligence — token scans, wallet profiling, bundle detection, 19 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryntra-io/ryntra-solana-evidence'
If you have feedback or need assistance with the MCP directory API, please join our Discord server