Velocity ProtocolDevelopers
Market Makers

Market Makers

Market making on Velocity means providing liquidity through resting orders, through JIT auctions, or through both. This section covers the mechanisms a maker quotes into, the three strategies built on them, and the production patterns every market making bot needs.

The DLOB is to be removed. A resting order will live in one CLOB market account instead of in the User account of its owner. Pages in this section that describe the DLOB describe it as it works now. A maker starting work should read PropAMM and CLOB Order Flow first.

Start here

Place two-sided quotes that track the oracle, in under 10 minutes, before deciding anything else.

How fills actually happen

Read both of these before choosing a strategy. They decide what a quote competes against.

The one thing to take from those pages: there is no fixed JIT, then DLOB, then AMM waterfall. determine_perp_fulfillment_methods walks the crossing makers in price order and inserts an AMM step ahead of any maker the AMM out-prices, capped at that maker's price. Better price fills first, whoever is quoting it. Being on the book is not enough.

Choosing a strategy

Velocity supports three approaches. All three earn the maker rebate on a fill, so the choice is about latency infrastructure, capital lockup, and how selective the strategy needs to be about flow.

DLOB MMJIT-onlySWIFT
How it worksResting limit orders on the DLOBReact to taker auctions as they openReceive signed taker orders offchain, before the auction
CapitalCommitted onchain while orders restDeployed only on the fills takenDeployed only on the fills taken
Latency neededLow: oracle offset orders reprice themselvesHigh: the response has to land inside the auction windowHighest: the 100 to 500 ms head start is the whole point
Flow selectionNone, anything crossing the quote fillsPer auctionPer order, with the most time to decide

Start with DLOB MM using oracle offset orders. They float with the oracle, so a quoting desk sends roughly 30 transactions per day rather than one per oracle tick, and the infrastructure bar is the lowest of the three.

Running it in production

Reference implementations

Velocity maintains reference bots in apps/keeper-bots-v2, part of the velocity-v1 monorepo. That monorepo is not public yet, so these are pointers for readers who already have access rather than something to clone.

BotSourceStrategy
FloatingPerpMakerBotsrc/bots/floatingMaker.tsOracle offset resting orders on the DLOB
JitMakersrc/bots/jitMaker.tsJIT auction fills using JitterSniper/JitterShotgun

FloatingPerpMakerBot is the better starting point: it shows oracle offset orders under production conditions. JitMaker shows auction participation through @velocity-exchange/jit-proxy, which is on npm. See JIT Auctions.