AI Market Maker

Automated liquidity and spread management for your own Ecosystem markets — a price engine, a roster of trading bots, a funded pool, and the risk gates that stop it. What the addon is, what it needs, and where to start.

4 min readUpdated 3 August 2026market-making, liquidity, ecosystem, bots

A new Ecosystem market is an empty book. No depth, no chart, no last price — nothing for a user to trade against and nothing for a chart to draw. The AI Market Maker fills that gap: it publishes a continuous price series on markets you own, prints a trade tape against it, and optionally places real resting orders into the Ecosystem order book so a user's market order has something to hit.

Everything about it is admin-side. There is no user screen, no per-user configuration, and nothing a customer subscribes to. Your operators configure a market maker per Ecosystem market, fund its pool, and run it.

With Real Liquidity above 0%, the bots write genuine resting LIMIT orders into the Ecosystem book, backed by the pool you funded. A user who fills one is trading against your balance, and the settlement moves your money. Read Funding the pool before you turn that dial up.

What it requires

Requirement Why
Bicrypto core The platform this addon installs into
Ecosystem addon The addon quotes ecosystem markets and settles through the ecosystem matching engine. With Ecosystem disabled there is no matcher anywhere in the deployment, so there is nothing to make a market in
ScyllaDB Bot orders, bot trades and the per-fill P&L ledger live in the Ecosystem keyspace. Ecosystem already requires it
At least one ecosystem market A market maker attaches one-to-one to an ecosystemMarket row

Full prerequisite chain and the enable steps are on Install and enable.

The four pieces

The market maker is the configuration row: a target price, a price range, an aggression level, a daily volume budget, a volatility threshold and a real liquidity percentage. One per ecosystem market — the marketId column carries a unique index, so you cannot attach two.

The pool holds the money. Two balances, base and quote, funded from an admin's own ecosystem wallet. It is the only thing between that wallet and the market's inventory: a deposit takes from the wallet and raises the pool, a withdrawal does the reverse, and every real user fill settles against those two balances.

The bots are the roster that produces the tape. Creating a market maker seeds six of them — two scalpers, a swing trader, an accumulator, a distributor and a market maker — each with a personality, a size, a spread and a daily trade budget. The engine refuses to trade a market with fewer than two ACTIVE bots, because a print needs two sides.

The price engine decides the price. It runs a multi-horizon process — seven timescales from twenty minutes to three years — so the series carries trend, regime and intraday shape at every zoom level, and it advances against wall-clock time on every tick whether or not a trade prints. Nothing else is allowed to touch the price; the bot layer only decides when a trade happens, how large it is and which bot takes each side.

What "running" actually means

A market maker's status column is not the answer to "is this market being made". The engine applies four hard gates on every tick, and a market that fails one keeps its ACTIVE status while printing nothing:

  • Fewer than two ACTIVE bots — nothing can take the other side.
  • Real liquidity above 0% with an empty pool — nothing to back the orders.
  • Daily volume budget spent — resets at the UTC daily reset, not on a rolling day.
  • Measured volatility above the market's threshold, when pauseOnHighVolatility is on. This one is evaluated from price history held in the engine's memory, so no screen and no API response can report it.

The first three are surfaced on the dashboard as Not quoting, with the closed gate named. The fourth is not, deliberately — see Monitoring a market.

Where the screens are

The console lives at /admin/ai/market-maker, under Admin → Extensions → AI Market Maker.

Screen Path Gate
Dashboard /admin/ai/market-maker access.ai.market_maker
Markets /admin/ai/market-maker/market access.ai.market_maker.market
Market detail /admin/ai/market-maker/market/{id} edit.ai.market_maker.market
Create market /admin/ai/market-maker/market/create create.ai.market_maker.market
Analytics /admin/ai/market-maker/analytics access.ai.market_maker.analytics
Settings /admin/ai/market-maker/settings access.ai.market_maker.settings
Guide /admin/ai/market-maker/guide access.ai.market_maker

The market detail screen carries four tabs — Overview, Pool, Bots and Configuration — and is where almost all day-to-day work happens.

Start here

Install and enable

The prerequisite chain, the extension row, the seven cron jobs it registers and the permissions your roles need.

Creating and configuring a market

The four-step create wizard, every field it writes, and the price controls that only appear afterwards.

Funding the pool

Deposits, withdrawals, the capital basis, and why the rebalance button does not convert your balances.

Bots

The six default bots, what each personality changes about the tape, and the config that actually reaches the running market.

Monitoring a market

Answering "is it quoting" honestly, the price band, inventory skew, and the lifecycle actions.

Risk and emergency controls

Volatility auto-pause, daily loss limits, the circuit breaker, the four global kill switches and the fleet-wide stop.

Reference material lives in Settings, the API reference and Troubleshooting.

What it is not

It is not a trading strategy you profit from. Bot-to-bot trades have no profit or loss at all — both sides are the house — so the only P&L this addon can report comes from fills against real users. Nothing in the product presents a win rate for a bot that has never met a real counterparty.

It is also not a substitute for real liquidity on a market you expect to matter. A synthetic tape makes a market look alive and gives a chart something to draw; it does not make your book deep.