SaturnSwap/market making
Mainnet

Put a real bid and ask on your token — without handing anyone your bag.

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. Here is a whole live book going back to its owner's wallet, with no signature from us: close ↗ deposit back ↗ total cost 0.93 ₳

0.20%
our cut

Of what a fill pays out. Nothing fills, nothing charged.

2 ₳
deposit

Refundable. You get it back when you close.

0 ₳
gas you pay

We pay it every time the bot moves your price.

1 · Choose the token to quote

Connect the wallet holding the token. Everything else on this page is read from it.

Already have an instance?

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.

If you want the detail

Everything below is optional reading.

Can you run off with my tokens?short answer: no

What our bot can do

  • Move your price up and down, inside the range you set.
  • Cancel your order — back to your wallet, never ours.
  • Pay itself one bounded fee leg. That leg can only be ADA, can only land at the published fee address, and the rate is a parameter of your instance that the validator refuses to build above 500 basis points.

What it can never do

  • Send your value anywhere except your order address, your payout address, or that bounded fee leg. The per-asset conservation check fails the transaction, and our tests prove a one-lovelace skim is rejected.
  • Quote outside the two prices you set. A dust-priced order fails at the validator, whoever signs it.
  • Tear down your stake credential to pocket its deposit.

Your exit is unilateral. Your own wallet can cancel every order and pull your funds back at any time. It needs no signature, cooperation, or notice from us, and we never hold that key — the two transactions at the top of this page are exactly that, done on mainnet.

How we secure itred team, weekly

An audit is a photograph — one firm, one week, one commit, and a PDF that ages badly. In a year when AI has been finding DeFi bugs faster than auditors ship reports, a stamp from eighteen months ago is not a defence. So we run a red team against this protocol every week, using the same adversarial kit we point at our insurance contracts.

  • Symbolic execution and Z3 proofs. We prove value conservation rather than eyeballing it — a machine tries every path, not a reviewer.
  • Property fuzzing and mutation testing. We break our own validators on purpose and check the tests actually go red. A test that cannot fail is not a test.
  • Live-fire runs on mainnet. Every path that touches your money is exercised with real ADA before it ships — including the one that takes your money back out.
  • Findings get fixed before they ship, not disclosed after. Ten rounds so far across the protocol; every confirmed finding closed.

No third-party audit — deliberately. We would rather spend that budget attacking the thing every week than buying a certificate once. The source is public: come and try it.

We ran it on our own money firstfour edge cases, closed

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:

  • A brand-new order sits at the edge of your range. Until the bot's first move it quotes your outermost price, which is a gift to whoever trades against it. Cost us 14.6 ₳ to learn. Now: funding stays locked until your bot is live and quoting.
  • A book nobody re-quotes is not idle. It is a standing offer at a stale price. One of ours sat 5% above market for 89.8 hours before we noticed. Now: a chain-based health check runs every 30 minutes and pages us.
  • Closing in the wrong order strands your tokens. Retire the credential while tokens still rest at its address and they are stuck — for everyone, including you. Now: the page refuses to offer that step until the address is empty, and re-checks the moment before you sign.
  • The bot stops if it is having a bad day. Not a bug — a limit we set. If it loses more than its daily budget it stops quoting until we look. Your funds never move; your book just goes quiet.
What you still have to truststated plainly

The validator bounds where value can go. It does not bound everything, and the honest list of what remains is short but real:

  • Quote quality is off-chain conduct. The chain proves we cannot steal; it does not prove we quote well. The dashboard and the public book are how you judge that.
  • Quoting is continuous, and so is our access to move your orders. Repricing is the service, so the bot key touches your value constantly — every reprice spends your order and rebuilds it. What the validator fixes is not whether we touch it but where it can land.
  • The published constants are ours to publish and yours to cross-check. The verifier takes the DEX hash and beacon id as given. Check them against the public manifest, in a channel this page does not control.
  • Your keys are your own claim. The setup names your wallet's key and payout address; no tool can prove they are really yours.
  • The repo you verify against must be the real one. A doctored clone can pass its own checks. Clone from the public source and compare the printed commit hash.
Check us, don't trust usit's all on chain

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.

SaturnSwap fee address
addr1v9wr69p2tx8dx2lat8rzznahxh4xhfl075yzm8uxmth4tvcf3lx47 An enterprise mainnet address (header 0x61), payment key hash 5c3d142a598ed32bfd59c6214fb735ea6ba7eff5082d9f86daef55b3. It receives this fee and nothing else — no change, no payouts, no treasury.
Our fee, in basis points
20 The validator declares its own ceiling, const max_fee_bps = 500, and refuses to build above it whatever we ask for.
SaturnSwap bot key hash
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.
DEX validator hash
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.
Beacon policy id
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.
Already set up? Check what your vault boundpaste your file

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.

Set this up by hand, from a cold keyexpert

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

Step 3 — the five values we publish (already filled in)

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.

Questions people actually ask
  • What am I actually paying for? A bot that keeps a live buy and sell order on your token so people can trade it without a 30% spread. You supply the inventory; we supply the quoting and pay the gas.
  • How much do I need to put in? Enough that a fill is worth someone's while — a few hundred ADA of depth is a reasonable floor. Below that the network fee eats the trade and nobody bites.
  • Can I change my prices later? Yes, in one signed transaction that moves your whole book across at the new range. Nothing is closed and re-opened, and your inventory never passes through a wallet.
  • What if SaturnSwap disappears? Your wallet closes the order and takes everything back without us — that is what the two transactions at the top of this page are. The tool that does it is public.
  • Do I keep my staking rewards? Tokens in your vault are not delegated, so no rewards accrue there. Only move in what you want quoted.