LibraryReference articles

How crypto market making works, from the order book to the pool

Reference article

A market maker posts a price to buy and a higher price to sell, at the same time, and waits for others to trade with it. The gap between the two prices is the spread. The naive story stops there: buy low, sell high, keep the gap. The real story has two costs that eat the gap. One is holding coins while the price moves. The other is trading with people who know more than you. Crypto adds its own features: markets that never close, many separate exchanges, futures with no expiry date, and pools that quote by a formula instead of by a person.

A market maker is a trader who posts both a price to buy and a price to sell, and lets other people trade against those prices. This page explains how that works on a crypto exchange. It uses small worked numbers that we computed ourselves, so you can check every step. Every outside page below was read on 8 November 2026. Open the link before you rely on a line, because pages change.

This page is education only. It does not tell you how to make money, and it is not advice to buy or sell anything. Crypto assets can lose all of their value.

The order book

An exchange is a place where buyers and sellers meet under one set of rules. A centralised crypto exchange, such as the one cited below, holds its customers' coins and cash and matches their trades in an order book: its list of waiting orders.

Exchanges name the two sides of a trade. Binance's makers and takers page says you are a maker when your order goes on the order book, such as a limit order, and a taker when your order trades at once, before it goes on the book. Makers add orders that others can trade with. Takers remove them. Each exchange publishes its own fee schedule, which may set different fees for makers and takers. We do not copy fee figures here, because they change and can differ by account.

For how the book itself works, read the limit order book as a mechanism.

The two-sided quote

Take a coin. Its best bid and best ask are both near 100 dollars, so its middle price, or mid, is 100. A market maker posts:

The quote is 0.10 dollars wide. Suppose one person sells to the market maker at 99.95, and a little later another person buys from it at 100.05. The market maker has bought and sold one coin and is back to zero coins. It keeps 0.10 dollars, before fees. That is one round trip.

That is the whole of the naive story. It assumes two things that are not true: that a buyer and a seller come in turn, and that the price stands still between them. Each false assumption is one of the two costs below.

Cost one: inventory risk

Inventory is what the market maker holds right now. Suppose sellers keep coming and no buyers do. The market maker buys 5 coins at 99.95 dollars each. Then the mid falls to 98 dollars.

Its 5 coins lost 99.95 minus 98, which is 1.95 dollars each, or 9.75 dollars in all. At 0.10 dollars a round trip, it would need 97.5 round trips to earn that back. One move of 2% in the price wiped out about a hundred round trips.

This is inventory risk: the risk of holding coins, or owing them, while the price moves. Its average is near zero when price moves are pure noise, because the price is as likely to go up as down. But it makes the result swing a lot. The main tool against it is to lean the quotes, which we come to below.

Cost two: adverse selection

Adverse selection means the people who choose to trade with you are, on average, the ones it is bad for you to trade with. Some traders know something the market maker does not. They buy when the price is about to rise and sell when it is about to fall.

A classic model of this is Glosten and Milgrom (1985). Here is a small version with our own numbers.

What is the chance of a buy order? If the value is 101, a trader buys with chance 0.2+0.8×0.5=0.60.2 + 0.8 \times 0.5 = 0.6. If the value is 99, the chance is 0.8×0.5=0.40.8 \times 0.5 = 0.4.

So a buy order is news. Bayes' rule is the rule for updating a chance when you learn something new. Here it says that after a buy, the chance the value is 101 rises from one half to

0.6×0.50.6×0.5+0.4×0.5=0.6.\frac{0.6 \times 0.5}{0.6 \times 0.5 + 0.4 \times 0.5} = 0.6.

The expected value of the coin, given that someone just bought, is 0.6×101+0.4×99=100.20.6 \times 101 + 0.4 \times 99 = 100.2 dollars. In this model, an ask below 100.2 loses money on average, because a buy order makes the higher value more likely. The same argument puts the bid at 99.8. The break-even spread is 0.40 dollars.

Now look back at the quote of 99.95 to 100.05. Under these numbers, each buy at 100.05 loses 100.2 minus 100.05, which is 0.15 dollars, on average. The quote looked profitable and was not. If the informed share rises to 40%, the same steps give a break-even ask of 100.4 and a spread of 0.80 dollars. More informed traders means a wider spread.

Two points follow:

  1. Adverse selection does not average out over many trades. It is a cost on every trade with an informed trader.
  2. Leaning the quotes does not fix it. Only a wider spread, or knowing more, does.

For the full treatment, read informed trading and where the spread comes from. For the split between the two costs, read what a market maker is paid for.

