> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vulcx.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Vulcx FAQ — Fogo swaps, chains, fees & limits

> Answers to common Vulcx questions: supported Fogo tokens, quote freshness, fees, rate limits, transaction size, ExactIn vs ExactOut, and multi-hop behavior.

## General

<AccordionGroup>
  <Accordion title="What chains are supported?">
    Fogo. See [Supported Chains](/concepts/chains) for capabilities and supported DEXs.
  </Accordion>

  <Accordion title="What tokens are supported?">
    Any SPL token with liquidity on a supported DEX on Fogo: Vortex, Fluxbeam, Fogo.fun, 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.
  </Accordion>
</AccordionGroup>

## Quotes and pricing

<AccordionGroup>
  <Accordion title="How fresh are quotes?">
    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).
  </Accordion>

  <Accordion title="What's the difference between ExactIn and ExactOut?">
    * **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.
  </Accordion>

  <Accordion title="How are fees calculated?">
    Two types of fees:

    1. **Pool fees** set by the DEX operators. Shown in `feeBps` in the quote response.
    2. **Aggregator fee** on certain routes. Shown in `feeAmount` in the swap/instructions response.

    The `amountIn` and `amountOut` values already account for all fees. No hidden charges.
  </Accordion>
</AccordionGroup>

## Technical

<AccordionGroup>
  <Accordion title="Is devnet supported?">
    Not currently. The API operates on Fogo mainnet only. Devnet support may be added in the future.
  </Accordion>

  <Accordion title="What's the maximum transaction size?">
    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.
  </Accordion>

  <Accordion title="What are the rate limits?">
    Default: 60 requests/minute, 10 requests/second burst. If you hit a `429` response, use exponential backoff (1s, 2s, 4s). Contact the team for higher limits for production integrations.
  </Accordion>

  <Accordion title="When should I use /swap vs /instructions?">
    * 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.
  </Accordion>

  <Accordion title="What happens if a multi-hop swap partially fails?">
    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.
  </Accordion>

  <Accordion title="How do I monitor API status?">
    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.
  </Accordion>
</AccordionGroup>


## Related topics

- [Supported chains — Fogo](/concepts/chains.md)
- [Self-hosting Vulcx](/guides/self-hosting.md)
- [Swap fees — pool & aggregator fees explained](/concepts/fees.md)
- [Vulcx architecture — how swaps are routed on Fogo](/get-started/architecture.md)
- [Composing Swaps On-Chain (CPI)](/guides/onchain-cpi.md)
