Skip to main content
POST
/
api
/
accounts
/
{accountId}
/
transfers
/
quote
Quote Transfer
curl --request POST \
  --url https://trade.predexon.com/api/accounts/{accountId}/transfers/quote \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "amount": "<string>",
  "source": {
    "address": "<string>",
    "token": "<string>"
  },
  "destination": {
    "address": "<string>",
    "token": "<string>"
  }
}
'
{
  "expectedAmountReceived": "<string>",
  "minAmountReceived": "<string>",
  "estimatedDurationSeconds": 123,
  "feeBps": 123,
  "feeUsd": "<string>",
  "tool": "<string>",
  "inbound": {
    "transactionRequest": {
      "to": "<string>",
      "data": "<string>",
      "value": "<string>",
      "gasLimit": "<string>"
    },
    "approvalTarget": "<string>",
    "explorerLinkTemplate": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.predexon.com/llms.txt

Use this file to discover all available pages before exploring further.

POST /transfers/quote accepts a superset of Create Transfer’s body and returns the projected expectedAmountReceived, minAmountReceived, estimatedDurationSeconds, and feeBps for the route. It serves two distinct purposes:

Outbound and internal quotes

For any route POST /transfers accepts — deposit → <venue>, <venue> → deposit, deposit → external — send the same body to /quote to preview the trade before committing. The response is the common quote block (no inbound field).

Inbound quotes (deposit from another chain)

When the end user wants to deposit USDC from a chain other than Base, pass from: "external" with a source object describing their wallet. The response includes an inbound block with a signed transactionRequest the user submits from their own wallet, plus an approvalTarget for the ERC-20 allowance and an explorerLinkTemplate for tracking. The deposit lands directly on the account’s deposit wallet — no follow-up POST /transfers is needed. Once the source-chain tx confirms, the funds are bridged automatically.
Inbound quotes are the only path for external → deposit. POST /transfers rejects this direction with errorCode: "inbound_requires_quote" since the partner’s own wallet must sign the bridge transaction.

Authorizations

x-api-key
string
header
required

Path Parameters

accountId
string
required

Body

application/json

Preview a transfer before executing. Accepts a superset of CreateTransferRequest — outbound quotes use the same shape; inbound quotes (from: "external") carry a source object describing the partner's external wallet.

from
enum<string>
required
Available options:
deposit,
external,
polymarket,
predict,
opinion,
limitless
to
enum<string>
required
Available options:
deposit,
polymarket,
predict,
opinion,
limitless,
external
amount
string
required
source
object

Required when from === "external". Partner's external wallet — the address the bridge transaction will be signed from.

destination
object

Required when to === "external".

Response

Quote

Quote result. Common fields cover all quote variants; the inbound block is populated only when from === "external" (so the partner has a signed transaction to submit).

expectedAmountReceived
string

Estimated amount delivered to the destination side.

minAmountReceived
string

Floor on delivered amount given the slippage tolerance.

estimatedDurationSeconds
number

Estimated settlement time.

feeBps
number

Effective bridge fee in basis points.

feeUsd
string

Bridge fee in USD.

tool
string

Underlying bridge provider that quoted this route.

inbound
object

Populated only for inbound quotes (from === "external"). The partner submits transactionRequest from their own wallet after granting the approvalTarget allowance.