Docs · Pro

Free to swap. Pro, paid once.

Everything SwapsPro does is free to use, with no account and no signup. The Pro Pass is an optional one-off license whose headline benefit is that the first 100 holders pay no SwapsPro fee at all. This page is the capability list rather than the pitch, so what is not built is marked as not built — a promise dressed as a feature would make the rest of these docs worth less.

Both paths are live

SwapProPass is deployed on Base at 0x568fcbade475c1f20ed9a5155814eeeadf9c69ef, capped at 100 by the contract itself, and /pro mints against it. The waiver is real: a holder's quotes carry no SwapsPro fee.

The agent route is live too. This page previously said it was not — /api/pro/x402 needs a voucher signing key on the deployment and answers 503 without one, which was the state when that was written. Production now answers 402 with payment requirements, so an agent can buy a pass over x402 today. See the Pro Pass page.

Free and Pro, side by side#

Every chain, every wallet, every tool and both integration surfaces are free, and free for everyone, permanently. Pro does not unlock a tool — it changes what things cost.

FreePro
SwapsPro fee on swaps0.3% inside the quote0% — waived
CoW surplus share25% of price improvement, capped at 0.7% of volume0% — waived
Batch Send / Batch Swap fee0.0002 ETH flat per batch0 — waived
Cross-chain and THORChain affiliate0.3% affiliate in the memo0 — memo affiliate bps rewritten to 0
Hive swaps0.3% charged on top of the swap0 — no fee transfers built
Suggested support on /create0.001 ETH0 ETH — you already bought in
Multi-chain Splits deployment · planned, not builtDeploy one split across every supported chain in a single flow
Every tool, chain, wallet, the SDK, the API and the widgetIncludedIncluded

The caveats, unabridged#

  • SwapsPro fee on swaps. Waived for the first 100 passes only, and only on the routes listed in waiver.waivable. Gas, bridge costs and CoW's own protocol fee are never ours to waive.
  • CoW surplus share. Dropping the volume policy drops the surplus policy with it: a waived order carries no partnerFee at all.
  • Hive swaps. Needs the EVM wallet holding the pass connected in the same session: the pass is an ERC-721 on Base, so a Hive-only session has nothing to prove it with.
  • Suggested support on /create. Always editable and always optional; deploying goes ahead either way.
  • Multi-chain Splits deployment. NOT BUILT. Listed so the roadmap is visible, not so it can be sold as shipped.

Where the waiver actually reaches#

A waiver that silently fails on some routes is worse than a documented exception, so the paths are enumerated in the code and asserted in its tests. These are the ones a qualifying pass really does bring to zero:

PathHow the fee disappears
Same-chain EVM swaps via 0xWaived server-side: the /api/0x proxy re-reads tokenOf(taker) on Base itself.
Same-chain EVM swaps via CoWpartnerFee volume policy omitted from appData.
CoW surplus shareThe surplus policy is dropped with the volume policy.
Same-chain EVM swaps via LI.FIIntegrator fee fraction set to 0.
Cross-chain bridges via LI.FIIntegrator fee fraction set to 0.
Lido ETH stakingThe in-batch fee transfer is omitted; the full amount is staked.
Batch Send / Batch Swap flat feeThe trailing fee call is omitted from the EIP-5792 batch.
THORChain / Maya affiliateMemo affiliate bps rewritten to 0 — raises output, so the quote's LIM still holds.
Hive swapsThe two beneficiary transfers are not built.
Magi (VSC) HIVE/HBD -> BTC referralThe referral is dropped from the custom_json payload.

And where it does not#

PathWhy not
The public /api/sdk/v1 partner APIIts fee is the price of the API itself and its callers are integrators, not the wallet holding the pass. The route's server-side fee guarantee is a contract with partners; a per-end-user waiver would break it.
Hive and Magi with no EVM wallet connectedThe pass is an ERC-721 on Base. A Hive-only session has no address to prove it with, so the fee stands until the pass wallet is also connected.
Swaps that SELL from SolanaNot shipped, and they would earn nothing if they were: LI.FI fee wallets are per chain and ours is EVM-only, so a Solana-source quote with a fee is rejected (code 1011) and retried fee-less. There is nothing for a pass to waive. See FEE_CONFIG.svm.
Network gas, CoW's protocol fee, LI.FI/bridge and DEX costsThey are not ours to waive — we never receive them.

Integrators: this does not touch you

The public /api/sdk/v1 fee is explicitly outside the waiver. Its fee is the price of the API itself and its callers are integrators rather than the wallet holding the pass — and the route's server-side fee guarantee is a contract with partners that a per-end-user waiver would break. Your partnerFeeBps is unaffected either way.

What the Pro Pass is#

A soulbound ERC-721 (ERC-5192) on Base, priced at 0.01 ETH. There is no membership database and no session: your wallet holding a pass is the membership. Payment is forwarded to the payout split inside the mint transaction, so the contract never holds ETH. One pass per wallet, and it can never be transferred or sold.

  • The pass number is the benefit. The check reads tokenOf(holder) rather than balanceOf, because ids 1 through 100 are the ones that carry the waiver. Token ids start at 1, so 0 means “no pass” and can never qualify. The rule fails closed on anything that is not a whole number in that range.
  • The waiver is derived, never asserted. In the browser it comes from a public-RPC read; on the server-stamped 0x path it is re-derived from the taker address on Base. Nothing trusts a client-supplied boolean.
  • Lost wallet: the owner can reissue a pass — burn the old one, mint a fresh locked one to a new address. That and setting the price are the only admin powers.
  • For agents: /api/pro/x402 sells a pass over the x402 protocol — pay USDC on Base over HTTP, receive a signed EIP-712 mint voucher valid for an hour, and submit mintWithVoucher yourself, paying your own gas. No account, no API key.

Other benefits named on the Pro page#

/pro also lists early access to advanced tooling and priority support. Both are commitments from the team rather than anything the code enforces — there is no feature flag behind either. They are listed here for completeness, not as capabilities you can test.