Xahau MCP
NPM · XAHAU-MCP
MCP server for the Xahau network — offline Hook WASM VM + static analyzer, read-only ledger tools.
Available components
Last scanned (7 hours ago)
Scores higher than 43% of npm servers
Category Crypto and Web3
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 → Why this is hard to score →
Supply Chain Security80
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 1.29.0, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 83 of 197 dependencies flagged as unhealthy (1 deprecated). 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 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability84
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9206 tokens (~102/item across 90 items; 87 tools + 3 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 Management77
- Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage80
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 31% of tool parameters carry a description.Partial
- Structured output schemas are declared (32% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_hook" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 88 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
- CVE-2026-111768 affects this package: high ▼ security
- CVE-2026-111769 affects this package: high ▼ security
- CVE-2026-111767 affects this package: high ▼ security
- CVE-2026-111771 affects this package: high ▼ security
- 19 Oct 26 +1
- Security disclosure: unverified → fail ▼ functional
- 18 Oct 26 0
- Security disclosure: fail → unverified ▼ functional
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Oct 26 −2
- CVE-2026-104850 affects this package: high ▼ security
- Known CVEs: partial → fail ▼ security
- CVE-2025-14505 no longer affects this package ▲ security
- 5 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
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 23 Oct 2026 · Analysed npm/xahau-mcp@2.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 6 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-22jm-h49p-29qw | CVE-2026-111767 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L | yes |
| GHSA-46jr-4wx8-v453 | CVE-2026-111768 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-6prh-2h8m-c8cw | CVE-2026-111769 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-6qxp-vccf-f47h | CVE-2026-104850 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
| GHSA-rvq5-wwqv-78pq | CVE-2026-111771 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
| GHSA-848j-6mx2-7j84 | CVE-2025-14505 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L | no |
Background: What a vulnerability scan can and cannot prove →
Dependencies 197 packages
| Packages resolved | 197 |
|---|---|
| Deprecated | 1 |
| Stale | 83 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_hook ~91
Run the Hook static-analysis / security rule engine over a CreateCode WASM (+ optional SetHook params) and return SARIF-lite findings. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| flags | number | – | – |
| grants | array | – | – |
| hookOn | string | – | – |
| namespace | string | – | – |
| parameters | array | – | – |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decoded | object | – | – |
| error | string | – | – |
| findings | array | – | – |
| summary | object | – | – |
| valid | boolean | – | – |
No examples provided.
annotate_hook_trace ~190
Annotate the trace[] array from an execute_hook result. Each entry is "label: HEXVALUE" (the hook's trace() memory dump). Decodes each blob by byte-width: 8-byte → canonical XFL float (definite) else int64 (both endians) + native-drops reading; 4-byte → UInt32 (both endians) + Ripple-epoch ISO date if in range; 20-byte → candidate account-id → r-address (possible, since arbitrary bytes can coincidentally encode); 32-byte → possible tx/hook hash (heuristic); other widths → raw blob. The raw hex is ALWAYS preserved as the primary field; nothing is suppressed; confidence is 'definite' only for canonical XFL. Fully offline, no network.
| Name | Type | Req | Description |
|---|---|---|---|
| trace | array | yes | trace[] from an execute_hook result; each element "label: HEXVALUE" |
No output schema declared.
No examples provided.
audit_account_hooks ~54
Fetch every hook on an account, pull each HookDefinition's WASM, and run the analyzer over all of them. Read-only network + offline analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
audit_account_remarks ~107
Read the Remarks (Remarks amendment) attached to an account's owned ledger objects — decoded name/value (hex→text where printable) with the immutable flag surfaced. Useful for dynamic-NFT patterns and object annotations. Follows the account_objects `marker` so accounts with many objects don't drop remarks on later pages (capped at 20 pages — `truncated:true` if hit); 1+ RPC reads.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | – |
| error | string | – | – |
| immutableCount | number | – | – |
| network | string | – | – |
| note | string | – | – |
| objects | array | – | – |
| objectsScanned | number | – | – |
| objectsWithRemarks | number | – | – |
| pagesFetched | number | – | – |
| remarkCount | number | – | – |
| summary | string | – | – |
| truncated | boolean | – | – |
No examples provided.
build_claimreward_unsigned ~55
Assemble an UNSIGNED ClaimReward transaction. Returns unsigned JSON + offline signing instructions. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| issuer | string | – | – |
| network | string | – | – |
No output schema declared.
No examples provided.
build_clawback_unsigned ~159
Assemble an UNSIGNED Clawback — an issuer revokes previously-issued tokens from a holder (ported from XRPL). Account is the ISSUER; the holder is whom you claw from. NOTE: requires the issuer to have enabled clawback (AccountSet asfAllowTrustLineClawback) BEFORE issuing. Cannot claw native XAH. Returns unsigned JSON + preflight. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | the token issuer (you) |
| currency | string | yes | 3-char ISO code or 40-hex currency |
| holder | string | yes | the account to claw tokens back from |
| network | string | – | – |
| value | string | yes | amount to claw back (positive) |
No output schema declared.
No examples provided.
build_cronset_unsigned ~212
Assemble an UNSIGNED CronSet — schedule a Hook's future self-invocations (Cron amendment). StartTime is Ripple-epoch seconds (0/omitted = ASAP); use startInSeconds for now+N. RepeatCount 0–256 (omit for a one-off), DelaySeconds = interval between repeats. Set cancel:true for tfCronUnset to remove the Cron. The account must have a Hook installed to act on the Cron pseudo-transaction. Returns unsigned JSON + preflight. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| cancel | boolean | – | tfCronUnset — remove the account's Cron |
| delaySeconds | number | – | seconds between repeats |
| network | string | – | – |
| repeatCount | number | – | 0–256 total repeats; omit for one-off |
| startInSeconds | number | – | convenience: schedule for now + N seconds |
| startTime | number | – | Ripple-epoch seconds; 0 = ASAP |
No output schema declared.
No examples provided.
build_deepfreeze_unsigned ~161
Assemble an UNSIGNED TrustSet that toggles a freeze on your trustline to a counterparty. action: deep_freeze (blocks holder sending AND receiving — needs DeepFreeze amendment), clear_deep_freeze, freeze (blocks sending only), unfreeze. Returns unsigned JSON + preflight. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | the issuer (you) |
| action | string | – | – |
| counterparty | string | yes | the holder side of the trustline |
| currency | string | yes | 3-char ISO code or 40-hex currency (issued, not XAH) |
| limitValue | string | – | your existing trust limit to preserve (defaults to "0") |
| network | string | – | – |
No output schema declared.
No examples provided.
build_disable_master_unsigned ~99
ROTATION WIZARD step 3 — assemble an UNSIGNED AccountSet asfDisableMaster (retire the master key). IRREVERSIBLE. ALWAYS runs disable_master_readiness internally and FAILS CLOSED — blocked=true unless a PROVEN working alternative signer exists (a regular key that has signed, or a reachable signer list that has multi-signed). Never signs.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
build_import_unsigned ~78
Assemble an UNSIGNED Import (Burn2Mint) transaction wrapping a HEX-encoded XPOP in the Blob field. Returns unsigned JSON + offline signing instructions. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
| xpopBlobHex | string | yes | HEX-encoded XPOP proof |
No output schema declared.
No examples provided.
build_payment_unsigned ~106
Assemble an UNSIGNED XAH Payment (amount in drops). Returns unsigned JSON + offline signing instructions + payload preflight. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| amountDrops | string | yes | native amount in DROPS (1 XAH = 1,000,000 drops); use xah_amount to convert XAH→drops |
| destination | string | yes | – |
| destinationTag | number | – | – |
| network | string | – | – |
No output schema declared.
No examples provided.
build_remit_unsigned ~264
Assemble an UNSIGNED Remit (XLS-55) — Xahau's atomic multi-asset push payment. Send multiple currencies (native + issued) and/or transfer existing URITokens and/or mint a new URIToken to one Destination in a single all-or-nothing transaction. The transactor auto-creates missing trustlines, pays token reserves, and creates the destination account if absent (no partial payments, no pathing). Optionally Inform a third-party hook. Returns unsigned JSON + payload preflight + offline signing instructions. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| amounts | array | – | currencies to send; each becomes an AmountEntry |
| blob | string | – | arbitrary hex payload |
| destination | string | yes | – |
| destinationTag | number | – | – |
| inform | string | – | third-party account to notify (weak TSH; its hook runs) |
| invoiceId | string | – | 64-hex InvoiceID |
| mintURIToken | object | – | mint a new URIToken to the destination (e.g. a receipt) |
| network | string | – | – |
| uriTokenIds | array | – | existing URIToken IDs (64-hex) to transfer to destination |
No output schema declared.
No examples provided.
build_set_regular_key_unsigned ~124
ROTATION WIZARD step 1 — assemble an UNSIGNED SetRegularKey to assign a rotatable regular key (or remove it if regularKey omitted). Moving authority off the unrotatable master key is the near-term quantum (HNDL) defense. Returns unsigned JSON + signing instructions; NEVER touches a secret. After it lands, send a TEST tx signed by the new key before disabling master.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
| regularKey | string | – | new regular key r-address; omit to REMOVE |
No output schema declared.
No examples provided.
build_set_remarks_unsigned ~190
Assemble an UNSIGNED SetRemarks (Remarks amendment) — attach, update, or delete key-value remarks on a ledger object you own (or, for URITokens/trustlines, issue). Each remark: name (required), value (omit to DELETE), immutable (Flags:1 = permanent). Max 32 per object, names unique, 1–256 bytes each; cost +1 drop/byte. RemarkName/RemarkValue are hex (non-hex text is UTF-8 encoded). Powers dynamic NFTs and rich object annotations. Returns unsigned JSON + preflight. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
| objectId | string | yes | 64-hex ledger object ID to annotate (AccountRoot, URIToken, Offer, Escrow, trustline, …) |
| remarks | array | yes | – |
No output schema declared.
No examples provided.
build_sethook_unsigned ~187
Assemble an UNSIGNED SetHook transaction from CreateCode + params, auto-running analyze_hook as preflight. On any CRITICAL finding the unsigned tx is WITHHELD (unsignedTx null) and only the findings come back, unless overrideCritical is true. Returns findings + unsigned JSON + offline signing instructions. Never signs; testnet by default.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| createCodeHex | string | – | – |
| flags | number | – | – |
| grants | array | – | – |
| hookOn | string | – | – |
| namespace | string | yes | 32-byte HookNamespace hex |
| network | string | – | – |
| overrideCritical | boolean | – | Build the tx even when preflight finds CRITICAL issues. Default false: the tx is withheld. |
| parameters | array | – | – |
| txTypes | array | – | – |
| wasmHex | string | – | – |
No output schema declared.
No examples provided.
build_signer_list_set_unsigned ~104
ROTATION WIZARD alt — assemble an UNSIGNED SignerListSet (multisig). Often SAFER than disable-master for high-value accounts: multiple recovery keys, no single point of loss. quorum=0 removes the list. Rejects an unreachable quorum (would lock out the account). Never signs.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
| quorum | integer | yes | – |
| signers | array | – | – |
No output schema declared.
No examples provided.
check_amendment_blocked ~88
Report whether the configured RPC node for this network is AMENDMENT BLOCKED (running xahaud too old to understand an enabled amendment — can't validate, submit, or vote), plus its build version and validated ledger. Reads server_info. Checks the network's fixed endpoint (no arbitrary-URL input, by design). 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| amendmentBlocked | boolean | – | – |
| buildVersion | string | – | – |
| error | string | – | – |
| network | string | – | – |
| networkId | – | – | – |
| note | string | – | – |
| remedy | string | – | – |
| summary | string | – | – |
| validatedLedger | – | – | – |
No examples provided.
classify_hook ~97
Infer in plain English what a Hook DOES (firewall/filter, emitter, stateful processor, financial/XFL, authorizer, autonomous agent…) from its structure — imports, hook/cbak exports, HookOn, state/emit/float/guard usage. Heuristic, offline; does not execute the bytecode.
| Name | Type | Req | Description |
|---|---|---|---|
| hookOn | string | – | – |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| archetype | string | – | – |
| behaviors | array | – | – |
| capabilities | array | – | – |
| confidence | string | – | – |
| error | string | – | – |
| firesOn | – | – | – |
| summary | string | – | – |
| valid | boolean | – | – |
No examples provided.
compute_reward ~111
Project claimable XAH network reward using the documented time-weighted model. Supply reward fields directly, or an address to read them live. Labelled DOCUMENTED_MODEL. LEGACY approximation — prefer reward_status, which applies the exact genesis reward-hook formula with live parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| balanceXAH | number | – | – |
| currentLedger | number | – | – |
| network | string | – | – |
| rewardAccumulator | number | – | – |
| rewardLgrFirst | number | – | – |
No output schema declared.
No examples provided.
currency_code ~64
Convert a currency between 3-char ISO code (e.g. USD) and its 160-bit/40-hex form. Non-standard 160-bit codes pass through. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| input | string | yes | a 3-char code or a 40-hex currency |
No output schema declared.
No examples provided.
decode_amount ~69
Decode an amount: native drops (digits), a serialized 8-byte native or 48-byte issued STAmount (hex), or an issued amount object {currency,issuer,value} → normalized value/currency/issuer. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | – | yes | drops string, STAmount hex, or amount object |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | – | – | – |
| drops | string | – | – |
| error | string | – | – |
| issuer | – | – | – |
| type | string | – | – |
| value | – | – | – |
| valueNote | string | – | – |
| xah | string | – | – |
No examples provided.
decode_b2m ~40
Heuristically classify a Burn2Mint-related transaction (XRPL↔Xahau bridge direction). Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| tx | object | yes | – |
No output schema declared.
No examples provided.
decode_hook_can_emit ~108
Decode a HookCanEmit 256-bit bitmap into the set of transaction types a hook is permitted to EMIT (HookCanEmit amendment). Same encoding as HookOn (inverted/active-low, active-high SetHook bit). NOTE: an ABSENT HookCanEmit field means the hook may emit ANY transaction (including SetHook) — this tool only decodes a present value. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| hookCanEmit | string | yes | HookCanEmit hex (up to 64 chars) |
No output schema declared.
No examples provided.
decode_hook_on ~62
Decode a HookOn 256-bit bitmap into the set of transaction types the hook fires on. Handles the inverted/active-low encoding and the active-high SetHook bit. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| hookOn | string | yes | HookOn hex (up to 64 chars) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | – |
| error | string | – | – |
| firesOn | array | – | – |
| hookOn | string | – | – |
No examples provided.
decode_lease_uri ~114
Decode an Evernode lease URIToken URI (the `evrlease`/LTV format) → lease index, lease amount in EVR (XFL-decoded), half ToS hash, mint identifier, outbound IP. Accepts the on-chain URI hex, the base64 text, or raw buffer hex. Verified against the canonical evernode-js-client encoder + real mainnet leases. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| uri | string | yes | URIToken.URI hex, base64 text, or raw lease-buffer hex |
No output schema declared.
No examples provided.
decode_result ~61
Decode a transaction engine result code (e.g. 0/tesSUCCESS, 153/tecHOOK_REJECTED) ⇄ its name. Accepts a number or the result-code name. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | a result code number or name |
No output schema declared.
No examples provided.
decode_sethook ~49
Decode a SetHook transaction (JSON or tx blob) into its hook definitions, each with HookOn decoded. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| tx | object | – | – |
| txBlobHex | string | – | – |
No output schema declared.
No examples provided.
decode_sign_request ~92
Decode a sign request (a Xaman/Xumm payload's txjson, or a raw tx_blob hex) into the transaction plus a plain-English 'what you would be authorizing' summary and safety warnings (SetHook, AccountDelete, key changes, no-expiry, already-signed). Offline — understand before you sign.
| Name | Type | Req | Description |
|---|---|---|---|
| txBlobHex | string | – | – |
| txjson | object | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| amountDecoded | – | – | – |
| error | string | – | – |
| summary | string | – | – |
| transactionType | – | – | – |
| tx | object | – | – |
| warnings | array | – | – |
No examples provided.
decode_tx_blob ~41
Decode a Xahau transaction blob (hex) into JSON via the Xahau-aware binary codec. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| txBlobHex | string | yes | – |
No output schema declared.
No examples provided.
decode_uritoken_id ~46
Validate a URIToken ID and explain its structure (SHA512-Half of issuer||URI; not reversible offline). Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| uriTokenId | string | yes | – |
No output schema declared.
No examples provided.
decode_xpop ~107
Decode an XPOP (Xahau Proof of Payment) — the proof blob inside an Import/Burn2Mint tx. Accepts the Import Blob hex (hex of the XPOP JSON) or the XPOP JSON itself. Returns the source ledger header, the decoded inner BURN transaction (type, burned drops = its Fee, target network), and the UNL validator set. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| xpop | – | yes | Import Blob hex, XPOP JSON string, or XPOP object |
| Name | Type | Req | Description |
|---|---|---|---|
| burnedDrops | – | – | – |
| error | string | – | – |
| innerTransaction | – | – | – |
| innerTransactionType | – | – | – |
| ledger | – | – | – |
| ledgerIndex | – | – | – |
| metaPresent | boolean | – | – |
| proofPresent | boolean | – | – |
| summary | string | – | – |
| targetNetworkId | – | – | – |
| validators | – | – | – |
| warnings | array | – | – |
No examples provided.
diagnose_failed_tx ~152
Why did my transaction fail? Plain-English diagnosis from ON-CHAIN facts: engine result decoded to cause + concrete fix (catalog of ~30 common Xahau failure codes), hook rollback return-strings decoded and interpreted (e.g. the genesis reward hook's 'You must wait N seconds' becomes a claimable-at date), the partial-payment trap on 'successful' Payments (delivered_amount vs Amount), and not-found triage (expired LastLedgerSequence / wrong network). 1 RPC read; authoritative — decodes what the chain recorded, re-executes nothing (use hook_execution_postmortem to replay hooks).
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| txHash | string | yes | transaction hash |
| Name | Type | Req | Description |
|---|---|---|---|
| causes | array | – | – |
| engineResult | – | – | – |
| engineResultCode | – | – | – |
| error | string | – | – |
| failed | – | – | – |
| fixes | array | – | – |
| found | boolean | – | – |
| hookRejections | array | – | – |
| network | string | – | – |
| notes | array | – | – |
| partialDelivery | – | – | – |
| resultClass | – | – | – |
| summary | string | – | – |
| txHash | string | – | – |
| validated | – | – | – |
| whatItTried | – | – | – |
No examples provided.
diff_node_amendments ~82
Diff the enabled-amendment sets of two networks (e.g. mainnet vs testnet) — what's enabled on one but not the other, by name where known. Explains why a transaction or Hook feature works on one network but not the other. 2 RPC reads.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | – | – |
| b | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | – | – |
| b | string | – | – |
| enabledA | number | – | – |
| enabledB | number | – | – |
| error | string | – | – |
| onlyOnA | array | – | – |
| onlyOnB | array | – | – |
| summary | string | – | – |
No examples provided.
disable_master_readiness ~93
ROTATION WIZARD gate — is it SAFE to disable this account's master key? Checks for a working alternative signer: proves whether the configured regular key has ALREADY signed for the account (gold standard) and whether a signer list exists. Returns safeToDisable + proven + reasons. Read-only. Run this BEFORE build_disable_master_unsigned.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
encode_hook_can_emit ~74
Build a canonical HookCanEmit hex from the list of transaction types a hook should be allowed to emit (HookCanEmit amendment; same encoding as HookOn). Omit the field entirely on the SetHook to allow emitting anything. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| txTypes | array | yes | e.g. ["Payment","Remit"] |
No output schema declared.
No examples provided.
encode_hook_on ~42
Build a canonical HookOn hex from a list of transaction types to fire on. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| txTypes | array | yes | e.g. ["Payment","Invoke"] |
| Name | Type | Req | Description |
|---|---|---|---|
| error | string | – | – |
| firesOn | array | – | – |
| hookOn | string | – | – |
No examples provided.
encode_tx_blob ~41
Encode a transaction JSON into an UNSIGNED Xahau binary blob (for inspection/round-trip; never signed). Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| tx | object | yes | – |
No output schema declared.
No examples provided.
estimate_hook_fee ~83
Estimate a Hook's cost signals from its WASM: byte size (drives the SetHook fee) and total static instruction count (a complexity/upper-bound proxy for execution fee). Labelled ESTIMATE — the on-ledger execution fee depends on the path actually executed. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
No output schema declared.
No examples provided.
estimate_hook_state_cost ~146
Compute the owner-reserve cost of Hook State entries under ExtendedHookState. Given each entry's value size in bytes and the HookStateScale (1–16), returns per-entry capacity (256×scale bytes), per-entry reserve units (= scale, charged even for 1 byte), total reserve units, overflow warnings, and the minimum scale needed. Reserve UNITS are exact; pass ownerReserveIncrementXah to also get an XAH figure. Offline.
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | – |
| ownerReserveIncrementXah | number | – | optional: your network's owner-reserve increment in XAH, to convert units → XAH |
| scale | integer | – | – |
No output schema declared.
No examples provided.
evernode_host_diagnostics ~129
One-call health check for an Evernode host (the official docs' troubleshooting checklist, automated): registration entry on the governor namespace, heartbeat liveness vs the on-chain active rule (current moment − heartbeatFreq×momentSize), instance load, reputation byte, EVR trustline + balance, registration URIToken held, lease offers, machine specs + accumulated EVR reward. Layout verified against canonical evernode-js-client + live mainnet. Read-only; ~9 serial RPC reads (slow but thorough).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | host r-address |
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| balances | object | – | – |
| checks | array | – | – |
| error | string | – | – |
| heartbeat | – | – | – |
| isRegisteredHost | boolean | – | – |
| leases | object | – | – |
| network | string | – | – |
| notes | array | – | – |
| registration | – | – | – |
| specs | – | – | – |
| summary | string | – | – |
| warnings | array | – | – |
No examples provided.
execute_hook ~298
Actually RUN a Hook's real WebAssembly bytecode in a local VM against a simulated transaction + ledger state, and report the true accept/rollback decision, return code/string, state writes, emitted txns and execution trace. Needs no xahaud node. Implements a subset of the Hook API; unsupported calls are recorded (fidelity LOCAL_VM, never faked).
| Name | Type | Req | Description |
|---|---|---|---|
| feeBase | number | – | – |
| hookAccountId | string | – | 20-byte account-id hex the hook is installed on |
| hookParams | object | – | – |
| keyletBlobs | object | – | 32-byte ledger index hex -> serialized object hex, for slot_set |
| ledgerSeq | number | – | – |
| network | string | – | – |
| otxnBlob | string | – | full originating-txn serialized blob hex (enables otxn_slot) |
| otxnFields | object | – | field-id -> hex value of originating-txn fields the hook reads |
| otxnParams | object | – | otxn param name -> hex value |
| resolveKeylets | boolean | – | if true, fetch any slot_set'd ledger objects live and re-run (async pre-resolve) |
| state | object | – | initial hook state: 32-byte key hex -> value hex |
| txType | string | – | originating tx type, e.g. "Payment" |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| caveat | string | – | – |
| degraded | boolean | – | – |
| emitted | array | – | – |
| error | string | – | – |
| exit | string | – | – |
| fidelity | string | – | – |
| foreignStateWrites | array | – | – |
| resolvedForeignState | array | – | – |
| resolvedKeylets | array | – | – |
| returnCode | – | – | – |
| returnString | string | – | – |
| stateApplied | – | – | – |
| stateWrites | array | – | – |
| syntheticCalls | array | – | – |
| trace | array | – | – |
| unsupportedCalls | array | – | – |
| wantedForeignState | array | – | – |
| wantedKeylets | array | – | – |
No examples provided.
explain_account ~90
One-call plain-English account snapshot: balance, key-safety read (master/regular key), installed Hooks (+what they fire on), trustlines, URITokens (Evernode leases auto-decoded), and recent activity — plus warnings and notes. Read-only; exactly 5 serial RPC reads (>=1100ms apart).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | r-address |
| network | string | – | – |
No output schema declared.
No examples provided.
fuzz_hook ~401
DIFFERENTIAL FUZZER: finds a Hook's accept/rollback decision boundary by running its REAL bytecode through the local VM against many DETERMINISTICALLY generated inputs (no randomness, no clock — fully reproducible). Sweeps axes you request: txType (a supplied list or all tx types), a raw otxn Amount-field byte range, otxn account/destination ids, and named otxn params. Reports counts {accept,rollback,halted,degraded}, per-axis boundary findings, and concrete accepting/rejecting sample inputs. Honest: degraded/halted runs are counted but excluded from the boundary; if every run degrades/halts it says INCONCLUSIVE and why. fidelity LOCAL_VM_FUZZ.
| Name | Type | Req | Description |
|---|---|---|---|
| amountField | number | – | otxn field id to write the Amount sweep into (default 6) |
| amountMax | number | – | Amount axis high (raw drops) |
| amountMin | number | – | Amount axis low (raw drops; field bytes are NOT STAmount-encoded) |
| feeBase | number | – | – |
| hookAccountId | string | – | – |
| hookParams | object | – | – |
| ledgerSeq | number | – | – |
| otxnFields | object | – | – |
| otxnParams | object | – | – |
| paramSweep | object | – | named otxn params -> candidate hex values to sweep |
| samples | number | – | number of generated inputs (default 64, max 512) |
| state | object | – | – |
| sweepAccount | boolean | – | also sweep a few deterministic account ids |
| sweepDestination | boolean | – | also sweep a few deterministic destination ids |
| txType | string | – | base originating tx type |
| txTypes | array | – | txType axis: tx types to sweep, e.g. ["Payment","Invoke"]. Default: all known tx types (capped). |
| wasmBase64 | string | – | – |
| wasmHex | string | – | – |
No output schema declared.
No examples provided.
get_account_hooks ~65
The Hooks installed on an account, with each HookOn bitmap decoded to the transaction types it fires on, and any HookName (a named hook fires only for transactions carrying the matching HookName). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_account_info ~40
Account root: balance, sequence, flags, regular key. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | r-address |
| network | string | – | – |
No output schema declared.
No examples provided.
get_account_lines ~39
Trustlines (issued-currency balances) held by an account. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_account_objects ~55
Ledger objects owned by an account, optionally filtered by type (hook, hook_state, uri_token, etc.). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
| type | string | – | – |
No output schema declared.
No examples provided.
get_account_offers ~36
Open DEX offers placed by an account. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_account_uritokens ~54
URITokens (Xahau-native NFTs) owned by an account, with each token's URI decoded from hex to text. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | – |
| network | string | – | – |
No output schema declared.
No examples provided.
get_amendment_status ~82
Live amendment status for the network: every ENABLED amendment (resolved to its human name where known, raw hash otherwise) plus any in the VOTING set (already at >80% support, counting toward enablement). Reads the on-ledger Amendments singleton — no admin node needed. 1 RPC read.
| Name | Type | Req | Description |
|---|---|---|---|
| network | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| caveat | string | – | – |
| enabled | array | – | – |
| enabledCount | number | – | – |
| error | string | – | – |
| knownNameTableSize | number | – | – |
| namedCount | number | – | – |
| network | string | – | – |
| summary | string | – | – |
| unnamedCount | number | – | – |
| voting | array | – | – |
| votingCount | number | – | – |
No examples provided.
How do I install the Xahau MCP server?
Xahau MCP runs locally as an npm package, launched with npx -y xahau-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · xahau-mcp
claude mcp add hugegreencandle-xahau-mcp -- npx -y xahau-mcp
What is the Xahau MCP server?
Xahau MCP is listed in the public MCP registry as io.github.Hugegreencandle/xahau-mcp. MCP server for the Xahau network, offline Hook WASM VM + static analyzer, read-only ledger tools. This page covers its npm package (xahau-mcp).
Is the Xahau MCP server safe to use?
Xahau MCP scores 74 out of 100 on VerifyMCP. We recorded 6 known advisories against it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Xahau MCP server expose?
Xahau MCP exposes 87 tools: xahau_server_info, get_account_info, get_account_objects, get_account_hooks, get_hook_definition, and 82 more. Their descriptions and schemas cost roughly 9,127 tokens of context every time the server is loaded.
Is the Xahau MCP server still maintained?
Xahau MCP is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Xahau MCP server under?
Xahau MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.