> ## 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.

# Get challenge nonce

> Returns a challenge nonce (a UUID v4) for SIWX wallet-signature authentication. No authentication is required and no cookie is set at this step. Fetch a fresh nonce for each sign-in, sign the message `Nonce: <nonce>` with the wallet, then submit it to `POST /auth/siwx/verify`. A `201` from verify consumes the nonce; a failed verify (bad signature, missing or wrong tenant key) does not, so a retry may reuse it.



## OpenAPI

````yaml /openapi.json get /auth/siwx/challenge
openapi: 3.1.0
info:
  title: Vane API
  version: 1.0.0
  summary: Cross-chain and same-chain swaps filled by an open network of solvers.
  description: >-
    Vane turns a swap into an intent: you declare what you want to receive, the
    API returns a per-order deposit address, and a solver fills the order
    against the escrowed deposit ([how solvers fill
    orders](/features/solver-auctions)).


    **Authentication.** Most endpoints accept a tenant API key sent as the
    `x-tenant-api-key` header (accountless integration). The key pre-filled in
    the API playground is a shared public key for evaluating the API. Production
    integrations use their own tenant key, requested from support
    (help@vane.xyz) and kept server-side. A JWT access token from SIWX
    wallet-signature auth also satisfies these endpoints and attributes orders
    to a user account, which adds order history (`GET /v1/orders`) and points.


    **Error behavior.** Errors use the envelope `{statusCode, message, error}`.
    Field order varies and some errors omit `error`. Most business validation
    failures (an unknown token id, a malformed address, an invalid amount, an
    unknown order UUID) return HTTP `500` with a descriptive message, while
    `400` appears only for malformed query parameters. Match on the message text
    for programmatic handling, not just the status codes.


    **The fields `exchange` and `tradePath`** describe how a quote is priced and
    routed across order-book legs. They say nothing about settlement, which
    solvers perform separately.
  contact:
    name: Vane support
    email: help@vane.xyz
    url: https://vane.xyz
  termsOfService: https://vane.xyz/terms-and-conditions
servers:
  - url: https://api.vane.xyz/api
    description: Production
security:
  - tenantApiKey: []
tags:
  - name: Tokens
    description: The token catalog, swap limits, and quotes.
  - name: Orders
    description: Create swap orders and track them to a terminal state.
  - name: Auth
    description: >-
      Optional SIWX wallet-signature authentication. Adds order history and
      points.
paths:
  /auth/siwx/challenge:
    get:
      tags:
        - Auth
      summary: Get challenge nonce
      description: >-
        Returns a challenge nonce (a UUID v4) for SIWX wallet-signature
        authentication. No authentication is required and no cookie is set at
        this step. Fetch a fresh nonce for each sign-in, sign the message
        `Nonce: <nonce>` with the wallet, then submit it to `POST
        /auth/siwx/verify`. A `201` from verify consumes the nonce; a failed
        verify (bad signature, missing or wrong tenant key) does not, so a retry
        may reuse it.
      operationId: getSiwxChallenge
      responses:
        '200':
          description: Challenge nonce to sign.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChallengeResponse'
              example:
                nonce: b3c1a9e2-4f6d-4a8b-9c2e-1d5f7a3b8c4d
      security: []
components:
  schemas:
    ChallengeResponse:
      type: object
      description: SIWX challenge nonce.
      properties:
        nonce:
          type: string
          format: uuid
          description: >-
            Challenge nonce (UUID v4). A successful `POST /auth/siwx/verify`
            consumes it, and any later use returns `401` "Invalid or expired
            nonce.". A failed verify does not consume it. Sign a message
            containing the line `Nonce: <nonce>` with the wallet, and request a
            new nonce for every sign-in.
      required:
        - nonce
  securitySchemes:
    tenantApiKey:
      type: apiKey
      in: header
      name: x-tenant-api-key
      x-default: c7eccc0aaed64932a85d35658fa55a4fb2d60cd3d2c529cfd643dc676ee82e82
      description: >-
        Vane's shared tenant key. Contact support for a dedicated key if you
        need custom parameters or separate order tracking.

````