Paynoramic launches Marengo, a white-label crypto exchange you can try before you buy.Meet Marengo, our white-label exchange. See the exchange.

Limit, market and stop orders: what each one does on a crypto exchange

A market order fills now at whatever the book offers, a limit order waits on the book for its price, and a stop order sits off the book until a trigger price turns it into one of the other two.

The words limit, market and stop beside Marengo's Pro order ticket, with its Limit, Market and Stop tabs, and three labels saying what each order type promises

Every order ticket on a crypto exchange offers the same three choices, and each makes a different promise. A market order fills now, at whatever prices the order book offers; a limit order fills only at its price or better, and waits on the book until it can. A stop order does nothing until the market reaches a trigger price, then becomes a market or a limit order. This guide walks through all three on one example book, for founders and product leads deciding what their exchange should offer and show.

Market, limit and stop orders on one order book, from the ticket to the fill

Three orders, three promises

Each order type trades one certainty for another:

  • A market order is certain to fill, as long as the book has enough on the other side. Its price is not known until it has filled.

  • A limit order is certain about price: it never buys above its limit or sells below it. It is not certain to fill.

  • A stop order is a conditional order. It is held aside until the market trades at its stop price, and only then is it sent to the book.

EU rules draw the same line. The order records a trading platform keeps under MiCA classify every order as either a limit order, "where the order is tradable", or a stop order, which "becomes tradable only upon the realisation of a pre-determined price event" (Delegated Regulation (EU) 2025/416, Article 11 and field 22 of its Annex). A market order is tradable the moment it arrives, so on that definition it belongs with the first group.

The example book

All the examples below use one illustrative ETH/USDT order book. Each example starts from this same book.

Side

Price (USDT)

Amount (ETH)

Ask

2,404.00

3.0

Ask

2,402.50

2.0

Ask (best)

2,401.00

1.5

Bid (best)

2,400.00

2.5

Bid

2,398.50

4.0

Bid

2,396.00

3.0

The best ask is 2,401.00 and the best bid 2,400.00, so the spread is 1.00 USDT. How the engine pairs orders by price and time is covered in what happens when you press Buy.

An ETH/USDT order book with a limit buy of 2 ETH resting at 2,399.00, a market buy of 4 ETH that never rests and takes the asks, and a stop sell at 2,350 held off the book

Market orders: sure to fill, price unknown

A market buy of 4 ETH takes the cheapest seller first and keeps going up the asks until it has its 4 ETH. It never waits on the book.

  1. 1.5 ETH at 2,401.00, for 3,601.50 USDT

  2. 2.0 ETH at 2,402.50, for 4,805.00 USDT

  3. 0.5 ETH at 2,404.00, for 1,202.00 USDT

The buyer pays 9,608.50 USDT for 4 ETH, an average of 2,402.125 (2,402.13 rounded). At the 2,401.00 shown as the best ask, 4 ETH would have cost 9,604.00, so the order paid 4.50 USDT more. That difference is slippage, and it grows with the order's size against the book's depth.

Afterwards the asks at 2,401.00 and 2,402.50 are gone and the spread has widened to 4.00. On a thin market a large market order can move the price a long way, which is why exchanges cap how far one may travel with a protection price, as the Buy guide explains.

Limit orders: sure of the price, not of the fill

A limit order says "this price or better". What happens next depends on where that price sits against the book.

Below the market, it rests. A limit buy of 2 ETH at 2,399.00 cannot trade, because no seller asks that little. It joins the bids at its own price level, below the 2,400.00 bids and above the 2,398.50 ones, and waits. It fills only when sellers come down to 2,399.00. A resting order like this is a maker: it adds to the book others trade against.

Through the market, it fills at once, up to its price. A limit buy of 4 ETH at 2,402.50 crosses the spread. It takes 1.5 ETH at 2,401.00 and 2.0 ETH at 2,402.50, which is 3.5 ETH for 8,406.50 USDT, and stops: the next seller asks 2,404.00, above its limit. The remaining 0.5 ETH rests on the book at 2,402.50 and becomes the new best bid, so the spread is now 1.50.

On the same book, a market buy of 4 ETH fills at three prices for an average of 2,402.125, while a limit buy of 4 ETH at 2,402.50 fills 3.5 ETH and rests 0.5

That is a partial fill: 3.5 ETH of trades, each with its own price and trade ID, and 0.5 ETH still open. The order stays partially filled until the rest fills, is cancelled or expires.

Some exchanges add a post-only flag: the limit order is accepted only if it would rest, which market makers use to be sure they add to the book.

Stop orders: off the book until a trigger

A stop order is not on the order book at all. The exchange holds it aside and watches a reference price, usually the last traded price on that market, so a waiting stop is not part of the depth other traders see.

A holder of 2 ETH who wants out if the price falls places a stop sell at 2,350.00, the classic stop-loss order. Nothing happens while ETH trades above it; when a trade prints at 2,350.00, the stop fires in one of two forms.

A stop market becomes a market sell and takes whatever the bids pay. In our example the bids at that moment are 0.8 ETH at 2,349.00, 0.7 at 2,347.50 and 1.0 at 2,344.00:

  • 0.8 ETH at 2,349.00, for 1,879.20 USDT

  • 0.7 ETH at 2,347.50, for 1,643.25 USDT

  • 0.5 ETH at 2,344.00, for 1,172.00 USDT

