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

# Velora quickstart: quote your first swap

> Get a quote for 1 ETH → USDC in 60 seconds with cURL, the SDK, or the Widget. Then choose how to integrate.

Get a quote for 1 ETH → USDC on Ethereum mainnet. With `mode=ALL`, Velora picks the best execution path server-side and returns one response shape: either a `delta` block (gasless, signed and submitted later) or a `market` block (calldata-ready, submitted immediately). See [Trading modes](/integrate/trading-modes).

<CodeGroup>
  ```bash Best path (cURL) theme={null}
  curl -s "https://api.velora.xyz/v2/quote" \
    --data-urlencode "srcToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" \
    --data-urlencode "destToken=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" \
    --data-urlencode "amount=1000000000000000000" \
    --data-urlencode "srcDecimals=18" \
    --data-urlencode "destDecimals=6" \
    --data-urlencode "side=SELL" \
    --data-urlencode "chainId=1" \
    --data-urlencode "mode=ALL" \
    --data-urlencode "userAddress=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" \
    --data-urlencode "partner=my-app-name" \
    -G | jq
  ```

  ```ts SDK (TypeScript) theme={null}
  import { constructSimpleSDK } from '@velora-dex/sdk';

  const sdk = constructSimpleSDK({ chainId: 1, fetch });

  const quote = await sdk.quote.getQuote({
    srcToken: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', // ETH
    destToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
    amount: '1000000000000000000', // 1 ETH
    srcDecimals: 18,
    destDecimals: 6,
    side: 'SELL',
    mode: 'ALL',
    userAddress: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045',
    partner: 'my-app-name',
  });

  if ('delta' in quote) {
    // gasless path: sign and submit via /v2/delta/orders
  } else {
    // calldata path: submit `market` to /transactions
  }
  ```

  ```tsx Widget (React) theme={null}
  import { Widget } from '@velora-dex/widget';

  export default function SwapPage() {
    return (
      <Widget
        partnerConfig={{ partner: "my-app-name" }}
        input={{
          selectedForm: "swap",
          tokenFromAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
          tokenToAddress: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",   // ETH
          srcChainId: 1, // Mainnet
          destChainId: 1, // Mainnet
          sendAmount: "1000", // 1000 USDC in units
        }}
      />
    );
  }
  ```
</CodeGroup>

<Note>
  `my-app-name` is a placeholder. Replace it with your own app or project partner identifier. It tags your integration for analytics, support, and rate-limit upgrades; it is not an API key, and no signup is required.
</Note>

`GET /v2/quote?mode=DELTA` returns a `delta` block (sign with EIP-712, submit to `/v2/delta/orders`). `GET /v2/quote?mode=MARKET` returns a `market` block (calldata-ready against Augustus v6.2). `GET /v2/quote?mode=ALL` lets Velora pick the path server-side and returns one of `response.delta` (Delta intent) or `response.market` (Market route), never both. Branch on which block is present. See [Trading modes](/integrate/trading-modes).

## Pick your integration path

<Card title="Continue to Integrate →" icon="arrow-right" href="/integrate/api">
  Compare API, SDK, and Widget, then choose the right surface for your stack.
</Card>

<Tip>
  All endpoints work as soon as you pass a `partner` identifier; you don't need to sign up for anything. When you're ready for higher throughput, a dashboard, and SLA-backed support, grab a [Pro API account](/overview/pro-api-accounts) or [reach out](https://www.velora.xyz/contact) for bespoke arrangements.
</Tip>
