---
title: "POST /v2/perp-transfer-quotes/hyperliquid"
method: POST
path: "/v2/perp-transfer-quotes/hyperliquid"
tags: ["Execution Quotes"]
---

# POST /v2/perp-transfer-quotes/hyperliquid

`POST /v2/perp-transfer-quotes/hyperliquid`

## 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/v2/perp-transfer-quotes/hyperliquid`
- Auth: HTTP bearer

Quotes the Relay v2 Spot USDC-to-Solana leg of a withdrawal for the authenticated user's linked Hyperliquid account. For a perps withdrawal, the client must first complete the same-amount perps_to_spot transfer through /v2/perp-transfers/hyperliquid. The response then contains two ordered EIP-712 payloads; the client signs the nonce mapping first and the sendAsset action second.

## Request body

- CreateHyperliquidTransferQuoteRequestV2: Quotes an exact 6-decimal Solana USDC output. Relay's required 8-decimal HyperCore input must remain decimal-normalized 1:1.
  - `exact_output_usdc_atomic` string, required: Exact Solana USDC output in 6-decimal atomic units. The value must be at least 5000000 (5 USDC).
  - `operation` 'hyperliquid_perps_withdrawal', required
  - `slippage_bps` integer, required

## Response `200`

A server-bound Hyperliquid-to-Solana quote and ordered signing payloads

- HyperliquidTransferQuoteV2
  - `destination_asset` 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', required
  - `destination_chain_id` '792703809', required
  - `destination_decimals` 6, required
  - `exact_input_atomic` string, required
  - `expected_output_atomic` string, required
  - `minimum_output_atomic` string, required
  - `nonce_mapping` HyperliquidNonceMappingStepV2, required
    - `domain` object, required
    - `message` object, required
    - `primary_type` 'NonceMapping', required
    - `signature_kind` 'eip712', required
    - `submission_body` object, required
    - `submission_endpoint` 'https://api.relay.link/authorize', required
    - `types` object, required
  - `operation` 'hyperliquid_perps_withdrawal', required
  - `request_id` string, required
  - `send_asset` HyperliquidSendAssetStepV2, required
    - `domain` object, required
    - `message` object, required
    - `primary_type` 'HyperliquidTransaction:SendAsset', required
    - `signature_kind` 'eip712', required
    - `status_endpoint` string, required
    - `submission_endpoint` 'https://api.hyperliquid.xyz/exchange', required
    - `types` object, required
  - `slippage_bps` integer, required
  - `source_asset` '0x6d1e7cde53ba9467b783cb7c530ce054', required
  - `source_chain_id` '1337', required
  - `source_decimals` 8, 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.
- `408`: 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.
- `422`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `429`: Per-principal paid quote request budget exhausted
- `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)
