Fees & limits

Rates are set by your agreement with us. The API returns yours; nothing on this site states a price.

Your fee schedule

GET /v1/fees
{"fees": [{"product": "SWAP", "currency": null, "rail": null,
           "percent": "...", "minimum_fee": "...",
           "priority": 0, "effective_from": "2026-09-01T00:00:00Z"}]}
Field
productSWAP, CRYPTO_WITHDRAWAL, ...
currency, railnull means any
percentA percentage. 2 means 2%, not 0.02
minimum_feeA floor in currency. A small amount pays this instead of the percentage
priorityRows are ordered the way they are applied: most specific first, then by priority. The first row matching an operation prices it

Indicative. For a conversion, POST /v1/quotes is the price you are charged: it can also pick up a provider floor above the percentage. If you add your own margin, ours applies to what is left after yours: 3% then 2% is 4.94% of the original, not 5%.

Estimates

Two read-only calls price a payout or a withdrawal before you send it. An estimate reserves nothing and writes nothing. Values we cannot know are null, with the reason in usd_unavailable; they are never 0.

Chain payout

GET /v1/chain-payouts/estimate?network=tron&currency=USDT_TRC20&amount=500&address=T...

Scope chain_payouts:read. network is one of tron, bsc, ethereum, base, bitcoin, stellar; address, the destination, is optional.

{
  "network": "tron",
  "currency": "USDT_TRC20",
  "amount": {"amount": "500", "currency": "USDT_TRC20"},
  "fee": {"amount": "0", "currency": "USDT_TRC20"},
  "fee_usd": "0",
  "network_fee": {"amount": "...", "currency": "TRX"},
  "network_fee_usd": "...",
  "network_fee_charged_to_you": false,
  "recipient_holds_asset": true,
  "assumed_worst_case": false,
  "total_usd": "...",
  "usd_unavailable": [],
  "payouts_enabled": true,
  "limits": {
    "per_payout_usd": "...",
    "daily_usd": "...",
    "daily_used_usd": "...",
    "new_address_daily_usd": "...",
    "review_at_or_above_usd": "..."
  },
  "estimated_at": "2026-10-03T10:00:00Z"
}
Field
amountWhat you asked to send
fee, fee_usdOur fee. For chain payouts it is currently 0
network_fee, network_fee_usdThe estimated network cost, in the network's own coin: TRX, BNB, ETH, BTC or XLM. network_fee is null when the network cost could not be read, with the reason in usd_unavailable; never 0
network_fee_charged_to_youWhether that network cost is charged to you today
recipient_holds_assetTRON and EVM tokens: whether the destination already holds this token, which changes the energy or gas a transfer needs. null when no address was given or the read failed; the estimate then takes the worst case and assumed_worst_case is true
total_usdThe total in US dollars, or null when a part of it cannot be priced
usd_unavailableWhy a dollar figure is null, one string per reason
payouts_enabledWhether payouts on this network are switched on for you
limitsYour payout policy and today's use of it. null where a limit is not set
estimated_atWhen the estimate was made

Withdrawal

GET /v1/withdrawals/estimate?currency=USDT_TRC20&amount=100

Scope withdrawals:read.

Field
amountWhat you asked to withdraw
fee, fee_usdOur fee, from your CRYPTO_WITHDRAWAL rule
network_fee, network_fee_usdThe expected network cost. null when we have no figure for this currency, never 0
amount_receivedamount − fee − network_fee: what arrives. null while network_fee is unknown
usd_unavailableWhy a dollar figure is null
estimated_atWhen the estimate was made

Refusals

CodeHTTP
validation_failed422Unknown network or currency, or an invalid amount. detail names the field
forbidden_scope403The key lacks the read scope

Limits

GET /v1/limits

The numbers applied to your key, not the service defaults:

Field
requests.reads_per_minute, requests.writes_per_minuteAfter any ceiling of your tenant
requests.tenant_ceiling_per_minuteYour own cap, or null. It can only tighten the two above
requests.window_secondsThe sliding window
requests.idempotency_key_max_length120
requests.quote_lifetime_secondsHow long a quote lives
money.withdrawal_limit_usd, money.withdrawal_spent_usd, money.withdrawal_remaining_usdYour rolling withdrawal limit. remaining_usd already counts what is in flight
money.withdrawal_window_hoursRolling, not a calendar day

Chain payout limits are separate from the withdrawal limit and are returned by the payout estimate above.

Fixed limit
Addresses per POST /v1/deposit-addresses500
Addresses per POST /v1/deposit-addresses/derive100
Deposit reference1–200 printable ASCII, no space
Payout reference1–120 printable ASCII, no space
Idempotency-Key120 characters
GET /v1/deposits, GET /v1/deposit-addresses200 per page by default, 500 maximum
GET /v1/events100 per page by default, 500 maximum
Signature window±300 seconds
watch-now window60 minutes from the latest call
Webhook attempts8, then abandoned