Pick your token, set two prices, sign three times. Our bot quotes both sides on SaturnSwap's order book from an address only your wallet can empty. We take 0.20% of what a fill pays out, and nothing when nothing fills.
You can leave whenever you like. We exercised the exit on mainnet on a pilot book we funded with our own ADA — the close and deposit-back below are signed by that book's own owner key alone. Our wallet signed them because the book was ours; check the witness set on cexplorer and you will not find the ADAM bot key, which is the property that matters: close ↗ deposit back ↗ total cost 0.93 ₳
Of what a fill pays out. Nothing fills, nothing charged.
Refundable. You get it back when you close.
We pay it every time the bot moves your price.
Connect the wallet holding the token. Everything else on this page is read from it.
Your instances are read from the chain — the ceremony's own validator carries the numbers it was built with, so there is nothing for you to look up or type. The manual entry below is only for the case where a registration transaction cannot be read.
Connect the wallet that owns the instance. Its address is one of the ceremony's own parameters, so a different wallet derives a different instance.
Never send funds to this address with an ordinary wallet transfer. It is a script address: a plain send arrives without the datum the validator requires and is permanently unspendable — by us, by you, and by the wallet you own it with. The only safe funding is the transaction this page builds for you, which attaches the beacons and attaches its price datum.
Desk pricing is contractually private, so the only reliable figures are the ones token DAOs have had to publish to pass a governance vote. Those show market-making retainers running from $3,500 to $12,500 a month for a single project, and industry reporting puts mandates that maintain active quotes at $15,000 to $50,000 a month. The retainer is not the whole bill either: the issuer also funds the inventory the desk quotes with, commonly tens of thousands of dollars per venue.
| What you give up | Retainer model | Loan + call model | SaturnSwap |
|---|---|---|---|
| Cash up front | $3.5k–$50k / month | None | Prepaid ADA fee balance; no retainer |
| Your tokens | You fund the inventory | 1–5% of circulating supply, 12–24 months | None |
| Your upside | None | A call struck 25–100% above TGE | None |
| Ongoing | Fixed, whatever volume you get | The option is the fee | Default 0.20% of eligible settled ADA notional |
| Custody | You fund a venue account | Tokens leave your treasury | Inventory in your validator; fees in a separate channel |
The structural difference is that a retainer is fixed and ours is not. At 0.20% of settled volume, a $12,500-a-month retainer is only the cheaper deal once you are settling around $75 million a year. Below that — which is most of Cardano — you are paying a six-figure annual fee for liquidity you may not be getting. We charge a fraction of what settles, so if we quote badly and nothing fills, we do not get paid.
The loan model has no cash fee at all, which is what makes it attractive, and the cost shows up somewhere harder to see: you hand over a slice of supply for a year or two and sell the desk an option on your own recovery. If the token runs, they exercise. If it falls, they hand the tokens back. We never take your tokens, so there is no option to sell.
Retainer figures are from published DAO governance proposals and industry reporting; desks do not publish rate cards, and we are not quoting any specific firm's price to you. Loan terms are the ranges disclosed in DAO votes. Our default rate is 0.20% of eligible settled ADA notional, subject to your billing grant. Known operator fills are excluded; an unfamiliar signer is labelled unattributed, not independent.
Prepaid fees are separate from your trading inventory. You fund an ADA fee channel. In the two-operator-key channel, both operator keys together can spend that balance; your own key can reclaim it without them. Legacy channels allow one operator key to spend. Check your channel before funding it. Billing rates, invoice eligibility and collection caps are enforced by our billing software and co-signer policy, not by this native script. The inventory validator's 500 basis-point limit does not cap channel withdrawals. Collection network fees also come from the channel. See fee details.
Tell us your token — or ask in Discord.
Everything below is optional reading.
Your exit is unilateral. Your ceremony names an owner key that only your wallet can sign for — the setup reads its public hash from your connected wallet, and your signing key never leaves your wallet — so your own wallet can cancel every order and pull your funds back at any time, with no signature, cooperation, or notice from us. The mainnet transactions at the top exercised that path on a book we funded with our own ADA, so our own wallet signed them; their witness set carries only the owner key, not the bot key.
We run a red team against this protocol every week, using Claude, Codex and Kimi models to attack the protocol, investigate findings and check for regressions. We choose ongoing adversarial review: a point-in-time audit records one review of one version, while the protocol continues to change.
No third-party audit. This is internal security evidence, not external certification or a guarantee that no vulnerabilities remain. We do not claim a formal proof for the active validator without a reproducible proof artifact tied to its exact hash. Read the test record and validator scope.
Before a single client book existed we ran four of these ourselves on mainnet, with our own ADA, specifically to find the sharp edges while it was still our money at risk. Four we found, and what we changed so you never meet them:
The validator bounds where value can go. It does not bound everything, and the honest list of what remains is short but real:
Five of the nine parameters behind your vault are ours to publish and yours to check. They are filled in for you so you cannot mistype one, and listed here so you can compare them against a source that is not this page.
addr1v9wr69p2tx8dx2lat8rzznahxh4xhfl075yzm8uxmth4tvcf3lx47 An enterprise mainnet address (header 0x61), payment key hash 5c3d142a598ed32bfd59c6214fb735ea6ba7eff5082d9f86daef55b3. It receives this fee and nothing else — no change, no payouts, no treasury.20 The validator declares its own ceiling, const max_fee_bps = 500, and refuses to build above it whatever we ask for.cea98dfce26e0ffbf5ab892edcb8f8ab8b794d5390f80ec0b9aafed3 Check it on chain: the key funds its own enterprise address addr1v882nr0uufhql7l44wyjah9clz4ck72d2wg0srkqhx40a5c6g5gjp, whose payment credential IS this hash, and whose transaction history on mainnet is entirely this key signing for itself. The count moves every day the keeper runs, so check the credential rather than a number we would have to keep up to date.11928a3ac3b65edbf103ea6bb3362e39b879a36f02897df31c40917b You do not have to take this from us — the beacon policy below commits to it. Fetch that policy's script from any mainnet indexer and this hash appears inside it as an applied parameter. The two values check each other.8a199a17ef4517215945aaf3c8c5204c60fd94d34c46d341e99c8fcf Fetch the script for this policy id from any mainnet indexer and read the error strings inside it: they say "Two-way swaps must have exactly three kinds of beacons", "Wrong asset1_beacon" and "Wrong asset2_beacon". A one-way policy says "One-way" and "Wrong offer_beacon" instead — that is how you tell the two deployments apart, and they are otherwise indistinguishable.Paste the params file or ceremony receipt you were given. This panel echoes back what it claims — the bound script hash, your floors, your payout address, your escape-hatch key — and hands you the command that turns those claims into checked facts. The check runs on your machine against the public source; this page plays no part in it.
Nine parameters define your instance of the validator. The guided flow fills in seven of them — five are ours and published, two are read from your wallet — and asks you only for your prices. This form assembles the same nine by hand, which is what you want if the key that can pull your funds back lives somewhere this browser will never see it. Either way the setup is identical and the independent verifier is the thing that settles it. Nothing you type here leaves your browser.
Step 1 — your wallet
Connect the wallet holding the token you want quoted. We read your key hash and payout address from it — you do not need a terminal or a key file.
Want the escape hatch on a different key than the wallet you connected? Derive its hash yourself with cardano-cli address key-hash --payment-verification-key-file payment.vkey and replace the value above — the payout address must be controlled by that same key.
Step 2 — the prices you are agreeing to
These are prefilled from our published manifest below so you cannot mistype one — a transcription error here is permanent. Cross-check them against the manifest, and against a channel this page does not control, before you run the ceremony.
Real limit orders on Cardano L1, quoted by our keeper, on liquidity the client never hands over. Every fill is a public transaction, so a client can re-derive their own volume numbers straight from the chain.
On our own book, on preprod — our own taker filling our own maker — 3,419,141 ₳ of settled volume cost 1,696 ₳ in network fees. Applying a 0.20% service fee as an illustration adds 6,838 ₳, for 8,535 ₳ all-in. The working capital behind it was about 13,000 ₳, recycled in place 385× over. For comparison, a conventional DEX charges 0.3% in protocol fees alone, before its own gas. Our earlier one-way approach cost 0.35%.
Gas per fill depends on a single variable: how many fills share a transaction. The token makes no difference and neither does the owner; we measured both, below. That makes pooled order flow the pricing mechanism itself. Every client who joins deepens the batches every other client is already riding, and the cost per fill falls for all of them at once.
| Fills sharing one transaction | Gas per fill | Gas as % of volume | All-in with our 0.20% |
|---|---|---|---|
| 1 — a maker running alone (n=260) | 0.4088 ₳ | 0.213% | 0.413% |
| 4 — a thin book (n=22) | 0.1785 ₳ | 0.093% | 0.293% |
| 16 — a pooled book (n=906) | 0.0861 ₳ | 0.045% | 0.245% |
A maker running alone pays 0.413% all-in. Inside a pooled book the same maker pays 0.245%, our fee included, which still comes in under what a conventional DEX charges in protocol fees before it has paid a lick of gas. The gas itself is 4.75× lower for identical volume.
The mechanism is a fixed floor. Every Cardano transaction pays roughly 0.29 ₳ in base fee, Plutus bootstrap and reference-script overhead, however little it settles. A pooled transaction pays that floor once for sixteen fills instead of sixteen times, and past the floor an additional fill costs 0.063 ₳: about six cents of ₳ to settle another ~192 ₳ of volume. At scale, 5,000,000 ₳ of volume costs 2,244 ₳ pooled and 10,655 ₳ settled one fill at a time.
Percentages use the measured average fill size of ~192 ₳ and measured per-fill gas. The 0.20% service fee is an illustrative overlay at the default rate, not evidence of a paid invoice from this operator-run rehearsal. Current billing excludes known operator fills. The fee overlay is flat across the table; movement in the all-in column comes from measured gas. Actual billing follows the client's grant and eligible flow.
The table above comes from that book: our own maker, filled by our own taker agent, on preprod. Every figure is a settled transaction, and none of it is third-party flow. Across 17,823 settled fills in 1,405 transactions quoting five tokens (ADAMMKT, iUSD, RISE, AGENT, TEST), the keeper settled 3,419,141 ₳ of volume for 1,696 ₳ of network fees: 0.0496%, the gas figure in the headline.
What makes the batches deep is worth spelling out. A transaction carrying one token averages 3.6 fills at 0.210 ₳ per fill. Carrying three tokens, it averages 16.0 fills at 0.086 ₳ per fill, 2.4× cheaper purely from mixing tokens into the same transaction. A fourth token held steady at 0.087 ₳ per fill.
| Token in the shared book | Fills | Volume | Gas per fill | Fee as % of volume |
|---|---|---|---|---|
| iUSD | 4,118 | 815,364 ₳ | 0.0862 ₳ | 0.0435% |
| RISE | 3,012 | 602,400 ₳ | 0.0863 ₳ | 0.0431% |
| AGENT | 403 | 80,580 ₳ | 0.0867 ₳ | 0.0434% |
Three tokens with very different volumes, and the cost per fill agrees to within half a percent: 0.0862, 0.0863, 0.0867 ₳. Gas belongs to the fill. A client's cost is independent of which asset they bring, because their fills ride transactions the book was already paying for.
At the measured rate that is 4.75× cheaper, a saving of ~8,410 ₳ on 5,000,000 ₳ of settled volume.
Depth has a limit. 16 fills is the measured optimum; the deepest transactions we observed (25 fills, small sample) cost more per fill as script execution units outgrew the amortization. The keeper tunes to the optimum.
Everything above rests on the claim that pooling clients costs nothing, so we settled it on chain. Each client is its own stake credential and their orders rest at different script addresses, the same way two real clients' orders would. Every hash below is live on preprod and opens in cexplorer.
| Transaction | Fills | Distinct clients | Gas | Gas per fill | vs one-per-tx |
|---|---|---|---|---|---|
| 288730cd9c2aa278277422ee6c7ea9d037013ae178a1b0a21e11e143aba7f5ad | 1 | 1 | 0.3949 ₳ | 0.3949 ₳ | 1.00× |
| a03177a5a8bd6a481418cd3b0405057f4e89982d7941fe3f08807cb3604c1bc2 | 2 | 2 | 0.5183 ₳ | 0.2592 ₳ | 1.52× |
| eb66f7a71095d5bb30f623a85412113108750593493f2462fafd2806d59356c9 | 4 | 2 | 0.8017 ₳ | 0.2004 ₳ | 1.97× |
| ab24ebff10f62da3b232b6a3baab99cc7842aff13a96acf6430bcdf45ec51378 | 8 | 2 | 1.3096 ₳ | 0.1637 ₳ | 2.41× |
| 7a58d0fc1220dfbaf33945d2e0b57b8cd75cae96bf07741b5c10ec7be00c492a | 16 | 2 | 2.5695 ₳ | 0.1606 ₳ | 2.46× |
| 63fcd2f2d7a7b9e067b0eacd5f2cea530cdbb252d768d658d27a8774553decfd — control | 16 | 1 | 2.5695 ₳ | 0.1606 ₳ | 2.46× |
Sixteen fills across two clients settled for 2.5695 ₳ in one transaction. As sixteen separate transactions they would have cost 6.3184 ₳, which makes the shared transaction 2.46× cheaper. Every figure comes from the same wallet on the same pair, so the comparison carries no hidden difference.
The last row settles the question. We ran the identical transaction with all sixteen fills under a single client as a control, and it cost exactly the same: 2.5695 ₳, byte-for-byte identical at 9,834 bytes. An order address differs between clients only in its stake credential, which has the same length either way, so the fee cannot move. Crossing clients costs nothing.
Billing holds up at the same depth. Our indexer read that sixteen-fill transaction back from chain data and attributed eight fills and 41.3466 ₳ to each client on its own. One transaction becomes two invoices with no manual reconciliation, which is what makes per-client billing on shared transactions operable.
The ladder is best read for its ratios. The test wallet holds a long tail of native assets that every change output has to carry, which inflates its per-fill cost above the 0.086 ₳ the production book runs at. The control isolates the one variable under test, one client versus two, and that difference measured zero.
Per-fill gas is token-agnostic and fills for different tokens batch into the same transactions, so the fee ratio holds near 0.04% at the margin however many tokens we serve, while volume scales with the capital each client brings. Three client projects produce roughly three times the volume at the same cost ratio.
A custodial desk cannot copy this. Its marginal client adds cost; ours adds fills to transactions we were already paying for, and the shared transaction gets more efficient as the book gets busier.
Resting orders only become volume when something fills them, so we run the taker side too: an autonomous agent that reads the live book, decides what is worth taking, and composes the multi-fill transactions the economics above depend on. The same agent family quotes the maker side, repricing as the market moves, skewing on inventory, and standing down when the spread is too thin to justify a fill.
Appetite is a setting. Each client gets their own parameter set on a shared brain: target pairs, order size and ladder shape, spread and skew targets, per-token caps, a ceiling on outflow per window, and how aggressively to chase depth. We tune those numbers per client and keep re-tuning them against measured results. Running one brain over many parameter sets also means whatever we learn tuning one client transfers to the next.
Autonomy is bounded in two independent places. The agent enforces its own risk configuration, and beneath it the on-chain validator bounds what any keeper-signed action can do at all, so even a misconfigured agent cannot move value anywhere except the client's own payout address. Every agent runs paper-first before it is allowed to sign, and a kill switch halts it without touching client funds.
Status: the taker agent is built and dress-rehearsed end to end on preprod (paper, live and kill), including a real on-chain fill, aea3d325537d7afdcdb31803088304e681404951430abc08e72970883e459edd. It ships behind an operator control with two-layer auth. Running it on mainnet is gated on that client's onboarding and on the mandate it will run under; a preprod rehearsal is not a mainnet record.
Figures are measured from settled preprod transactions on our own book; the ladder above links to each one. Anything forward-looking is labelled as projected.