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

# FAQ

> Quick answers on auth errors, timeouts, deposit amounts, fill times, quotes, and refunds.

Each answer leads with the fix. If yours isn't here, go to [Support](/resources/support).

<AccordionGroup>
  <Accordion title="My key returns 401 &#x22;Valid access token required.&#x22; What is wrong?">
    Send your tenant key in the `x-tenant-api-key` header on every request. That 401 appears whenever the header is missing or the key is invalid, even though the message mentions an access token. Your JWT code, if any, is fine. See [Authentication](/api-reference/authentication).
  </Accordion>

  <Accordion title="My order shows TIMED_OUT. What now?">
    Create a new order and send to its fresh deposit address. Orders expire about 30 minutes after creation if no deposit arrives, and nothing is lost at that point. Never send funds to an expired order's address. If you sent right at the deadline, contact [Support](/resources/support) with the order UUID and your transaction hash.
  </Accordion>

  <Accordion title="I sent an amount outside the order's range.">
    Contact [Support](/resources/support) with the order UUID and the deposit transaction hash. Every order carries `minimalAmount` and `maximalAmount`, and those two fields bind the deposit you actually send, whatever amount you quoted. Check them before broadcasting. Anything inside the range settles normally.
  </Accordion>

  <Accordion title="Where do my settled funds arrive?">
    At the `receivingAddress` you set when creating the order. The winning solver pays out there from its own capital ([solver auctions](/features/solver-auctions)). Once the status is `COMPLETED`, fetch the order with `GET /v1/orders/{uuid}` to see the delivery transaction.
  </Accordion>

  <Accordion title="How long does a fill take?">
    Average swap time is under 30 seconds once your deposit confirms. The variable part is the confirmation count, which differs by chain; the catalog's `neededConfirmations` field gives the number for each one. See [Supported chains](/features/supported-chains).
  </Accordion>

  <Accordion title="Are quotes binding?">
    Treat a quote as a live snapshot and create the order right away. Quotes stay indicative until your deposit confirms on-chain; the rate locks at confirmation, so refresh anything stale. There's currently no protocol fee on top ([Fees](/features/fees)).
  </Accordion>

  <Accordion title="Do I need an account?">
    No. The tenant key covers quoting, order creation, and tracking. Signing in with a wallet signature is optional and adds order history under `GET /v1/orders`. See [No accounts](/features/no-accounts).
  </Accordion>

  <Accordion title="How do I earn points?">
    Sign in with your wallet at [vane.xyz](https://vane.xyz) and swap. Every 100 dollars of volume earns one point, bridges earn 10% of that, and referrals add more. Your rank and league are on your [rewards page](https://vane.xyz/rewards). See [Points and referrals](/features/points).
  </Accordion>

  <Accordion title="Can I use the key shown in the docs?">
    Yes. It is Vane's shared tenant key and it covers a normal integration. If you're integrating Vane into a wallet or another product and need custom parameters or separate order tracking, contact [Support](/resources/support) for a dedicated API key. Keep any key on your server. See [Authentication](/api-reference/authentication).
  </Accordion>

  <Accordion title="Is there a refund if the swap fails?">
    Yes. Your deposit stays in escrow at the [per-order address](/features/deposit-addresses), so a swap that can't complete returns the deposit to you. An order stuck in `ERROR` always means contact [Support](/resources/support).
  </Accordion>

  <Accordion title="Is the order UUID a secret?">
    Treat it like one. Anyone holding a UUID can read the full order, deposit and receiving addresses included, with no authentication. Keep UUIDs out of logs and public URLs, and share one only with support.
  </Accordion>

  <Accordion title="Why did my request return a 500 with a readable message?">
    Invalid input (an unknown token ID, a malformed address, a zero amount) returns `500` with a descriptive message. Match on the message text and fix the input. [Errors](/api-reference/errors) lists the patterns.
  </Accordion>
</AccordionGroup>
