Skip to main content

General

Fogo. See Supported Chains for capabilities and supported DEXs.
Any SPL token with liquidity on a supported DEX on Fogo: Valiant, Fluxbeam, or Moonit. If a direct pool doesn’t exist, the routing engine tries multi-hop paths through intermediate tokens like FOGO or USDC.If GET /api/v1/quote returns no route found, the token either has no listed pools or insufficient liquidity for the requested amount.

Quotes and pricing

Quotes reflect real-time pool state at the moment of the request. Prices can change between getting a quote and submitting the transaction. The otherAmountThreshold field enforces a minimum output (ExactIn) or maximum input (ExactOut) on-chain.Quotes don’t have an explicit TTL, but the transaction built from POST /api/v1/swap expires at lastValidBlockHeight (roughly 60 seconds).
  • ExactIn: You specify the exact input amount. The API estimates the output. Use when selling a specific amount (“sell exactly 1 FOGO”).
  • ExactOut: You specify the exact output amount. The API estimates the input needed. Use when buying a specific amount (“buy exactly 100 USDC”).
Both modes enforce slippage protection on-chain.
Up to three, each reported separately:
  1. Pool fees set by the DEX operators. Shown as feeBps in the quote response and feeAmount in the swap/instructions response.
  2. Vulcx’s protocol feeplatformFeeBps, taken from the output amount and reported as platformFeeAmount.
  3. Your integrator feeintegratorFeeBps, set per request and kept by you in full, paid on-chain to your referrer wallet.
Rates 2 and 3 are independent and add; yours is not a share of ours. Their sum is capped at 100 bps. See Fees.The amountIn and amountOut values already account for all fees. No hidden charges.

Technical

Not currently. The API operates on Fogo mainnet only. Devnet support may be added in the future.
Transactions have a 1232-byte limit. For multi-hop routes with many accounts, the API uses Address Lookup Tables (ALTs) to compress the transaction. If you use POST /api/v1/instructions, include the addressLookupTableAddresses when building a v0 transaction.
One budget for every key regardless of plan: 100 cost units/second, burst 200. Requests are debited by weight — a quote costs 1, a transaction build costs 5 — so that is 100 quotes/second or 20 builds/second. Without a key you get 1 unit/second, burst 5. If you hit a 429, use exponential backoff (1s, 2s, 4s). See Rate limits.
  • Use POST /api/v1/swap for the simplest integration. You get a ready-to-sign transaction.
  • Use POST /api/v1/instructions when you need to compose the swap with other instructions in a single transaction (e.g., creating token accounts, adding memos, closing accounts).
Both use the same routing engine and produce the same on-chain result.
Nothing. All swap instructions execute atomically on-chain. If any hop fails (insufficient liquidity, slippage exceeded, etc.), the entire transaction reverts. No partial fills, no stuck funds.
Call GET https://api.vulcx.xyz/health. It returns {"status": "ok"} when the service is running. For production integrations, poll this endpoint periodically and alert if it returns a non-200 status.For a human-readable view — API health plus a live quote, and a log of past incidents — see vulcx.xyz/status. Those checks run in your browser, so treat /health as the source of truth for automation.
Last modified on August 31, 2026