OrdoFi for Searchers

Bid on backrun opportunities across Robinhood Chain's DEXs through a single 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