25 min

Order books and RFQ: the quote-based family

An on-chain order book pays a state change for every order, so institutional size trades through request-for-quote engines with vetted counterparties instead of against a formula.

Where you are. You have a pool that will trade any size at a price it computes, and you have measured what it charges for size: about the percentage of the pool you are taking. For a trade worth half the pool, that was fifty percent.

Nobody trades that way. So what does an institution actually do when it wants to move something large?

The obvious answer is the one module 4 already built: an order book, with resting orders and price-time priority. On a shared ledger that answer runs into an awkward fact immediately. Every order, every amendment and every cancellation is a change to the ledger’s state, and changing state costs something. A market maker updating quotes thousands of times a day is a market maker paying for each one.

The idea in one paragraph

Where a pool answers everybody with the same formula, a request-for-quote engine asks a short list of vetted firms what they will do for this specific trade, and lets the buyer take the best answer. Nothing rests on a book, so nothing has to be cancelled and no state changes until a trade actually happens. The makers can price the trade knowing who is asking and how large it is, which is exactly the information a pool does not have and cannot use. The cost of the arrangement is that it is not open: you have to be a member to ask, and the makers have to be vetted to answer.

the buyer wants size the membership gate: only vetted firms are asked maker A quotes 100.12 maker B quotes 100.21 maker C quotes 100.30 1. request settled best price wins 2. accept
The request-for-quote message flow from request through competing quotes to acceptance and settlement, with the membership gate around the makers

Wider than the screen; scroll it sideways.

The auction against the formula

The exercise runs a trade worth half the pool through both venues.

The pool charges fifty percent over the mid, exactly as lesson 2 predicted. The auction returns four quotes, and the best of them is twelve basis points over the mid. On this trade, that difference is over sixteen million.

The reason is not that the makers are generous. It is that a maker pricing a fifty million trade can hedge it, work it over a day, or match it against another client’s opposite interest; the pool cannot do any of those things, because it is a function of two numbers with no memory and no other clients.

venuepriceover mid
constant-product pool150.0050.00%
best of four quotes100.120.12%

n = 5 trials · one trade worth half the pool, both venues

Why the membership gate is not incidental

It is tempting to read the vetting as regulatory overhead bolted onto a trading mechanism. It is closer to being the mechanism.

A maker gives a fine price partly because it knows who is asking. If anonymous parties could request quotes, the makers would have to price for the possibility that the requester knows something they do not, which is module 4’s adverse selection arriving in a new venue. The gate is what lets the price be good.

That has a consequence worth carrying to lesson 14: an arrangement of vetted counterparties, quoting each other prices, settling atomically, is most of what a clearing rail is. This lesson has quietly built a third of one.

Check yourself

1. Why is an on-chain order book awkward in a way an off-chain one is not?

Because every order, amendment and cancellation is a change to the ledger’s state, and state changes cost something. A market maker updating quotes constantly pays for every update, which is a cost structure that does not suit the activity.

2. Why does the auction beat the pool by so much on a large trade?

Because a maker can hedge the trade, work it over time or match it against another client’s opposite interest. The pool has no memory, no other clients and no ability to do any of that; it can only quote what its own two balances imply, which for a trade of that size is a very bad number.

3. The keenest maker in the exercise did not quote. Why does that matter?

Because no auction can show you the price you were not offered. A public book at least displays the resting orders; a quote-based venue shows only what somebody chose to send, so the absence of the best price is invisible in the result.

4. Why is the membership gate part of the mechanism rather than overhead on it?

Because knowing who is asking is part of why the price is good. Quoting to anonymous requesters means pricing for the chance that the requester is better informed, which is adverse selection, and it widens every quote. The gate is what makes the tight price possible.

Do this

Run the auction and compare.

python3 code/rfq.py

The starter provides the pool’s pricing and the five makers, one of whom declines, and leaves you best_quote: run the auction and return the name and price of the best answer actually shown. The assertions check that four makers quote, that the auction beats the pool for this size, and that the finest price in the room belonged to the maker who stayed silent.

The completed version is in solutions/rfq.py.

What you can now do. You can run a quote auction against a pool, explain why size does not trade against a formula, and see why the vetting is part of the pricing. The next lesson goes further along the same spectrum, to venues that show nothing at all.

What you can now do

You can run a quote auction against a pool and say why size does not trade against a formula.