---
title: "POST /v3/quote"
method: POST
path: "/v3/quote"
tags: ["Execution Quotes"]
---

# POST /v3/quote

`POST /v3/quote`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v3/quote`
- Auth: HTTP bearer

Authenticates the caller, forwards exact inputs and principal wallet addresses to the private gRPC Quote service, and returns quote_id plus the signed payload after Redis storage succeeds. The API gateway performs no additional balance or metadata reads. Client-supplied identity, wallet addresses and decimals are rejected. An explicit amount_atomic is required; sell_all is rejected. When prepared execution is explicitly enabled, the winning eligible DFlow Solana USDC quote contains validated, simulated, sponsor-signed transaction bytes in prepared_transaction. Quote reads fresh chain balances and mint metadata for this preparation. Authenticated POST /v1/execute with quote_id approves user signing and submission through the existing enrolled backend signer; no extra client signature is required. Acceptance and submission must occur before the same signed expiry. Other routes remain price discovery only and cannot be executed by quote ID. Existing /v2/quote behavior is unchanged. Requires QUOTE_GRPC_TARGET, otherwise returns 503.

## Request body

- CreateQuoteV3Request
  - `source` QuoteServiceAssetInput, required
    - `chain_id` string, required: Canonical chain identifier; availability is determined by enabled Quote providers.
    - `address` string, required: Canonical token address or native. Wallet addresses come from the authenticated principal; decimal counts are not required.
  - `destination` QuoteServiceAssetInput, required
    - `chain_id` string, required: Canonical chain identifier; availability is determined by enabled Quote providers.
    - `address` string, required: Canonical token address or native. Wallet addresses come from the authenticated principal; decimal counts are not required.
  - `amount_atomic` string, required: Explicit exact source amount in atomic units, bounded to uint256. No balance lookup is performed; sell_all is not supported.
  - `slippage_bps` integer, required

## Response `200`

Signed quote stored; ID and the exact signed payload.

- CreateQuoteV3Response
  - `quote_id` string, required
  - `signed_quote` SignedQuoteV3, required
    - `algorithm` 'Ed25519', required
    - `key_id` string, required
    - `payload` string, required: Exact base64url quote envelope saved in Redis; verify signature before decoding.
    - `signature` string, required

## Other responses

- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `403`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `409`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `413`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `429`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

[API](https://skmtc.dev/arbital/apis/arbital-api.md) - [All operations](https://skmtc.dev/arbital/apis/arbital-api/llms.txt) - [OpenAPI document](https://skmtc.dev/arbital/apis/arbital-api/revisions/bb0185edf43a?raw)
