Skip to main content

Auction Rounds and Certificates

The current Reiy runtime uses a hybrid model. coordinates solver competition off-chain, while the Move contracts verify the signed settlement certificate and protect user on-chain.

Auction rounds

Fisherman builds auction rounds from open indexed . Compatible intents are grouped by sellType, buyType, and targetEpoch, then chunked up to maxBatchSize. Auction rounds move through these statuses:
StatusMeaning
collectingThe round is gathering intents until the collection window matures.
solvingFisherman is calling enabled solver endpoints with a SolveRequest.
solvedA valid winner was selected and a certificate was issued.
settlingFisherman has asked the winning solver to submit settlement.
settledSettlement succeeded or was recorded as complete.
expiredThe round or certificate missed its usable deadline.
failedSolving or settlement failed and operator retry may be needed.

Winner ranking

For the current Fisherman implementation, each enabled solver returns a SolveResponse with intent ids, fills, gross payouts, , , and expiry. Fisherman validates the response shape, token pair, epoch, expiry, fill bounds, duplicate intent ids, user floors, and protected minimums. The highest valid score wins. If scores tie, Fisherman breaks the tie deterministically by solver endpoint id.

Certificates

After selecting a winner, Fisherman signs a settlement certificate. The certificate binds the protocol state id, config id, key version, current epoch, solution id, solver address, token types, intent ids, fills, gross payouts, protected minimums, and expiry. Settlement can happen immediately after a valid current-epoch certificate is issued. The contracts do not expose a separate on-chain bid, selection, or settlement phase gate.

Protections

See what the contracts enforce at settlement.

Scoring and ranking

Read the current validation and ranking rules.
Last modified on June 23, 2026