ryntra-solana-evidence
Provides tools for inspecting Solana asset mints (including authorities and extensions), preflighting Solana actions (transfers) with detailed fee and policy analysis, and verifying Solana receipts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ryntra-solana-evidenceinspect the Solana mint token 2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ryntra Solana Evidence Kit
Read-only TypeScript tools for developers building on tokenized stocks and other Token-2022 assets on Solana: see what a mint lets its issuer do, check a transfer against your own policy and verify a receipt offline — with no wallet and no key.
Used in production by Ryntra — invest in tokenized stocks from $1, in your own wallet, on Solana.
SDK · MCP server · CLI · Tokenized stocks · Build log
Quick start
Node.js 24, no wallet and no API key. Read NVIDIA's xStock (NVDAx) straight from Solana mainnet through a public RPC:
git clone https://github.com/ryntra-io/ryntra-solana-evidence.git
cd ryntra-solana-evidence
npm ci
npm run cli -- inspect Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh
Every ! is a power that can change the outcome of a transfer. For this token
the issuer's delegate can move or burn any holder's tokens, new accounts can
start frozen, the whole token can be paused, and the balance a wallet shows is
the raw amount times a multiplier the issuer sets. Add --json for the
machine-readable passport, or inspect Apple's xStock,
XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp. A public RPC can be slow or
rate-limited; the connection options
point the kit at your own provider.
────────────────────────────────────────────────────────────────────────
ASSET PASSPORT Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh
────────────────────────────────────────────────────────────────────────
token program TOKEN_2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb)
decimals 8
supply 32127203051887 base units
mint authority 7pt9tkctJPK7PPNQJ77GKg8ZffSF6QxoMiCFYHxrtaCj — This authority can mint new tokens and change the supply.
freeze auth. JDq14BWvqCRFNu1krb12bcRpbGtJZ1FLEakMw6FdxJNs — This authority can freeze any holder's token account.
8 token extension(s):
· MetadataPointer [ONCHAIN_VERIFIED]
Points at the account that holds this token's metadata — identity comes from wherever this points.
authority: 5aMNNLQJwAEeoemTEMkv5NVjqKwvvefRYCQ5Z67HFvEq
metadataAddress: Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh
! PermanentDelegate [ONCHAIN_VERIFIED]
The issuer's delegate can move or burn tokens from any holder's account without the holder's approval — custody is shared with the issuer by construction.
delegate: 5aMNNLQJwAEeoemTEMkv5NVjqKwvvefRYCQ5Z67HFvEq
! DefaultAccountState [ONCHAIN_VERIFIED]
New token accounts can start frozen: receiving the token does not yet mean being able to move it until the issuer thaws the account.
state: 1
· ScaledUiAmountConfig [ONCHAIN_VERIFIED]
Displayed balances are multiplied by an issuer-set factor that can change; the raw amount and the shown amount are different numbers.
authority: S7vYFFWH6BjJyEsdrPQpqpYTqLTrPRK6KW3VwsJuRaS
multiplier: 1.0009180758490996
newMultiplierEffectiveTimestamp: 1789000200
newMultiplier: 1.001701196801074
! PausableConfig [ONCHAIN_VERIFIED]
The issuer can pause the whole token: while paused, transfers stop for every holder at once.
authority: JDq14BWvqCRFNu1krb12bcRpbGtJZ1FLEakMw6FdxJNs
paused: false
! ConfidentialTransferMint [ONCHAIN_VERIFIED]
Confidential transfers are configured: amounts can move encrypted, under the issuer's auditor settings.
authority: 5aMNNLQJwAEeoemTEMkv5NVjqKwvvefRYCQ5Z67HFvEq
autoApproveNewAccounts: false
auditorElgamalPubkey: null
! TransferHook [ONCHAIN_VERIFIED]
No transfer-hook program is set, so nothing extra runs on a transfer today; the hook authority can install one, and it would then run on every transfer.
authority: 5aMNNLQJwAEeoemTEMkv5NVjqKwvvefRYCQ5Z67HFvEq
programId: 11111111111111111111111111111111
· TokenMetadata [ONCHAIN_VERIFIED]
Name, symbol and URI are stored on the mint itself and controlled by the metadata update authority.
updateAuthority: 5aMNNLQJwAEeoemTEMkv5NVjqKwvvefRYCQ5Z67HFvEq
mint: Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh
name: NVIDIA xStock
symbol: NVDAx
uri: https://xstocks-metadata.backed.fi/tokens/Solana/NVDAx/metadata.json
! marks an extension that can change the outcome of a transfer.
read 2026-09-28T17:25:28.257Z from Solana mainnet JSON-RPC (solana-rpc.publicnode.com)
────────────────────────────────────────────────────────────────────────
READ-ONLY EVIDENCE — NOT A WALLET AND NOT AN EXECUTOR
No key is held, no transaction is built or signed, and no state-changing RPC method is called.
A policy verdict reports the absence of known blockers under a declared policy. It is not a safety judgement and endorses nothing.
────────────────────────────────────────────────────────────────────────Related MCP server: Solana Debug MCP
What works
Capability | Output | Network access |
Mint inspection | Asset identity, authorities and SPL / Token-2022 extension data with provenance | Read-only Solana RPC |
Transfer preflight | Mint-based fee calculations, structural constraints and a verdict against the declared owner policy | Read-only Solana RPC |
Receipt verification | Separate schema, integrity, issuer-signature and Solana-binding results | None |
Tokenized-stock model | Instrument class, unit basis and rights; the Token-2022 transfer fee from a mint's config; a token's issuer lifecycle; scaled-unit arithmetic; the state of a reference price against a session | None |
Trading-plan helpers | Deterministic position sizing with its assumptions; decimal input read as typed | None |
Evidence layer | A metric registry, a normalized onchain observation with its times and attribution, a condition validator and judge where an unjudgeable rule is never a pass, a rights map read from the provider's terms, and the Nansen adapter that reserves and settles every call | Nansen API, read-only, only through the adapter with your own key |
Stock flows | Who moved each tokenized stock over 7 days or 24 hours, by Nansen's wallet groups; a verdict per stock; BUY or WAIT before a purchase | Nansen API with your own key; Ryntra's public universe without a key |
The first three are available through the typed SDK, local stdio MCP server and CLI. The MCP server also exposes an editable example owner policy. Four JSON Schemas describe asset passports, owner policies, policy verdicts and transfer preflights. The two model packages are plain TypeScript modules with tests.
More to try
Check a receipt offline
npm run cli -- verify lib/solana/fixtures/receipt-solana-matched-signed.json --jsonThe sample is a test fixture, not evidence of a customer's transaction.
Try receipt-solana-tampered.json in the same directory to see integrity
verification fail with exit code 2.
Who is on the other side — with a Nansen key
Before you buy a tokenized stock on Solana, see who is selling it to you.
examples/stock-flows reads Nansen's flow
intelligence for the most traded tokenized stocks — xStocks, PreStocks, Ondo and
Backpack tokens — ranks them by what the best and smart traders are doing, and
answers BUY or WAIT before a purchase, with its reason and an exit code a
script can act on. It needs your own Nansen API key.
export NANSEN_API_KEY=<your key>
node examples/stock-flows/radar.ts # the board, 20 credits
node examples/stock-flows/radar.ts guard NVDAx # BUY or WAIT, 2 credits
Verify the kit
npm run verifyVerification runs lint, type checking, network-free tests of every package
and the boundary checks. GitHub Actions
runs the same command for changes to main and pull requests.
Ryntra product development
Ryntra is developed in a private production repository. This public repository contains selected open-source components, public technical interfaces and a sanitized record of shipped product development:
BUILDLOG.md — what shipped in the product and when, newest first, with screenshots of the live application. Generated from structured entries and published with each meaningful slice of work.
docs/product — how the product works today: trading, tokenized stocks, trading plans, the pre-signature review and the public analytics; architecture boundaries, what Ryntra owns, which external infrastructure executes and supplies evidence, and the material limitations.
docs/product/status.json — machine-readable: the live address, the public capabilities, the latest public update.
Open-source modules — the same code the product runs on, imported rather than copied: the evidence kit above, the tokenized-stock model, the trading-plan helpers and the evidence layer a plan's conditions stand on, each with network-free tests.
Every file here reaches this repository through an explicit publication list
and a set of boundary checks on the private side; a file nobody named
never ships, and npm run verify proves the tree stands on its own.
Scope and limits
No private keys, signing, transaction building, simulation or submission. The only RPC method used by the kit is
getAccountInfo; the model packages make no network call at all.Preflight is a structural calculation, not a simulation or a promise of execution. Network fees and compute budget remain unknown.
NO_KNOWN_BLOCKERmeans no known blocker under the policy supplied by the caller. It is not a safety judgement or financial advice.Receipt checks cover the supplied artifact. They do not fetch the transaction, prove settlement on chain, or compare an original plan and quote with actual execution.
A valid signature is not issuer trust. Supply
trustedPublicKeyswhen your integration requires a particular issuer; the verifier reports all four axes separately.The tokenized-stock model states what an issuer states and what a mint holds; it does not vouch for an issuer. The plan sizing is a planning model under stated assumptions, not a bound on what can be lost.
This is source-distributed software, not a published npm package or hosted service. Public kit versions and the application may evolve independently.
Contributing and security
Contributing · Security policy · Changelog · License · Notice
Selected developer interfaces and evidence tooling are open source. The Ryntra product remains proprietary. Code included in this repository is Apache-2.0, including its declared-policy evaluation and evidence utilities. The hosted application, operational infrastructure and live execution services are separate.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only crypto safety: token honeypot checks, EIP-712 signature decode, approval scans.
Non-custodial Solana toolkit: rug-checks, swaps, portfolios, token minting, multisig, Arweave.
Read-only Solana and crypto reserve-recovery scans, pricing, chain facts, and methodology.
Read-only tools for agents: everything a Solana or Robinhood Chain wallet can get back (rent, wrapped SOL, LP fees, dead positions, failed deploys), whether a token is safe, when it unlocks, which protocol upgrades are live, and what a token operation costs. Every answer names the page where the user acts with their own wallet. Nothing here moves funds or holds keys.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides 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
- AlicenseAqualityDmaintenanceInspects and debugs Solana transactions, accounts, Anchor IDLs, errors, and PDAs from MCP-compatible clients.52MIT
- FlicenseAqualityBmaintenanceEnables read-only on-chain analysis to spot trending and new memecoin pools, evaluate rug risk, and surface early buyer wallets across Solana, Base, and Ethereum.5-
- FlicenseNot gradedqualityBmaintenanceProvides read-only Solana wallet intelligence for evidence-first copy-trading research, enabling exact wallet activity, parsed swaps, transaction evidence, current positions, token snapshots, source-vs-copy comparisons, watchlist scans, and partial Odin-rule classification.-