The lock holds
Refused immediately and 4 rounds early. Opens exactly on the round, byte-identical.
Orders are timelock-encrypted to a drand round and all open at the same instant. Inside a batch there is no order of arrival, so being first is worth exactly zero.
Nobody has to be trusted not to peek. Nobody can peek — not the dev, not the snipers, not the validator, not us. Keep scrolling and watch the batch.
You encrypt your order toward drand round N, in your own browser. From that moment the ciphertext is unreadable to anyone.
Orders collect, all unreadable. On-chain you can see how many there are, never what they say. The ring ticks once per drand round.
drand publishes the signature for round N. That signature is the key: every order becomes readable at the same instant, to everyone.
One uniform price for all. Integer math, pro-rata at the margin. No ordering, no speed advantage, and the sniper gets nothing extra.
Seal a bid to a round 60 seconds from now, then try to break it open. Nothing is sent to this server, and the only network call is to the public drand API.
Five proofs, each one an attack on the idea, run against the real drand network rather than a mock. Clone it and run them yourself in about two minutes.
Refused immediately and 4 rounds early. Opens exactly on the round, byte-identical.
Three orders of arrival, one identical clearing hash.
A stranger replays the clearing. 4 planted frauds, all caught. A tampered ciphertext won't open.
The attack worked. Then anchoring patched it, and the late bid was rejected.
A real server, real attacks on the endpoint, an outside witness and 5 forgeries.
$ npm install $ npm run proofs # all 5 proofs, ~2 min ✓ 55 / 55 checks passed
Proofs 1–3 passed, and that nearly fooled us. The fourth test showed that timelock solves only half the problem.
Timelock stops you from reading an order before round N. It doesn't stop you from writing one after it.
The hash of every envelope is anchored on-chain before the round. A ciphertext can never prove when it was made, but an anchor can. Verification rejects anything anchored late, which is why anchoring is a required part of v1.
These belong on the front page, not in a footnote.
Executing a swap needs plaintext. This solves batch auctions and the sniper problem at launch, a narrower claim that's true.
Fraud is caught after the fact, not prevented in advance. drand is BLS12-381 and Solana has BN254 syscalls, so on-chain verification isn't trivial today.
An operator that silently drops an envelope leaves no trace, unless the sender anchored it themselves.
A threshold of League of Entropy nodes must not collude. If they do, they could decrypt early.
There's no instant fill. For a trencher chasing the first block that's a change of habit, and it's the real adoption risk.
This is a mechanism against privileged entry. Bundling it would cancel it, and it would be the first thing anyone checks.
The first launch is the demo. Afterwards the encrypted orders and the drand signature for the round are published, and anyone can decrypt them and check for themselves that the clearing was fair.