Skip To Content
Vurto Docs
Português

API, MCP And CLI

Everything Swap and Payments do is reachable without a browser. The API builds transactions and checks them, and the signature always stays with you.

REST API

Open under /v1, with no API key to quote, build or execute.

OpenAPI

MCP

22 tools for AI agents: swaps, invoices, batches, wallet checks and signing.

https://swap.vurto.cc/mcp

CLI

vurto-swap: quotes, swaps, invoices and payroll from a CSV, signing on your machine.

The full guide, always current, is swap.vurto.cc/agent-api.md. Fetch it live: when this page and the guide disagree, the guide and the live API win.

Base URLs

EnvironmentEVMSolana
Productionhttps://swap.vurto.cc/v1https://swap.vurto.cc/v1/svm
Developmenthttps://swap-dev.vurto.cc/v1https://swap-dev.vurto.cc/v1/svm

/v1 is public, open to any origin, and stable within v1: a breaking change gets a v2.

Rules Of The API

  • No custody. The API returns calldata, typed data or an unsigned Solana transaction. It never asks for a private key or a seed phrase, and refuses a request that looks like one with 400 secret_in_payload.
  • wallet is not authentication. It says which wallet will sign. The signature, or a credential issued to that wallet, is the proof.
  • One read needs a credential: the swap history list, GET /executions. Everything else works without one.
  • Amounts: send amount as a human decimal string; every amount in a response is a raw integer string in the token's smallest unit. Parse it as a big integer, never as a float.
  • Errors come as {"error": {"code", "message", "details"}}. Act on code; message is safe to show a person.

Credentials

Optional, and worth having when you serve many users from one address: they move your limit from the per-IP cap to the credential's own budget. To issue one, open swap.vurto.cc, connect the EVM wallet it should belong to, sign in, and click the key icon on that wallet's card in the wallet panel. The secret is shown once. Send it as:

Authorization: Bearer vswap_<id>_<secret>

A credential has scopes (read, build) and a budget of 240 cost units per rolling 60 seconds.

Rate Limits Per IP

CallsPer Minute
Builds: /swap, /swap/{buildId}/refresh, /multi-quote/build, /orders12
Writes: /executions20
Reads: GET /executions/{id}30
/ethflow/refund and /invoices10
/payouts6 (100 a day)
/payouts/charge12

A 429 means back off, not retry in a loop.

What Is In It

AreaEndpoints
Networks and tokensGET /chains, /tokens, /token, /balances
SwapPOST /quote, /swap, /swap/{buildId}/refresh, /orders, /executions, /ethflow/refund, /warm
Baskets (N:N)POST /multi-quote, /multi-quote/build
Delivering to another walletPOST /destination/challenge, /destination/authorize
InvoicesPOST /invoices, GET /invoices/{id}, POST /invoices/{id}/pay, /invoices/{id}/payments, /invoices/{id}/analysis-payment/transfer, /invoices/{id}/analysis-payment
BatchesPOST /payouts, /payouts/charge, /payouts/charge/transaction, /payouts/reuse, /payouts/payments
Wallet checkGET /screening/{wallet}
SolanaThe same vocabulary under /v1/svm: quote, swap, execute, tx, multi-quote, multi-swap, balances, tokens, token, prices
HelpGET /health, POST /report

A First Call

curl -sS https://swap.vurto.cc/v1/quote \
  -H 'content-type: application/json' \
  --data '{"chainId": 42161, "tokenIn": "USDC", "tokenOut": "WETH",
           "amount": "100", "slippageBps": 50, "wallet": "<the EVM address that will sign>"}'

Without wallet the quotes are indicative: real routes and prices, but they cannot be built later.

Solana Differs In Four Places

  1. chainId is the string "solana-mainnet".
  2. There is no approve, so a build is one transaction and never a steps[] array.
  3. Signing uses a Solana key.
  4. A signature is not a receipt. Confirm with GET /v1/svm/tx before saying it worked. Addresses are base58 and case-sensitive: never change their case.

MCP For AI Agents

Paste https://swap.vurto.cc/mcp into an MCP client. The tools map one to one to the API: swap_quote, swap_build, swap_status, report_execution, prepare_signing, double_quote, double_build, nn_quote, nn_build, destination_challenge, destination_authorize, invoice_create, invoice_get, invoice_pay, invoice_report_payment, invoice_analysis_pay, invoice_report_analysis_payment, payout_batch, payout_charge, payout_reuse, payout_report_payment and wallet_check.

A ready-made agent skill for Payments: swap.vurto.cc/skills/vurto-payments/SKILL.md. For Lend and Swap through an agent, AnA has its own MCP at https://ana.vurto.cc/mcp, with its agent guide.

CLI

Served by the site itself with a checksum, not from a package registry:

curl -sO https://swap.vurto.cc/cli/vurto-swap-0.3.6.tgz
curl -s https://swap.vurto.cc/cli/vurto-swap-0.3.6.tgz.sha256 | sha256sum -c -
npm i -g ./vurto-swap-0.3.6.tgz

Some commands:

vurto-swap check   --wallet 0xRECEIVER --chain base
vurto-swap quote   --chain arbitrum --in USDC --out WETH --amount 100 --wallet 0xYourAddress
vurto-swap swap    --chain arbitrum --in USDC --out WETH --amount 100 --wallet 0xYourAddress --json > plan.json
vurto-swap sign    --wallet 0xYourAddress < plan.json
vurto-swap invoice create --chain base --to 0xRECEIVER --token USDC --amount 100 --memo "rent"
vurto-swap payout  --file payroll.csv --chain base --token USDC --wallet 0xPAYER --batch

The CLI signs on your machine, with your wallet or a terminal prompt with echo off.

Batch Contract Called Directly

On EVM, a batch built by Vurto is authorized by Vurto and pays 0.1%. The same batch contract can also be called by anyone without that authorization: then it does no screening and charges 1% on-chain.