Skip to content
Articles

The other side of orbio's book

orbio's Exchange holds only asks, so orbio.bot adds the other side: a bid that waits for your price and fills against the real book, with the fees and the tip inside your limit.

A book with one side

orbio sells AI inference as CREDIT. One CREDIT is one dollar of Orbio inference, and it trades on orbio's Exchange, a book that holds asks only. Sellers list CREDIT at a price they choose, and buyers take what is listed.

That leaves a buyer two options: take today's price, or come back later and look again. A seller can name a price and wait for it. A buyer could not. For anyone who wants CREDIT at a set price or on a schedule, agents included, that means watching the book.

A bid on orbio.bot is the missing side. You name your price once, and the bid waits for the book to reach it.

What a bid holds

A bid escrows at least 1 USDG in the orbio.bot Bids contract, with terms you choose:

  • a price limit, in USDG per CREDIT delivered
  • a one-off limit bid, or a recurring budget
  • a tip for whoever fills it, from 0 to 1%
  • a recipient, and whether it receives CREDIT or activated inference on its Orbio account

orbio's book does not change: a fill is an ordinary buy on orbio's Exchange, made by the Bids contract on your terms.

A limit bid fills whenever it can, in as many pieces as fillers choose, with an optional cap per fill. A recurring buy has a budget that grows by a fixed amount each interval, such as 25 USDG a day, and never holds more than one period's worth. An agent can use one to keep itself supplied: a recurring bid that delivers inference to its own wallet buys on a schedule, at a price it chose.

The owner can top up, change the terms, withdraw part, or close the bid and take back everything left, at any time.

One limit, everything inside it

The limit is all-in. On every fill, the contract adds the tip to the USDG that left the bid and divides by the CREDIT the recipient actually received. If the result is above your limit, the fill reverts and nothing is spent.

For a bid that delivers CREDIT, orbio's book fee comes out of the USDG spent, so it sits inside the limit. For a bid that delivers inference, the book charges no fee and the activation fee counts instead, because it reduces what the recipient's Orbio account is credited. The tip counts in both.

So the number you set is the most you pay per CREDIT you receive. Set it where you are happy to buy.

A bid, with numbers

Say you place 100 USDG with a limit of 0.45 USDG per CREDIT, which is 55% off, a 0.3% tip, and CREDIT delivered to your own wallet.

  1. The USDG waits in the Bids contract. fillable reports that a fill may spend up to 99.70 USDG, which leaves room for the tip on top.
  2. With orbio's book fee at 2% at the time of writing, this bid can take asks up to about 0.4398 USDG per CREDIT. Asks at exactly 0.45 do not fit, because the fee and the tip have to fit inside the limit too.
  3. Say a seller lists 500 CREDIT at 0.425, which is 57.5% off. A keeper fills all 99.70 USDG against it. About 230 CREDIT reaches your wallet and about 0.30 USDG goes to the keeper, so you paid about 0.435 USDG per CREDIT, everything included.

The same bid delivering inference would take asks up to about 0.4262, since the activation fee (5% at the time of writing) comes out of what is delivered.

Keepers fill bids

Nothing moves until someone calls fill. Anyone can call it on an open bid, unless the owner named a single filler, and the caller earns the tip the owner set: up to 1% of the USDG the fill spends, paid in USDG. A bot that does this is a keeper, and anyone can run one.

A keeper is a short loop. Read the open bids, ask each one how much it may spend now, simulate the fill with a static call, and send the ones that land. A fill that would break the limit reverts in the simulation too, so the simulation shows exactly what will happen. When the whole amount does not fit under the limit, a smaller one may, so search downward.

js
const cap = await bids.fillable(id);           // USDG it may spend now
const [credit, spent, tip] =
  await bids.fill.staticCall(id, cap, 64);     // the exact result, or a revert
await bids.fill(id, cap, 64);                  // the tip comes to you

You do not need a bot to start. The Bids page lists the open bids that can spend, simulates each fill, and marks the ones that can fill now.

No owner, no fee

orbio.bot runs on three contracts on Robinhood Chain, one each for bids, fleets and drops. They have no owner, no fee and no upgrade path. Their sources are verified on Sourcify, and deploying all three cost 0.00013 ETH. Besides the purchase itself, the tip is the only thing a bid pays out. Every address is in contracts.json.

Try it

Place a bid, or fill one and keep the tip, at orbio.bot/bids. The exact rules each contract enforces are in orbio.bot/docs.