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.
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.
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
# 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 }
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
{
"quoteId": "q_4fc9e47d…",
"firm": true
}
→ 409 Conflict
{
"error": "quote_drifted",
"marginBps": 8,
"observedBps": 14
}
// nothing was signed. nothing reverted.
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
→ { "op": "subscribe", "pairs": [{ "in": "uSd2…NoG", "out": "So111…112", "amount": "10000000", "exactIn": true }] } ← { "type": "quote", "amountOut": "1515002609818", … } ← { "type": "invalidate", "quoteId": "q_4fc9…" }
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
integratorFeeBpsset by you · kept by you, in fullplatformFeeBpsset on-chain · kept by Vulcxsum≤ 100 bps, enforced on-chain and in the APIBuilt 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.
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.
| Plan | Price | Units / sec | Burst | API keys | Stream connections | Choose |
|---|---|---|---|---|---|---|
| Free | $0 | 20 | 40 | 2 | — | Start free |
| Starter | $19/mo | 40 | 80 | 3 | 1 | Get Starter |
| Builder Popular | $49/mo | 120 | 240 | 10 | 5 | Get Builder |
| Growth | $99/mo | 300 | 600 | 15 | 15 | Get Growth |
| Scale | $249/mo | 800 | 1,600 | 25 | 50 | Get Scale |
| Pro | $499/mo | 2,000 | 4,000 | 50 | 150 | Get Pro |
| Enterprise | Custom | from 2,000 | from 4,000 | 50+ | 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 →
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.