Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "wallet_check" (13 tools before, 14 now)
Check any wallet (EVM 0x address or Solana base58, case-sensitive) before paying it or taking its money: OFAC SDN list on both families; on Solana also the issuer freeze of USDC and EURC (Circle), USDT (Tether), PYUSD and USDG (Paxos) and USD1 (World Liberty), the issuer freeze index, and a fund trail up to three hops back. Returns verdict passed, blocked or unavailable, with each check. Paying an invoice (invoice_pay) runs this check on the receiving wallet and refuses with receiver_blocked, so a payment through Vurto Payments never reaches a sanctioned or frozen wallet. To pay someone direc…
Changed the definition of "invoice_create", "invoice_get" and "invoice_pay"
⟨48 unchanged words⟩ "type":["integer","string"]},"confidential":{"description":"Optional, Solana only. A private (confidential) invoice hides the receiving wallet from anyone with the link (invoice_get returns recipient: null), and every payment route screens the payer first: OFAC SDN list plus the issuer freeze of USDC and EURC (Circle), USDT (Tether), PYUSD and USDG (Paxos) and USD1 (World Liberty), the issuer freeze index, and a fund trail up to three hops back through the same checks (a flagged sender on the first hop blocks; on hops two and three it only warns). These are checks of the paying wallet, whatever token it pays with. A blocked payer gets payer_blocked.","type":"boolean"},"memo":{"description":"Optional note, up ⟨51 unchanged words⟩
⟨9 unchanged words⟩ dashes): requested amount, token, network, receiver (null on a private invoice), confidential (true on a private invoice), status (open or paid), the paying ⟨21 unchanged words⟩
Changed the definition of "swap_build"
⟨37 unchanged words⟩ one call when quoteId is omitted (recommended);: a route with GAIN first, re-quoting up to 3 rounds total before accepting one without gain, the same rule as Invoice; pass quoteId from a prior swap_quote to build ⟨244 unchanged words⟩
Added "invoice_create", "invoice_get", "invoice_pay" and 1 more (9 tools before, 13 now)
Create a payment request: who receives, which token, how much, on which network. Returns invoice.id, invoice.label (INV-XXXX-XXXX, what people copy), invoice.url (share this; it previews with the QR on WhatsApp and Telegram) and invoice.qr (PNG). No signature or API key needed. Only VERIFIED tokens of the network are accepted, by address or symbol — an unverified token is refused because a cloned "USDC" with its own pool would let the creator sell a fake at any price. The payer can pay with ANY token on that network.
Read an invoice by id (INV-XXXX-XXXX, with or without dashes): requested amount, token, network, receiver, status (open or paid), the paying transaction once paid, and received (the raw amount measured on-chain so far). Pending payments are re-checked on-chain on every read.
Build the plan to pay an invoice from payer, with the token payer holds (default: the invoice token). Nothing is signed or sent here. method "transfer": same token, a direct transfer built from the stored invoice (no fee, no gain; the receiver sees the payer as sender). method "swap": another token; amountIn is computed so the GUARANTEED minimum output covers the requested amount, the route is always the one with GAIN when there is one, and the output goes straight to the receiver (the receiver sees the DEX router as sender). Any surplus over the requested amount goes to the receiver. plan ha…
Changed the definition of "swap_build"
⟨118 unchanged words⟩ as the swap execution, then call swap_buildagain.again with quoteId set to the quote.id of that build (the approved route; without it a fresh quote may pick another provider whose spender you never approved). If it is "incomplete", do not ⟨138 unchanged words⟩
Certificate changed, valid to 2026-12-28
Certificate recorded, valid to 2026-10-30
Authorization not required
Unknown → Live
First tool surface recorded: 9 tools (server version 1.0.0)
https://swap.vurto.cc/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨185 unchanged words⟩ can only be paid in SOL), invoice_already_paid. On a private invoice the payer is screened first (OFAC SDN list and the issuer freeze of USDC and EURC (Circle), USDT (Tether), PYUSD and USDG (Paxos) and USD1 (World Liberty)): payer_blocked (403) means this wallet cannot pay it; screening_unavailable (503) means the screening could not finish, try again in a few seconds.
Hand the payment transaction to the server, right after sending it. The server reads the transaction on-chain and measures what reached the receiver in the invoice token; the payer must be the signer and the transaction must be newer than the invoice. Pending until mined; invoice_get re-checks. A hash pays one invoice only (tx_already_used once it confirmed another).