Robyn — Gasless Cross-Chain for AI Agents is an MCP server with 72 tools an agent can call, among them null_agent_guide, null_balance, null_ecosystem. It answers at https://api.anygas.xyz/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 23 October 2026, succeeded.
Gasless cross-chain for AI agents: 25 nodes incl. Solana & native Bitcoin. One signature, no gas.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
null_agent_guide | One read that teaches an agent to use every NULL capability with the right privacy posture: create an identity, seal + send + scan, start forward-secret sessions, drop an anonymous tip, check a Legacy heartbeat, make/detect stealth payments |
null_balance | Reads an address balance through the NULL server-side RPC proxy, so YOUR IP never reaches any public RPC provider (this host queries upstream from its own address). BE HONEST ABOUT THE TRADE: querying a stealth address you derived LINKS tha Inputs: address |
null_ecosystem | The live NULL manifest: every product (messenger, Pay, Vault, Drop, Legacy, Agent Wire, forward secrecy), its status, its page, the wired/proposed integrations between them, the security spine, and the concept pipeline. This is the same sin |
null_names_market | Live listings of premium handles for sale, plus the full deal protocol: agree peer-to-peer in a sealed chat, pay stealth or via NULL Escrow 2-of-3, then finalize with the dual-signed (secp + ML-DSA) witness-chained transfer and a 2% ($1 min |
null_names_quote | Quotes a handle: 3ch $512/yr, 4ch $128/yr, 5-6ch $4/yr (deliberately under ENS), 7+ characters FREE forever. Includes live state (available/registered/grace/premium with the 21-day Dutch decay) and the exact register->pay->claim steps. Name Inputs: name |
null_prekeys_fetch | Fetches {spk, sigSpk, otk, otksLeft} for a recipient so you can start an X3DH-PQ forward-secret session (SDK: fs.startOutbound). ALWAYS fetch by META-ADDRESS: the sigSpk check verifies against the meta-address spendPub (sha256("null-fs-spk/ Inputs: recipient, nonce |
null_prekeys_publish | Makes you reachable with forward secrecy: publishes your signed prekey bundle (medium-term spk + one-time otks) so peers can start X3DH-PQ sessions TO you. Generate and sign locally with the SDK (fs.genBundle + publishPrekeys — sigSpk is se Inputs: address, metaAddress, spk, sigSpk, otks, ts |
robyn_7702_check | Check that a signed EIP-7702 authorization tuple recovers the expected account, and whether its nonce matches the live account nonce. Free, read-only, moves nothing. Inputs: chainId, authorization |
robyn_7702_delegate | The canonical Robyn EIP-7702 batch-executor delegate: its address on each of the 22 EVM chains, the ABI, and the EIP-712 scheme for executeSigned. Delegate to this and the relayer can sponsor your transactions. Read-only. |
robyn_attestation | Returns a relayer-SIGNED attestation that, as of a signed timestamp, every component was up (router, signing daemons, MCP, privacy relay) AND the privacy invariants held — the adversary probes could not distinguish cover traffic from real ( |
robyn_capability_snapshot | A signed, timestamped record of current capability: which chains can actually be PAID OUT ON right now, which are merely policy-eligible, which rails are execute-ready, and whether delivery figures are measured or estimated. USE `serviceabl |
robyn_changelog | Machine-readable API history. Pass the version your integration was built against as `since` and you get only what has changed after it, with an explicit `breaking` flag on each entry. CHECK `mustAct` FIRST: if true there are breaking chang Inputs: since |
robyn_counterparty_check | Your OWN payment history with a recipient address: how many times, how recently, and whether this amount is typical. Call it before paying an address you have not confirmed. THIS IS NOT A REPUTATION SCORE and says nothing about whether the Inputs: toAddress, amount |
robyn_cross_chain | Plan a gasless cross-chain move and get the exact payload to sign. This hosted server never holds your key: call this, sign what it returns with your own wallet, then call robyn_submit to have the relayer broadcast it and pay the gas. Inputs: fromChain, fromToken, amount, toChain, toToken, toAddress |
robyn_delivery_stats | How long settlements ACTUALLY take, per rail and per corridor — not a single advertised constant. CHECK `basis`/`status`: below the sample threshold this returns `insufficient-data` and the figure is a static ESTIMATE, not a measurement. Sa |
robyn_errors | The full error taxonomy: every errorCode, whether it is retryable, and the suggested recovery action. Read this once and branch on errorCode instead of parsing messages. |
robyn_evidence_bundle | Assembles EVERYTHING about a settled transfer in one call: the on-chain verification, the unit-by-unit fee breakdown, what the alternative route would have cost, and whether the delivery time is measured or estimated — signed as a whole. Th Inputs: id, recipient, minAmount |
robyn_fee_forensics | Reconstruct a settled transfer unit by unit: destination payout gas, Robyn margin, or a Robyn SUBSIDY where Robyn absorbed a loss. Each line names who was paid and how the figure was derived. Anything that cannot be attributed is returned a Inputs: id |
robyn_improve_cost | Turns a price into a decision. Returns concrete, QUANTIFIED changes — a cheaper destination chain with the exact saving, the size at which a fixed payout cost stops dominating, whether the instant float lane applies, and whether rails that Inputs: fromChain, toChain, amount, fromToken, toToken, toAddress |
robyn_integration_lint | Post the request you INTEND to make and get back what is missing or unsafe, with the concrete consequence. Run this before your first live execute. Findings marked `unsafe` can lose money or make you report something untrue — fix them, do n Inputs: endpoint, payload |
robyn_mandate_certificate | A signed certificate listing every spend counted against a mandate, the budget, the total spent, and whether it stayed inside. Hand it to the principal at the end of a period. Every spend listed was VERIFIED ON-CHAIN before counting, and th Inputs: mandateId |
robyn_mandate_check | Check a proposed spend against a signed spending mandate BEFORE making it. Returns WITHIN_MANDATE, EXCEEDS_MANDATE or EXPIRED plus the remaining budget. If EXCEEDS_MANDATE, do NOT split the spend into smaller pieces to get under the limit — Inputs: mandateId, amount |
robyn_mandate_cosign_request | For mandates with a co-sign threshold, check whether a specific spend needs the principal to approve it and get the exact digest they must sign. The digest binds the mandate, the transfer AND the amount, so an approval cannot be reused for Inputs: mandateId, transferId, amount |
robyn_mandate_events | Poll for spend, nearly-exhausted, exhausted, approval-required and revoked events on a principal's mandates. Pass the returned `cursor` back as `since` for only what is new. Use this to tell a principal their budget is running low or that a Inputs: principal, since, limit |
robyn_mandate_list | List all mandates granted by a principal address, with remaining budget, co-sign threshold, expiry and revocation state. Use this before telling a user they are safe: live mandates can still be drawn against WITHOUT further approval, and a Inputs: principal |
robyn_mandate_status | Remaining and consumed budget for a signed mandate. Consumption counts ONLY transfers verified on-chain, so the figure cannot be inflated by claiming spends that did not happen. Inputs: mandateId |
robyn_mesh | List the Robyn gasless chains and the cross-chain route graph (22 EVM nodes + Stellar), plus the relayer/Permit2 addresses. No credentials needed. |
robyn_message_anchor_proof | Merkle inclusion proof for an anchored row id: leaf, path, root, the signer’s EIP-191 signature over the batch statement and the on-chain tx when enabled. Verify locally with plus-sdk verifyAnchorProof(). Read-only. Inputs: id |
robyn_message_directory | Every published v2 mailbox. PUBLIC rows carry {address, metaAddress, kemPub}; PRIVATE rows (the default since 2026-08-28) carry {handle, metaAddress, kemPub} and deliberately NO address. Identical for every reader, so fetching it reveals no |
robyn_message_erasure | The last purge statement (expired count, cumulative, root of purged ids) signed by the operator. Read-only. |
robyn_message_feed | Returns released rows {id, ephemeralPubKey, viewTag, ct, releaseAt, nextAfter}, identical for every reader. Scan locally with the SDK (inbox(identity)) — checkStealthAddress with your viewPriv, then open ct with your KEM secret. Page with a Inputs: since, after, limit |
robyn_message_info | Sonar — PRIVATE · SEALED · POST-QUANTUM MESSENGER (broadcast to everyone, understood by one, remembered by none). Hybrid ML-KEM-768+X25519 encryption, a one-time stealth handle per message, fixed-size ciphertexts, 60 s release grid. The ser |
robyn_message_mailbox_of | For a Robyn name or NULL handle the server must resolve it, so this reveals your intended recipient to the server — prefer robyn_message_directory when you have an address. Returns {address|handle, metaAddress, kemPub} (private-handle rows Inputs: addressOrName |
robyn_message_publish_mailbox | Registers a mailbox so others can seal to you. PRIVATE BY DEFAULT: the server stores only a salted hash of your signing address — pass `handle` to be reachable by name (agents get the same handle claim browsers have), or `public:true` to bi Inputs: address, metaAddress, kemPub, ts, sig, handle |
robyn_message_send | Relays a message you sealed locally with /svc/msg2-sdk.mjs (seal(mailbox, inner) → {ephemeralPubKey, viewTag, ct}). This tool cannot encrypt for you: sending plaintext here would expose it to the relay, so it only accepts the sealed triple. Inputs: ephemeralPubKey, viewTag, ct |
robyn_netting_account | Whether an address is enrolled (and therefore custodied), its internal balance, recent history, and `nextNonce` — which you MUST use when signing the next transfer or withdrawal. An address that never enrolled is reported as not custodied. Inputs: address |
robyn_netting_enroll_payload | Returns the EXACT message the account must sign with its OWN key to open a custodial balance. This endpoint holds no key and enrols nobody — it returns the text; the user signs it, then POST {address, signature} to /api/netting/enroll. CUST Inputs: address |
robyn_netting_info | Explains the opt-in netting ledger: transfers between two ENROLLED accounts settle as a book entry — no chain, no gas, no fee, instant, at ANY size including amounts below every per-chain cost floor. CUSTODIAL — this is the ONE part of Roby |
robyn_netting_preview | Free and read-only. Given an amount, ranks EVERY exit chain by what actually arrives after the destination payout cost is deducted. Those costs differ by more than 1000x (Avalanche delivers ~$0.99994 of a dollar; Linea ~$0.927), so which ch Inputs: amount, toChain |
robyn_netting_reserves | Publishes what Robyn OWES across all netting accounts against the real relayer float backing it, per chain. Solvency is checkable rather than asserted. Deposits are refused if they would push liabilities above a safe share of the float. Rea |
robyn_netting_statement, robyn_netting_transfer_payload, robyn_payment_request_prepare, robyn_payment_request_settlement, robyn_payment_request_verify, robyn_plan, robyn_plus_claim, robyn_plus_info, robyn_plus_invoice, robyn_plus_invoice_status, robyn_plus_trial, robyn_preflight, robyn_preflight_full, robyn_prepare, robyn_privacy_posture, robyn_quote, robyn_receipt_deliver, robyn_receipt_verify, robyn_recipes, robyn_refusal_verify, robyn_route_status, robyn_sandbox_do, robyn_settle, robyn_spend_statement, robyn_sponsor_7702, robyn_submit, robyn_verify_outcome, robyn_vip_status, robyn_why_this_route, robyn_yield_account, robyn_yield_quote, robyn_yield_spend
Every block below points at https://api.anygas.xyz/mcp. Pick your client and copy.
claude mcp add --transport http robyn-gasless-cross-chain-for-ai https://api.anygas.xyz/mcp
{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.anygas.xyz/mcp"]
}
}
}{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"url": "https://api.anygas.xyz/mcp"
}
}
}{
"servers": {
"robyn-gasless-cross-chain-for-ai": {
"type": "http",
"url": "https://api.anygas.xyz/mcp"
}
}
}{
"context_servers": {
"robyn-gasless-cross-chain-for-ai": {
"url": "https://api.anygas.xyz/mcp"
}
}
}{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"serverUrl": "https://api.anygas.xyz/mcp"
}
}
}{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"url": "https://api.anygas.xyz/mcp"
}
}
}name: Robyn — Gasless Cross-Chain for AI Agents
version: 0.0.1
schema: v1
mcpServers:
- name: Robyn — Gasless Cross-Chain for AI Agents
type: streamable-http
url: https://api.anygas.xyz/mcp{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"httpUrl": "https://api.anygas.xyz/mcp"
}
}
}{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"type": "http",
"url": "https://api.anygas.xyz/mcp"
}
}
}{
"mcpServers": {
"robyn-gasless-cross-chain-for-ai": {
"url": "https://api.anygas.xyz/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.anygas.xyz%2Fmcp&type=streamable_http&id=robyn-gasless-cross-chain-for-ai&name=Robyn%20%E2%80%94%20Gasless%20Cross-Chain%20for%20AI%20Agents
It answered our last check on 23 October 2026 in 428 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
72, as returned by the server's own tools/list on 17 September 2026: null_agent_guide, null_balance, null_ecosystem, null_names_market, null_names_quote, null_prekeys_fetch, null_prekeys_publish, robyn_7702_check, and 64 more.
It answered our last check on 23 October 2026 in 428 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.anygas.xyz/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.ox31461. Endpoint host: api.anygas.xyz. ARD identifier: urn:air:io.github.ox31461:mcp:robyn.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.