One round of the pool, from your commitment to the toll on-chain. Rounds run on a fixed cadence; nothing crosses between them. There is no continuous matching, no queue, and therefore no reason to be fast.
You submit H(side, size, band, salt) and escrow funds in the pool contract. The band is the range of reference mids you will accept — e.g. "fill me if mid is between 247.90 and 248.90". The chain records the hash and the escrow.
knll.commit({
side: "buy", size: 5000, asset: "TSLAx",
band: [247.90, 248.90]
}) // → commitment 0x3f…a1, salt kept locallyWhen the round closes, your client sends the preimage encrypted to the committee's threshold key. No member holds the key alone; decryption happens only inside the joint computation, and only for the cross.
knll.reveal(commitment, salt) // → enc_threshold(side,size,band,salt)
The round's reference mid is published. The committee computes the set of orders whose band contains the mid, and matches buys against sells pro-rata at exactly that mid. It outputs fills and a proof; it never outputs the orders.
mid = 248.40 eligible = orders where band ∋ mid fills = prorata(buys, sells, mid)
Fills settle from escrow atomically. Unfilled escrow stays for the next round or is withdrawn. One round later the toll is published: each fill's size and price. Unfilled orders' plaintext is discarded by the committee and never leaves it.
toll(round=1183, fills=[
{size: 1200, px: 248.40}, {size: 3800, px: 248.40}])A dark pool that lets you set a limit re-creates a book in the dark: better limits fill first, and everyone starts guessing everyone else's limit. That guessing game is the leak.
kn:ll removes price from the order. You do not say what you will pay; you say which mids you will accept. Every fill in a round happens at the same public mid. There is no price improvement to compete for, so there is nothing to signal, nothing to shade, and nothing to be first to.
The band exists only as protection: if the reference moves outside what you meant, you do not fill.
When buy and sell volume at the mid are unequal, the smaller side fills fully and the larger side fills proportionally. A 5,000 buy against 8,000 of total buys and 4,000 of sells fills 2,500.
Time of commitment plays no role. Committing early gains nothing; committing late loses nothing. This is deliberate. Time priority is the property that makes speed valuable, and speed is what bots have.