Petr wants to buy bitcoin. He sees an attractive price, enters an amount and submits an order. The result surprises him: part of the purchase cost more. That need not mean the app failed. Only a small quantity may have been offered at the displayed price, with the rest bought from more expensive sellers. Microstructure examines that moment between intending to trade and actually completing a trade.
Market structure describes the broader arrangement of a market, including products and intermediaries. Microstructure asks how a buyer meets a seller at a particular venue. An order book often brings them together: a list of offers with prices and quantities. Elsewhere a dealer quotes a price directly, or another firm arranges the trade. One platform’s rules are therefore not the rules of the entire Bitcoin network. [1]
Petr can specify the highest price he will pay and wait. Coinbase Exchange prioritizes price, then arrival time among orders at the same price. Other buyers may therefore be ahead of him. If only small sales arrive, those buyers get filled while his order remains unfilled or only partly filled. A chart touching the price is not evidence that enough quantity was left for him. [2]
An order resting in the book makes an offer available to others; when filled later, it acts as maker. An incoming order that immediately matches an existing offer acts as taker. A Limit order, which restricts price, can also be a taker if its limit permits an immediate trade. Coinbase offers post-only mode: it rejects an order if any part would execute immediately. That does not guarantee that a resting order will ever find a counterparty. [3]
The bid is the best current buying offer and the ask the best selling offer; the difference is the spread. For an immediate purchase Petr also needs the quantities offered at each selling price. If the cheapest offer is too small, the next part may cost more. Fees and delays add to the effect of order size. A narrow spread alone therefore does not make a large purchase cheap to execute. [4]
Petr sees a large offer, then it vanishes. Someone may have bought it, but its owner may also have withdrawn it. Coinbase distinguishes messages for receipt, resting orders, trades and completion. A received message means acceptance for processing, not automatically a resting order or completed trade. Even completion needs a reason: it is not sufficient by itself. Two pictures of the book do not tell the whole story. [5]
An app must keep track of new offers, trades and cancellations. An initial book snapshot quickly becomes outdated. Coinbase therefore describes combining a snapshot with subsequent events using sequence numbers on its full data channel. Missing or applying a message twice can create quantities that no longer exist. The practical lesson for an ordinary reader is simple: an old snapshot does not prove that an offer is available now. [5]
Before Petr’s order arrives, somebody else may take the attractive offer or the seller may cancel it. Transmission and processing delay is called latency. A faster connection may reduce delay, but guarantees neither price nor profit. A historical test of a trading idea also needs to allow for waiting, fees and unfilled orders. Assuming every trade can use the price currently shown on a chart can easily flatter the result. [4]
A price candle summarizes completed trades over a period: it shows the opening, closing, highest and lowest prices. It does not show the whole order queue or every withdrawn offer. Its high therefore cannot establish that Petr’s sale would have filled. To check his result, he needs his own fill records, quantities and fees on the right market. A chart is an overview, not the receipt for his trade. [5] [2]
An order can take different paths
Diagram of order acceptance, possible waiting in a queue, and execution or cancellation. Immediate execution can skip waiting; partial execution can leave a remainder in the book.
- 01
Acceptance
Validating an order does not yet prove a trade.
- 02
Possible waiting
The unfilled portion may wait by price and priority; immediate execution skips this step.
- 03
Execution or cancellation
A trade requires matching; cancellation may end waiting without a trade.
A small offer covers only part of the purchase
In a fictional, unchanged book, 0.01 BTC is offered at 100000 USD/BTC and another 0.01 BTC at 100100 USD/BTC. Petr wants to buy 0.02 BTC immediately, so he uses both offers. He pays 1000 + 1001 = 2001 USD, averaging 100050 USD/BTC before fees. The lowest price tag did not apply to the whole purchase. This calculation assumes the quantities are actually available and nothing else changes in the book; these are not current prices or a promise of execution.
For the clearest picture, read this entry together with Market structure, Order book, Maker–taker, Limit order, Slippage, Market depth. The reverse links also lead from Trading, Market structure, Spot market, Order book.
01A large offer disappeared. Does that mean somebody bought it?+
Not necessarily. It may have been canceled or changed without a trade. To confirm a sale you need the corresponding actual fill record. The difference between two snapshots alone does not reveal the cause.
02Why is my limit order still waiting when the chart showed my price?+
Earlier orders at the same price may be ahead of you, and the available quantity may not have been enough. The chart may also refer to a different market or time. A price limit defines acceptable trading conditions; it does not ensure a sufficient counterparty appears.