Leaning the quotes to shed inventory

Back to the market maker holding 5 coins. It wants to sell some of them. A common method is to move both quotes down. A lower ask makes buyers more likely to come. A lower bid makes sellers less likely to come.

A well-known model makes this exact: Avellaneda and Stoikov (2008). In their model the market maker centres its quotes not on the mid ss, but on a reservation price:

r=s−q γ σ2 (T−t).r = s - q \, \gamma \, \sigma^2 \, (T - t).

Here qq is the inventory, γ\gamma is how much the market maker dislikes risk, σ\sigma is the volatility (how much the price moves), and T−tT - t is the time left in the trading period.

Take these values: s=100s = 100, q=5q = 5, γ=0.01\gamma = 0.01 and σ2(T−t)=2\sigma^2 (T - t) = 2. Then r=100−5×0.01×2=99.9r = 100 - 5 \times 0.01 \times 2 = 99.9. With the same 0.10 dollar width, the quotes become 99.85 and 99.95. The ask now sits below the old mid, so the market maker is more likely to sell. When the inventory goes back to zero, so does the lean.

Note what this does and does not do. It cuts inventory risk. It does nothing about adverse selection. The derivation is on the Avellaneda-Stoikov page, and the trade-off between leaning and missing fills is on inventory risk against fill rate.

What is different in crypto

The two costs above apply to any order book. Crypto adds features that change the work.

Markets that do not close. A joint statement by the heads of the US Securities and Exchange Commission and the Commodity Futures Trading Commission, dated 5 September 2025, says that "Certain markets, including foreign exchange, gold, and crypto assets, already trade continuously" (SEC). A crypto market maker has no closing bell to flatten its inventory into. It holds risk overnight and at weekends, so its systems and its risk limits must run without a break.

Many separate exchanges. Makarov and Schoar studied trade-level data from 34 exchanges in 19 countries. They write that cryptocurrencies are traded on many non-integrated exchanges, and that price gaps between exchanges were much larger across countries than within one country (summary by the authors; paper record, Journal of Financial Economics, 2020). Their data covers years up to 2018, so gaps today may differ. For a market maker this means the same coin can have several books at several prices. It may quote on more than one venue, and its inventory on one venue can be offset by a trade on another.

Futures with no expiry, used to hedge. A futures contract is an agreement to trade later at a price fixed now. A perpetual future has no expiry date. Binance's funding rates page says funding rates are periodic payments between holders of long and short positions, and that perpetual contracts have no expiry date. When the rate is positive, longs pay shorts. When it is negative, shorts pay longs. The page gives a default interval of every 8 hours and says Binance does not charge fees on these payments.

So a market maker that has bought 5 coins on a spot order book can sell 5 coins of a perpetual future to hedge. A spot market is one where the coin itself changes hands now. The two positions roughly cancel when the price moves. The hedge is not free: it pays or receives funding at each interval. With a rate of 0.01% per interval on 5 coins at 100 dollars, the payment is 500×0.0001=0.05500 \times 0.0001 = 0.05 dollars per interval, paid or received depending on the sign of the rate. The rate changes from one interval to the next.

Settlement in stablecoins. A Federal Reserve note defines stablecoins as crypto-assets designed to keep a stable value against a non-crypto reference asset, most often the US dollar, and says they are widely used to make trades on crypto exchanges easier (FEDS Notes, 23 February 2024). When a pair is quoted in a stablecoin rather than in dollars, a market maker also holds the risk that the stablecoin's value moves away from one dollar.

Pools that quote by formula

On some decentralised exchanges, such as Uniswap, there is no order book. Instead there is a pool of two assets held by a program on a blockchain, called an automated market maker. Anyone can trade against the pool. People who put assets into the pool are called liquidity providers.

The Uniswap v2 whitepaper, by Hayden Adams, Noah Zinsmeister and Dan Robinson (March 2020), describes a pool that holds reserves of two assets and keeps the product of the reserves from falling, a "constant product formula". The price is the ratio of the two reserves. Traders pay a fee on each trade, which goes to the liquidity providers (Uniswap v2 Core). Below we leave the fee out, to keep the arithmetic clean.

Worked example: price impact. A pool holds x=100x = 100 coins and y=10,000y = 10{,}000 stablecoins, each meant to be worth one dollar. The product is k=x×y=1,000,000k = x \times y = 1{,}000{,}000. The pool price is y/x=100y / x = 100 dollars per coin.

