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.
| Free | Pro | |
|---|---|---|
| SwapsPro fee on swaps | 0.3% inside the quote | 0% — waived |
| CoW surplus share | 25% of price improvement, capped at 0.7% of volume | 0% — waived |
| Batch Send / Batch Swap fee | 0.0002 ETH flat per batch | 0 — waived |
| Cross-chain and THORChain affiliate | 0.3% affiliate in the memo | 0 — memo affiliate bps rewritten to 0 |
| Hive swaps | 0.3% charged on top of the swap | 0 — no fee transfers built |
| Suggested support on /create | 0.001 ETH | 0 ETH — you already bought in |
| Multi-chain Splits deployment · planned, not built | — | Deploy one split across every supported chain in a single flow |
| Every tool, chain, wallet, the SDK, the API and the widget | Included | Included |
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:
| Path | How the fee disappears |
|---|---|
| Same-chain EVM swaps via 0x | Waived server-side: the /api/0x proxy re-reads tokenOf(taker) on Base itself. |
| Same-chain EVM swaps via CoW | partnerFee volume policy omitted from appData. |
| CoW surplus share | The surplus policy is dropped with the volume policy. |
| Same-chain EVM swaps via LI.FI | Integrator fee fraction set to 0. |
| Cross-chain bridges via LI.FI | Integrator fee fraction set to 0. |
| Lido ETH staking | The in-batch fee transfer is omitted; the full amount is staked. |
| Batch Send / Batch Swap flat fee | The trailing fee call is omitted from the EIP-5792 batch. |
| THORChain / Maya affiliate | Memo affiliate bps rewritten to 0 — raises output, so the quote's LIM still holds. |
| Hive swaps | The two beneficiary transfers are not built. |
| Magi (VSC) HIVE/HBD -> BTC referral | The referral is dropped from the custom_json payload. |
And where it does not#
| Path | Why not |
|---|---|
| The public /api/sdk/v1 partner API | Its 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 connected | The 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 Solana | Not 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 costs | They are not ours to waive — we never receive them. |
Integrators: this does not touch you
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 thanbalanceOf, because ids1through100are the ones that carry the waiver. Token ids start at 1, so0means “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
reissuea 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/x402sells a pass over the x402 protocol — pay USDC on Base over HTTP, receive a signed EIP-712 mint voucher valid for an hour, and submitmintWithVoucheryourself, 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.
