Skip to main content
HyperliquidPolymarket
Issues a short-lived, server-authenticated quote for an enabled multi-step transfer route in either direction. The example below shows the forward route with schemaVersion: 1.

Endpoint

Request Body

100000000 base units is 100 USDC.

Response

The values above illustrate the response shape. Quote amounts, addresses, identifiers, and timestamps are generated by the active deployment.

Quote Semantics

  • Quotes expire 60 seconds after issuance.
  • In a version 1 quote, each step’s sourceAmount is the amount sent for that step.
  • minimumDestinationAmount is the signed, enforced lower bound for completing that step. Read the returned quote; do not assume a fixed conversion rate or output percentage.
  • All step and fee amounts are unsigned integers in the asset’s smallest unit. USDC and pUSD use 6 decimals, so "1000000" means 1 USDC or 1 pUSD.
  • mac is an authentication code that lets the server detect any change to terms.
  • The transfer is attributed to terms.userAddress; that same user must sign execution.
Preserve the entire quote object. Do not edit, omit, recalculate, or replace any term before putting it in executeProtocolTransfer.

Reverse-Route Quotes

A reverse route discovered with schemaVersion: 2 uses the same request fields and returns quote.terms.schemaVersion: 2. Its signed terms differ from the forward quote:
  • funding replaces fundingAsset and contains kind: "polygon_pusd_withdrawal", asset, sourceAmountBaseUnits, withdrawalLedgerAmount, and source: "balance". sourceAmountBaseUnits is an integer in micro-pUSD; withdrawalLedgerAmount is the equivalent decimal pUSD amount formatted to eight decimal places.
  • The first step’s sourceAmount is { "kind": "fixed", "amount": "100000000" }, for example.
  • A later step can use { "kind": "previous_step_actual_output" } so it sends the amount actually received from the preceding step.
  • The bridge step includes bridgePolicy with kind: "polymarket_withdrawal_v1", recipientAddress, and bindingWindowMs. Version 1 provider payment instructions are not part of this version’s signed terms.
Both versions return the authenticated { terms, mac } quote. Preserve whichever version the server returned and include it unchanged in Execute Transfer.

Errors

  • 400: malformed request, unsupported route, amount below the provider minimum, or conflicting transfer payment instructions.
  • 429: the quote limit was reached. The current limits are 10 quotes per user per minute and 60 quotes globally per minute.
  • 503: protocol transfers, the quote provider, or quote capacity are temporarily unavailable. At most 16 quote requests are processed at once.