Waxseal
Preprod testnet

Sealed-bid tenders on Midnight

Sealed bids. Proven winners.

Waxseal runs tenders and auctions where no bid ever appears on chain. Bidders post a commitment and a zero-knowledge proof that their bid is valid. The winner is later proven against every commitment, not declared by anyone.

Stays on your deviceYour bid · your saltUsed to build the proof locally
Goes on chaincommitment = hash(bid, salt, bidder)+ proof: in range · deposit locked · eligible
Published at the endWinner and winning price only

How it works

Four steps, one rule: bids stay sealed

  1. Create the tender

    The organiser publishes the bid range, deadline, required deposit, and whether the lowest or highest bid wins. An eligibility list can also be added.

  2. Commit a sealed bid

    Your browser hashes your bid with a secret salt and proves it is in range and backed by a shielded deposit. Only the commitment and proof go on chain.

  3. Prove the winner

    In clock mode, the price clock moves and the first bidder whose sealed bid it reaches proves it. In committee mode, the committee proves the winner against all bids.

  4. Settle privately

    The winner and price go public. Losers receive a private “you did not win” proof and their deposits back. The winner’s deposit becomes a performance bond.

Two modes, one core

Choose who, if anyone, sees the bids

Clock mode Nobody sees bids

For open auctions. A public price clock moves round by round. When it reaches your sealed bid, you prove it and win. Nobody needs to be trusted.

Sees bids
Nobody
Trust
None
Available
Phase 2 (Preprod)

Committee mode Committee sees bids

For business procurement. Bids are also encrypted to a committee, with a proof that the ciphertext matches the commitment. The committee can read bids but cannot fake the result or leave one out.

Sees bids
The designated committee
Trust
Committee confidentiality only
Available
Phase 3

Security model

What Waxseal guarantees

These six rules are the protocol’s invariants. Each one has its own tests, and no release may weaken any of them.

Bids cannot be changed

Each bid is fixed by a commitment written on chain. Every later proof must open that exact commitment.

The winner is proven

A published winner must beat every commitment on chain, and the proof shows it. Nobody simply announces a result.

No bid can be dropped

In committee mode the result circuit consumes exactly the number of bids on chain, so none can be left out.

Losing bids stay sealed

Losing bids never reach the chain, the indexer, our API, logs or this site. Losers get a private proof that they did not win.

Deposits are shielded

Deposits use shielded tokens, so taking part should not show up in your public wallet activity.

Your bid stays on your device

Your bid and its secret salt are hashed and proven in your browser, using your own proof server. They never reach Waxseal.

Status

Where we are

Waxseal is in early development on the Midnight Preprod testnet. It has not been audited. Do not use it for anything of value.

  • In progress Phase 0 — toolchain, local network, first contract deployed
  • Next Phase 1 — shared core: create tender, commit bid, shielded deposits
  • Planned Phase 2 — clock mode and a public test auction on Preprod
  • Planned Phase 3 — committee mode
  • Planned Phase 4 — audit, mainnet and pilots