TONNode — TON blockchain access
NPM · @TONNODE/MCP · SCANNED AUG 6
Liteserver access to TON: balances, account state, transactions and get-methods over native ADNL.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security88
- No malware found by supply-chain analysis.Pass
- Known CVEs were checked across the 119 of 123 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 119 of 123 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 10 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1416 tokens (~202/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
- Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @tonnode/mcp
claude mcp add tonnode-mcp -- npx -y @tonnode/mcp
codex mcp add tonnode-mcp -- npx -y @tonnode/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"tonnode-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@tonnode/mcp"
],
"enabled": true
}
}
} openclaw mcp add tonnode-mcp --command npx --arg -y --arg @tonnode/mcp
mcp_servers:
tonnode-mcp:
command: "npx"
args: ["-y", "@tonnode/mcp"] {
"mcpServers": {
"tonnode-mcp": {
"command": "npx",
"args": [
"-y",
"@tonnode/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Aug 26 0
- Security disclosure: fail → unverified ▼ functional
- 5 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 4 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 3 Aug 26 +43
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Schema quality: unverified → excellent ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 2 Aug 26 +2
- Malware scan: unverified → pass ▲ security
- Tool coverage: 100 → unverified ▼ functional
- 1 Aug 26 +13
- Tool coverage: unverified → 100 ▲ functional
- 31 Jul 26 −38
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 43
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Aug 2026 · Analysed npm/@tonnode/[email protected]
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 119 packages
| Packages resolved | 119 |
|---|---|
| Deprecated | 110 |
| Stale | 44 |
| No linked repository | 1 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
get_account_state Account state ~178
Full account state of a TON address: status (active / frozen / uninit), GRAM balance, last-transaction pointer (lt + hash) and whether contract code/data are deployed. Use when: checking if a contract or wallet is deployed, diagnosing why an address does not respond, or before run_get_method (which needs status=active). Returns: status, balance_gram, last_transaction {lt (string), hash — 64-char hex}, has_code, has_data, at_seqno. Reading the result: status=uninit with a non-zero balance means funds arrived but the wallet contract is not deployed yet; the last_transaction pointer is the cursor get_transactions starts from.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | TON address in friendly (EQ…/UQ…) or raw (0:… / -1:…) form |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
| at_seqno | number | yes | — |
| balance_gram | string | yes | — |
| has_code | boolean | yes | — |
| has_data | boolean | yes | — |
| last_transaction | — | yes | — |
| status | string | yes | — |
No examples provided.
get_balance GRAM balance ~173
Native GRAM coin balance of a TON address (GRAM is the renamed Toncoin; the network is still called TON). Use when: the question is about the native coin only. For token balances (USDT and other jettons) use get_jetton_balance; for deployment status, code flags and the last transaction use get_account_state. Returns: balance_gram (decimal string, e.g. "12.5"), balance_nano (string, 1 GRAM = 1e9 nano) and at_seqno — the masterchain block the reading is anchored to. Never-funded (uninitialized) addresses return 0 — that is not an error.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | TON address in friendly (EQ…/UQ…) or raw (0:… / -1:…) form |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
| at_seqno | number | yes | — |
| balance_gram | string | yes | — |
| balance_nano | string | yes | — |
No examples provided.
get_jetton_balance Jetton balance ~269
Jetton (TON token) balance of an owner address — USDT and every other TEP-74 token. Use when: the question is about token balances rather than the native GRAM coin (for GRAM use get_balance). Args: owner — the holder's address; jetton_master — the token's master contract address. How it works: derives the owner's jetton-wallet address from the master, then reads its balance on-chain. Returns: jetton_wallet (the derived address), balance in raw indivisible units (string), deployed — false means the owner never held this token, so the balance is 0 — and at_seqno. Raw units: divide by 10^decimals; USDT uses 6 decimals, most other jettons 9 (read decimals from the master's metadata via run_get_method get_jetton_data).
| Name | Type | Req | Description |
|---|---|---|---|
| jetton_master | string | yes | Jetton master contract address, e.g. USDT "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs" |
| owner | string | yes | Holder's TON address, friendly (EQ…/UQ…) or raw (0:… / -1:…) form |
| Name | Type | Req | Description |
|---|---|---|---|
| at_seqno | number | yes | — |
| balance | string | yes | — |
| deployed | boolean | yes | — |
| jetton_master | string | yes | — |
| jetton_wallet | string | yes | — |
| owner | string | yes | — |
No examples provided.
get_masterchain_info Masterchain info ~101
Latest TON masterchain block: workchain, shard, seqno and block hashes. Use when: checking that the network (or your endpoint) is alive and synced, or when you need the current block height. Returns: workchain, shard, seqno, rootHash/fileHash in base64. Tip: masterchain produces a block roughly every 3 seconds — if seqno does not grow between calls, the liteserver is lagging.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| fileHash | string | yes | — |
| rootHash | string | yes | — |
| seqno | number | yes | — |
| shard | string | yes | — |
| workchain | number | yes | — |
No examples provided.
get_transactions Recent transactions ~244
Recent transactions of a TON address, newest first. Use when: verifying that a payment arrived, listing latest wallet activity, or tracing what an address did recently. Returns an array of {hash, lt (string), unix_time, in_value_gram, in_from, out_messages, total_fees_gram} — in_value_gram/in_from describe the incoming message (null for outgoing-only transactions). Never-active addresses return an empty array (not an error); an undecodable transaction comes back as {hash, parse_error: true}. No pagination: each call reads from the account's newest transaction — at most the 30 most recent are reachable. History depth: an error like "lt not in db" means this liteserver has already pruned that part of history — only archive endpoints keep the full chain; retry through one (TON_LITESERVERS or a TONNode hosted key) for deep history.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | TON address in friendly (EQ…/UQ…) or raw (0:… / -1:…) form |
| limit | integer | — | How many transactions to return, 1–30 (default 10) |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
| transactions | array | yes | — |
No examples provided.
parse_address Parse address ~194
Parse, validate and convert a TON address between all its formats — purely local, no network access. Use when: normalizing user input, comparing addresses that look different but may be the same account, or converting to the raw form that indexers and APIs expect. Accepts friendly (EQ…/UQ…, with or without URL-safe characters) and raw (workchain:hex) forms. Returns: raw, friendly_bounceable (EQ…), friendly_non_bounceable (UQ…), workchain and flags of the given input. Background: EQ… and UQ… encode the SAME account — EQ (bounceable) is conventional for contracts, UQ (non-bounceable) for user wallets; two addresses are equal if their raw forms match.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | TON address in any form: friendly (EQ…/UQ…) or raw (0:… / -1:…) |
| Name | Type | Req | Description |
|---|---|---|---|
| friendly_bounceable | string | yes | — |
| friendly_non_bounceable | string | yes | — |
| input_flags | — | yes | — |
| input_format | string | yes | — |
| raw | string | yes | — |
| workchain | number | yes | — |
No examples provided.
run_get_method Run get-method ~257
Execute a read-only get-method (no gas, no state change) on a smart contract: seqno, get_jetton_data, get_sale_data, get_collection_data and anything else the contract exposes. Use when: reading typed on-chain data from a specific contract. The contract must be active — check with get_account_state first if unsure. Args: only integer arguments are supported here (decimal strings); methods that need an address/slice argument have dedicated tools — e.g. use get_jetton_balance instead of calling get_wallet_address manually. Returns: exit_code (0 or 1 = success; 11 usually means the contract has no such method; other values are contract-specific errors) and the result stack — typed items like {type:"int", value} or {type:"cell"|"slice", boc_base64}.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | TON address in friendly (EQ…/UQ…) or raw (0:… / -1:…) form |
| args | array | — | Integer arguments as decimal strings, e.g. ["0"] (most methods take none) |
| method | string | yes | get-method name, e.g. "seqno" or "get_jetton_data" |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | — |
| exit_code | number | yes | — |
| method | string | yes | — |
| stack | array | yes | — |
No examples provided.