A trader buys 10 coins. The pool now holds 90 coins, so it must hold 1,000,000/90≈11,111.111{,}000{,}000 / 90 \approx 11{,}111.11 stablecoins. The trader pays about 1,111.11, which is about 111.11 dollars per coin on average, and the pool price moves to about 123.46. A large trade against a small pool moves the price a lot. This is the pool's version of thin depth.

Worked example: the loss against holding. Start again from 100 coins and 10,000 stablecoins. The coin's price on other markets rises to 121 dollars. Traders who buy cheap in the pool and sell elsewhere (arbitrageurs) push the pool to 121 too. With kk fixed, the pool then holds k/121≈90.91\sqrt{k / 121} \approx 90.91 coins and k×121=11,000\sqrt{k \times 121} = 11{,}000 stablecoins, worth 90.91×121+11,000≈22,00090.91 \times 121 + 11{,}000 \approx 22{,}000 dollars.

Had the provider simply held 100 coins and 10,000 stablecoins, they would be worth 100×121+10,000=22,100100 \times 121 + 10{,}000 = 22{,}100 dollars. The pool is worth 100 dollars less, about 0.45% less. The general formula for a price ratio pp is

2p1+p−1,\frac{2\sqrt{p}}{1 + p} - 1,

which for p=1.21p = 1.21 gives about −0.45%-0.45\%. The loss is the same whether the price rises or falls by the same ratio. It is often called impermanent loss, because it vanishes if the price returns to where it started. It is the pool's form of adverse selection: whenever the pool's price lags the outside price, arbitrageurs trade against it, and they know the outside price first. Fees are what pay the providers for it, and whether they cover it depends on how the price moves.

We checked every number on this page with a short Python script.

The risks a crypto market maker carries

Where Thuztra Learn fits for crypto market making

Thuztra Learn is our product. Its trader path has a module called Market making and inventory and a module called How prices actually form. They cover the order book, adverse selection, inventory skew, queue position and the Avellaneda-Stoikov model in more depth than this page. Most lessons in those two modules are not free.

It has no lesson built around perpetual futures, funding payments or decentralised exchanges. One data notebook lists crypto exchange feeds as data sources, but Learn does not teach you to run a quoting bot or to manage custody. It is education, not a trading service, and it does not place anyone in a job. Membership is a paid subscription: see what Thuztra Learn is and what it costs.

A first step: price a spread by hand

Take the Glosten-Milgrom example above. Change the informed share to 10% and work out the break-even ask by hand. Then change the two true values from 99 and 101 to 98 and 102.

You know it worked if you find that the half-spread equals the informed share times the distance from the mid to each true value. With a 10% share and values of 99 and 101, that gives an ask of 100.1. The most common slip is to forget that a buy order is news: the ask must be the expected value after a buy, not the mid.

Fine print: Binance, Uniswap, FTX, the SEC, the CFTC and the Federal Reserve are named here only as the source of a public fact or as the subject of a public filing. None has any link to Thuztra. Education only, not advice. Crypto assets can lose all of their value.

In short

The spread is not profit. It is what the market maker charges for two risks: inventory risk, which it manages by leaning its quotes, and adverse selection, which it can only price. In crypto, the same ideas hold, plus venue risk, funding payments and pool formulas. This page is education only. It is not advice to trade, and crypto assets can lose all their value.

References

  1. Glosten, L. R., and Milgrom, P. R. (1985) Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders. Journal of Financial Economics.
  2. Avellaneda, M., and Stoikov, S. (2008) High-Frequency Trading in a Limit Order Book. Quantitative Finance.

Terms used here

Related

The limit order book as a mechanism

Price-time priority, queue position, and the three events that move a book. Then the part most explanations skip: what the spread is actually paying for.

What a market maker is paid for

Quote ten cents wide, fill a thousand times, end the day flat, and still lose. Two separate costs eat the posted edge, and only one of them averages out.

Informed trading and where the spread comes from

Two models of why quoting a fair price loses money, and the arithmetic behind both. A maker widens against the chance the counterparty knows more, not against variance.

Avellaneda-Stoikov market making

The reservation price, the optimal spread, and the derivation behind both. Then the missing term that dominates real market-making profit and loss.

What a real high-frequency market maker earned

One firm, two venues, 200 days of audit-level data. Where the revenue came from, where it went back out, and why the fee schedule mattered more than the spread.

Inventory risk aversion against fill rate

Risk aversion buys inventory control by giving up fills. Width and skew are the two ways to spend it, they are not the same trade, and only one of them is cheap.

More on these topics

Topics

Also in the library