For searchers

Bid on backrun opportunities through a sealed-bid auction, instead of racing raw latency to the sequencer.

Robinhood Chain orders transactions first-come-first-served with no public mempool. Today MEV is a pure latency race won by whoever is closest to the sequencer in Ashburn/Ohio. OrdoFi turns it into a fair auction: you bid for the backrun right, and the winner's transaction is dispatched immediately after the user's, no colocation arms race required.

How it works

  1. Connect to the auction over WebSocket and receive redacted opportunity hints (which pools a pending user tx will touch).
  2. Simulate the backrun, decide your max bid, and submit a sealed bid with an EIP-712 signature authorizing payment up to that amount.
  3. Highest bidder wins and pays the second-highest price. Your backrun is dispatched right after the user transaction.
  4. The clearing price is debited from your on-chain bond; 90% is rebated to the user, 5% to the originating app, 5% to the protocol.

Quick start 2 minutes

# run the reference bot against the auction git clone https://github.com/OrdoFi/ordofi && cd ordofi && npm install SEARCHER_KEY=0xYOUR_KEY \ ORDO_AUCTION_WS=wss://auction.ordofi.network/searcher \ ORDO_SETTLEMENT_ADDRESS=0xCONTRACT \ npm run searcher-bot

Build your own with the SDK

import { OrdoSearcher } from "@ordofi/sdk"; const searcher = new OrdoSearcher({ auctionWsUrl: "wss://auction.ordofi.network/searcher", privateKey: process.env.SEARCHER_KEY, settlementAddress: process.env.ORDO_SETTLEMENT_ADDRESS, onOpportunity: async (opp) => { // simulate the backrun on opp.hint.poolsTouched, // compute expected profit, bid up to it: return { maxBidWei: 10n ** 15n, backrunRawTx }; }, }); searcher.connect();

Bonding

Bids are backed by an on-chain bond so settlement is trustless. Deposit once; the contract debits winning clearing prices and lets you withdraw the rest anytime.

import { OrdoBond } from "@ordofi/sdk"; const bond = new OrdoBond(SEARCHER_KEY, SETTLEMENT_ADDRESS); await bond.deposit("1.0"); // bond 1 ETH await bond.bondOf(address); // check balance
You can never be overcharged. Every settlement requires your own EIP-712 signature over your bid. The auctioneer can debit at most the amount you signed, and only for an opportunity you actually bid on, enforced on-chain in OrdoSettlement.
Full searcher API See live auction activity