MCP

The whole catalog,
one MCP server.

Agents discover, explore, and execute Wandlet actions over MCP. Pay per cast with x402 — no account, no sign-up — or hold an API key backed by a credit balance you top up by card. Same actions, same grants, same receipts as every human caller.

Connect

Point your agent at the catalog.

your agent's MCP configuration
{ "mcpServers": { "wandlet": { "url": "https://api.wandlet.app/mcp" } } }

The examples on this page are illustrative shapes. The server's own discovery output is the wire truth — build against what it returns, not against this page.

The loop

Discover, explore, execute.

  1. 01

    Discover

    Ask for actions by what you need done. Every result carries a price quote — three numbers, not one.

    → discover { "q": "get block data" } ← { "actions": [ { "id": "get-block-data", "pack": "web3-developer", "summary": "A block number in, the decoded block out.", "price": { "denomination": "USD", "p50": "0.004", "p95": "0.007", "ceiling": "0.012" } } ] }

    p50 and p95 come from real receipts; the ceiling is the most a run may spend. Estimates, not promises — spend stops at the ceiling and the remainder refunds.

  2. 02

    Explore

    Fetch one action's full contract: its inputs and outputs, the capabilities it declares, the hosts it may reach, and the same quote triple.

  3. 03

    Execute

    Run it. The response is the action's output plus a signed, itemized receipt for exactly this run.

Paying

Two rails, one schedule.

Per cast, no account — x402

Call without credentials and the server answers 402 with a machine-readable quote. Pay it, retry, done.

→ POST /v1/cast/get-block-data ← 402 Payment Required { "quote": { "ceiling": "0.012", "asset": "USDC", "pay_to": "…", "valid_until": "…" } } → POST /v1/cast/get-block-data X-PAYMENT: <signed payment for the quote> ← 200 { "output": { … }, "receipt": { …signed, itemized… } }

The quote is the ceiling, in the rail's own denomination. Nothing is custodial on this path.

API key + credit balance

Create a key from your account and back it with a balance you top up by card. The agent sends the key; runs settle against the balance in credits.

One price schedule, rendered in the caller's denomination: credits on a balance, dollars on an x402 quote. The conversion table is public →

Keys are shown once at creation and never again. Treat them like money — they spend it.

The fiat on-ramp, both directions. A human pays with a credit card, an agent pays per cast — and the platform treasury pays the upstream vendor either way, transparently, on its own rail. Anyone can pay any curated x402-capable API with a card, through an action. The curated vendors are public →

The receipt

Itemized, signed, verifiable.

Every execution returns one. The lines sum to the total — by construction — and a public verifier checks the signature and the arithmetic. Field names below are illustrative; the verifier documents the exact schema.

{ "wisp": "w_7f3k…", "action": "get-block-data@1.4.2", "lines": [ { "kind": "wasm_fuel", "pixie": "120" }, { "kind": "egress_bytes", "pixie": "36" }, { "kind": "host_priced", "host": "edge.goldsky.com", "pixie": "900", "proof": "x402:…" }, { "kind": "developer_fee", "pixie": "100" } ], "total_pixie": "1156", "settlement": { "mode": "settled", "rail": "x402:…", "paid": "$0.0058" }, "rates_version": "…", "evidence": [ "signed-receipt", "payment-proof" ], "sig": "ed25519:…" }

Pixie is the meter's exact unit; the receipt pins the rates it settled under, so a later rate change never re-prices a past run. Units and conversion →

Evidence

Ask for the proof you need.

Set required_evidence on any cast. A run demanding attestation is routed only to hardware that can produce it — and a receipt is payable only if its evidence satisfies what you demanded. If no attested capacity exists yet, you get a clean typed refusal, never a silently weaker proof.

Browse the catalog The platform story