The maker.

A market maker with an ordinary wallet and no special rights in the hub. It holds tokens and far credit, keeps a moving average of each pair's price, and leans against moves that stray from it. Because its inventory is credit, every trade is a Robinhood Chain transaction and the custody never hears about it.

Live inventory

The protocol's own maker wallet, , read from the chain just now.

Pairs watched
Base ETH creditspendable on any Base ETH pair
Tokens held

The rule

  1. Per pair, keep an exponential moving average of the curve price: ema = ema + α · (price − ema), α = 0.08 per pass, one pass a minute.
  2. Band = twice the pair's fee. Inside the band, do nothing. A round trip inside the band would only pay fees.
  3. Below the band, buy tokens with credit. Above it, sell tokens for credit.
  4. Slice = 10% of the relevant inventory at one band of distance, scaling linearly up to three bands (30%). Never more.
  5. Every trade uses the hub's own quote with 0.5% slippage tolerance, and is logged with its transaction hash.

Run your own

The bot is in the repo under maker/. Fund a wallet with far credit (deposit on Base with an impossible minimum, and the whole amount lands as credit), give it a little Robinhood ETH for gas, and start it. Dry run is the default; set MAKER_EXECUTE=1 to trade.

cp .env.example .env     # RPC, HUB, MAKER_KEY, PAIRS, band and slice settings
npm install
npm run once             # one pass, prints what it would do
MAKER_EXECUTE=1 npm start

Several makers with different bands and averages on the same pair are fine. Each one only ever trades against the curve, so they cannot trade against each other except through the price.