Every transaction through Ordo is simulated, then offered to bonded searchers. Most wallet sends have no back-run in them, the auction closes empty, the transaction still lands, and the user is charged nothing extra. When a searcher does bid, 90% of what they pay goes to the person whose transaction created it. Every outcome is signed and anchored on-chain, including the empty ones.
A sold round shows the winner and the second price they were charged. An unsold round is the common case on this flow: a searcher looked, found nothing worth paying for, and the user's transaction went out as it was. Rounds won by house were won by the searcher OrdoFi runs itself, those are us bidding, not a market clearing.
The point of publishing bids is that someone can catch us. No account, no trust:
# the whole history, and how much of it is already immutable on-chain curl https://auction.ordofi.network/receipts/root # one round, every bid in it curl https://auction.ordofi.network/receipts/<opportunityId> # the strong one: rebuild the anchored root from the published receipts and # compare it to what the contract holds. If we ever swapped a receipt out after # publishing it, these two stop matching and there is nothing we can do about it. # /receipts serves newest first; the tree is built oldest first, hence reverse(). const rs = (await (await fetch("https://auction.ordofi.network/receipts?n=1000")).json()).receipts.reverse(); const { root, count } = await log.read.latest(); // 0x89926c06cad403fDDD481C599b2ce709EBC936B9 merkleRoot(rs.slice(0, Number(count)).map(receiptHash)) === root # what a searcher runs: the acknowledged bid must appear at the acknowledged # amount, every listed bid must carry that searcher's own signature, and the # winner must be the highest bidder charged the second-highest price auditReceipt(ack, receipt) // packages/core/src/receipt.ts
Second price charges the winner what the runner-up bid, so inventing a runner-up is the operator's most profitable attack, and the arithmetic would still check out. Every listed bid carries the searcher's own EIP-712 signature, the same one OrdoSettlement demands before debiting their bond. We cannot forge it.
Signatures make one receipt unforgeable but not the set of them. A Merkle root over every receipt ever issued is committed to OrdoReceiptLog; the anchored prefix is immutable, and the gap to the published count bounds exactly what could still be retracted.
90% to the user whose transaction created the opportunity, 5% to the app that sent them, 5% to the treasury, enforced by the settlement contract and conserved to the wei, not applied by us afterwards.
Post a bond, connect to the feed, bid. You see the opportunity the moment the sequencer does (the auction relays the raw feed), and you can audit every round you lost to know it was lost honestly.
wss://auction.ordofi.network/searcher
Route your users through rpc.ordofi.network and 5% of everything captured on their transactions is yours, with the users keeping 90%. No key in your frontend is required for the user to be protected; the rebate is settled on-chain to the addresses in the receipt.
Ordo VIA is the auction today. Three things extend it, and we would rather name them before they exist than pretend they already do.