New: API keys, usage and earnings are self-serve in the Vulcx portal.Open the portal →
Swap routing API · Fogo mainnet

The swap router for every app, bot and wallet on Fogo.

One call searches every pool on the chain — up to five hops, split across venues when splitting wins — and hands back a transaction ready to sign.

5hops of routing depth
0RPC calls in the quote path
400msfirm-quote window
100%of your fee paid to your wallet
The complete route

One API between your users and every pool on Fogo

Your app sends a pair and an amount. Vulcx reads live state from every venue, picks the path, and returns a transaction — or the raw instructions, or the accounts for a CPI.

YOUR INTEGRATION LIQUIDITY ON FOGO WalletsSWAP UI · /instructions Trading botsSTREAM · FIRM QUOTES dApps & frontends@vulcx/sdk · /swap On-chain programsCPI · /cpi/route-accounts Vulcx router ValiantCONCENTRATED LIQUIDITY FluxBeamCONSTANT PRODUCT Fogo mainnetSETTLES ON-CHAIN
Quote & swap

Price discovery that never touches RPC

Quotes read pool state held in memory and kept current to the slot. /swap builds the transaction server-side against the exact route you were quoted; /instructions hands back the pieces when you need to compose.

  • Multi-hop and split routes — up to five hops, split across venues when it pays
  • Every leg named and weighted — you see which pool took what share
  • Price impact reported up front — with a severity you can gate on
GET /api/v1/quote
# 10 USDC.s → FOGO. Amounts are base units: USDC.s has 6 decimals, FOGO 9.
$ curl "https://api.vulcx.xyz/api/v1/quote
    ?inputMint=uSd2…NoG&outputMint=So111…112
    &amount=10000000&swapMode=ExactIn"

{
  "amountOut": "1515002609818",  // 1,515 FOGO
  "priceImpactBps": 14,
  "hopCount": 1,
  "routes": [{ "poolType": "Vortex", "percent": 100 }],
  "quoteId": "q_4fc9e47d…",
  "validForMs": 3000,
  "firmForMs": 400,
  "dataAgeMs": 19
}
Firm quotes

Price-or-fail, before a transaction exists

Hand back a quoteId and the engine replays that exact route. Add "firm": true inside the window and slippage collapses to a fixed margin — if the market moved past it you get a 409, not a signed transaction that reverts on chain.

  • Ed25519-signed quotes — verifiable without trusting the server
  • Route pinned by quoteId — no silent re-route between quote and swap
  • Failures before signing — your user never pays for a revert
POST /api/v1/swap
{
  "quoteId": "q_4fc9e47d…",
  "firm": true
}

→ 409 Conflict
{
  "error": "quote_drifted",
  "marginBps": 8,
  "observedBps": 14
}

// nothing was signed. nothing reverted.
Streaming

Quotes pushed the moment pools move

Subscribe to pairs over one WebSocket and get a fresh quote whenever the pools behind it change — plus an invalidate when a firm quote drifts, so a UI can grey out a stale price before anyone clicks.

  • Push on pool change — not a poll on a timer
  • Many pairs, one connection — subscribe and unsubscribe as users browse
  • Included from Starter — connections are counted per account
wss://api.vulcx.xyz/api/v1/stream
→ {
    "op": "subscribe",
    "pairs": [{
      "in":  "uSd2…NoG",
      "out": "So111…112",
      "amount": "10000000",
      "exactIn": true
    }]
  }

← { "type": "quote", "amountOut": "1515002609818", … }
← { "type": "invalidate", "quoteId": "q_4fc9…" }
Monetise

You keep every basis point you charge

Set your own fee per key or per request. It is paid in the output token straight to your wallet inside the same swap — Vulcx never holds it, so there is nothing to withdraw and no payout to wait for.

  • Two independent rates — yours is not a share of ours
  • Capped at 100 bps combined — an over-cap request is a 400, not a failed swap
  • Earnings read from the chain — per wallet and per key in the portal
fees on one swap
output to user your fee Vulcx
integratorFeeBpsset by you · kept by you, in full
platformFeeBpsset on-chain · kept by Vulcx
sum≤ 100 bps, enforced on-chain and in the API

Built for anything that swaps

Wallets

Put best-price swaps inside the wallet, sign-only, and earn your own fee on every one.

Trading bots

Stream quotes as pools move and fire firm swaps that fail before signing instead of reverting.

dApps & frontends

Drop in a swap without writing a router — the SDK returns a transaction ready to sign.

On-chain programs

CPI into the aggregator from your own program with the account list Vulcx builds for you.

Liquidations & vaults

Compose the swap into a larger transaction with /instructions — token accounts, memos, your own logic.

Analytics & agents

Price any pair on Fogo from live state, with llms.txt docs an agent can read.

Pricing

Start free. Scale when your volume does.

Limits are per account and shared by every key. Paid plans are billed in USDC.s on-chain, and the protocol fees your swaps pay are credited against each charge.

PlanPriceUnits / secBurstAPI keysStream connectionsChoose
Free $0 20402— Start free
Starter $19/mo 408031 Get Starter
Builder Popular $49/mo 120240105 Get Builder
Growth $99/mo 3006001515 Get Growth
Scale $249/mo 8001,6002550 Get Scale
Pro $499/mo 2,0004,00050150 Get Pro
Enterprise Custom from 2,000from 4,00050+150+ Contact us

Annual billing costs ten months. Free keys keep one stream connection until 14 November 2026. Requests without a key work too, on a shared per-IP budget of 2 units/s (burst 20). Full pricing →

1
/quote · /pricean in-memory read
3
/cpi/route-accountsan account set, no transaction
5
/swap · /instructionsrouting plus construction

Ready to route?

Give it a pair and an amount. Every pool on the chain, up to five hops, split where splitting wins — the part you do not have to write.