All 2 ETH sell for 4,694.45 USDT, an average of 2,347.225, which is 2.775 below the stop price.

A stop limit carries a second price, the limit. With a limit of 2,345.00 it sends a limit sell at that price, sells 0.8 at 2,349.00 and 0.7 at 2,347.50, and stops: the next bid, 2,344.00, is below its limit. The remaining 0.5 ETH waits at 2,345.00 and may never fill if the price keeps falling.

A price falling through a stop at 2,350: the stop market sells 2.0 ETH at an average of 2,347.225, the stop limit at 2,345 sells 1.5 ETH and leaves 0.5 waiting

So the stop market guarantees the exit but not its price, and the stop limit the price but not the exit. When the price gaps straight past the stop, the difference can be large. A stop buy works the same way upwards.

Stops raise two design choices for the exchange: which reference price triggers them, fixed and stated, and whether funds are held when the stop is placed or only checked when it fires, which decides whether a triggered order can fail for lack of balance.

Time in force: what happens to the rest

Time in force decides how long an order stays live, and so what happens to any part that cannot fill at once. The validity periods an EU platform records include (Delegated Regulation (EU) 2025/416, Article 7 and field 9 of its Annex):

  • Good till cancelled (GTC) stays on the book until it is filled or cancelled.

  • Good for day and good till date expire at the day's end or on a set date.

  • Immediate or cancel (IOC) fills what it can on arrival and does not remain on the book for the rest.

  • Fill or kill (FOK) fills only if it can be filled completely; if it can only be partly executed, it is rejected.

Take the 4 ETH limit buy at 2,402.50 again, where sellers at that price or lower hold only 3.5 ETH:

A 4 ETH limit buy with 3.5 ETH available: good till cancelled rests 0.5, immediate or cancel cancels it, fill or kill is rejected; below, the events an order goes through

With GTC, 3.5 ETH fill and 0.5 rests; with IOC, 3.5 ETH fill and the 0.5 is cancelled. With FOK, nothing fills, because the whole 4 ETH is not there. Market orders usually behave like IOC.

What the order ticket has to show

Each order type changes what the user has to understand before pressing the button, so the ticket changes with it. A good one shows:

  1. The pair, the side and the type, with fields that change per type: a price for a limit, nothing but an estimate for a market order, a stop price and a limit price for a stop limit.

  2. The amount, and whether it is in the asset bought or the asset paid.

  3. The total and the available balance, so the user sees what will be held.

  4. The estimated fee, maker or taker, since a limit order can be both.

  5. For a market order, the estimated average price, with a warning when the order is large against the book.

  6. For a stop, the reference price that triggers it, and what it becomes when it fires.

  7. The time in force, and a preview of what would fill now and what would rest. For the 4 ETH limit at 2,402.50 that is a total of 9,610.00 USDT, an estimated fee of up to 9.61 USDT at an illustrative 0.1%, about 3.5 ETH filling at once and about 0.5 resting.

After sending, the user needs open orders with what has filled and what remains, a cancel button, and every fill with its price, fee and time. The order events EU platforms record make a good checklist of statuses: new, triggered, partially filled, filled, cancelled, rejected and expired (field 20 of the Annex).

You can see this in Marengo, our exchange: the Pro terminal's order ticket offers limit, market and stop orders, with open orders, history and fills beside it. How a terminal and a simple Buy screen share one market is covered in simple or pro.

Behind the ticket

In a typical design the matching engine only sees tradable orders. Limit and market orders go straight into its sequence; stop orders wait in a separate component that watches trades and, when a stop's price prints, submits the resulting order into the same sequence as any other.

Stops often cluster at round numbers, so one trade can fire dozens at once, each a market sell that pushes the price to the next cluster. MiCA asks a platform's systems to be able to "ensure orderly trading under conditions of severe market stress" (Regulation (EU) 2023/1114, Article 76(7)(c)), which is where price bands and halts come in.

In the exchange software we build and hand over, the matching engine source code includes the order book, limit, market and stop orders, and a price band per market.

Frequently asked questions

Is a market order ever placed on the order book? No. It trades against resting orders on arrival, and whatever cannot fill within the exchange's limits is cancelled.

Why did my limit order fill only partly? There was not enough on the other side at your price or better. The rest stays on the book if the order is good till cancelled, and is cancelled if it is immediate or cancel.

Can other traders see my stop order? Not while it waits. A stop is held off the book; it reaches the published depth only if it fires as a limit order that does not fill at once.

See it working

The three order types are easiest to understand side by side on a live book. Open Marengo at marengo.paynoramic.com, switch to Pro and try each tab of the order ticket, or read about the white-label crypto exchange to see what is built and handed over.

Written by

Paynoramic's Head of IT

Head of IT at Paynoramic, responsible for the module library every platform is built from. Has worked on payment, banking and workforce platforms for companies including American Express, Teya and Indeed Flex, and for a global card issuer-processor. Writes about what a fintech or crypto launch needs beyond the software: licensing, certification and the real cost.