fee object so you can read the applied fee programmatically.
Retail is always free
A bare no-fee key, an anonymous call, or the consumer app: all 0 bps, permanently. Venue or network costs that appear in a quote (for example gas on non-gasless routes) are not RAVN fees; they’re part of the route economics RAVN ranks for best execution.Setting your own fee
Any self-serve key can set its own swap fee, from 0 up to a 100 bps (1%) cap, viaPATCH /v1/keys:
x-api-key header, whether over REST or the MCP server (see
Fee by access path for how x402 differs). Enterprise keys work
differently: their fee is set directly by RAVN as part of a custom arrangement (see
Enterprise fee arrangements) rather than through this endpoint.
What you actually receive
RAVN keeps a fixed 40% of whatever fee you collect, and pays the rest to you. It is never a fee on top of yours. On most venues that’s the whole story. On a couple of venues, the venue itself takes a cut of the fee before RAVN ever receives it, which reduces both sides proportionally:NEAR Intents can charge the end user slightly more than your declared
feeBps at low fee
values. 1Click enforces its own minimum fee floor (20 bps, or 1 bp on stablecoin/same-asset
pairs); if your declared fee is smaller than that floor, 1Click tops itself up out of the user’s
side rather than out of your share. The fee.bps on the quote always reports the honest total
actually charged, not your raw declared value. Read it from the quote rather than assuming it
equals what you set.fee.supported: false
tells you (see below). Every other live venue reports supported: true. OKX DEX can carry a fee,
but RAVN doesn’t send one yet, so it sits out any request that carries your fee and only wins
fee-free ones.
The fee object on every quote
Every successfulPOST /quote includes:
bps: the fee actually applied to this quote.0if your key has no fee set, or if the winning venue doesn’t support fees at all.token: the token the fee is deducted in. This is the output token on every venue except Fly Trade and Mayan, which take the fee out of the input (sold) token before the swap. It is also the token your share is paid in.amount: that fee intoken’s smallest unit. On output-side venues the quotedoutput.amountis already net of the fee, soamountis the gross fee grossed up from it (net × bps / (10000 − bps)), notnet × bps. It’s the same arithmetic RAVN’s ledger books and pays you on.supported:falsemeans this venue has no fee mechanism, so your key’sfeeBpscouldn’t apply here regardless of its value (bpswill read0).truewithbps: 0means the venue can carry a fee, but either your key has none set or the fee genuinely rounded to zero: a real, intentional zero, not a limitation.
alternatives carries the same four fields for its own venue. Don’t hard-code an
assumption either way: read fee.bps, fee.amount, fee.token, and fee.supported from each
quote rather than inferring them from your key’s configured feeBps.
Getting paid
Register a payout address per ecosystem withPATCH /v1/keys:
payoutAddresses.evm, .solana, and .thorchain. If you haven’t registered an address for an
ecosystem, your earned balance in it simply accrues unpaid rather than RAVN guessing where to
send it. That’s the same fail-closed, never-guess posture described in Security.
A swap only counts toward your payout once it has reached settled in RAVN’s ledger, and that
depends on you:
- Report every swap to
/statusuntil it’s terminal. On same-chain venues (0x Swap, 0x Solana, Nordstern, Fly Trade, KyberSwap, OKX DEX, Jupiter, Mayan same-chain) therefis the transaction hash you broadcast, and RAVN verifies that receipt on-chain before it marks the swap settled: mined, not reverted, moved the quoted input amount, and (for an ERC-20 fee) the fee actually arrived. A swap you never report never becomes payable. - One
refsettles exactly one swap. A hash can’t be reused across quotes. - Swaps quoted with
sandbox: trueare never metered and never paid.
Chainflip is structurally different from the rest. Once you’ve set a fee and registered an
EVM payout address, RAVN registers you as a real on-chain Chainflip “Affiliate.” Your share of
the fee then accrues on Chainflip’s own chain as part of the swap itself, outside RAVN’s ledger,
and a scheduled job withdraws it to the Ethereum address bound at registration.
Fee by access path
An integrator fee is tied to your API key, so it only applies when you actually send your
x-api-key header. That includes the x402 endpoints: pay per call
without a key and you quote at the 0% default; pay per call and send your key and your fee
applies, credited to you like any other keyed swap.
The x402 amounts are API access fees, not swap fees. They pay for the HTTP call when you
choose the metered door. See x402 Payments.
Rate limits and keys live on Authentication.

