In this article
An indicative quote is information: the level at which a desk expects to be able to trade, binding on neither side. A firm quote is an offer the desk will honour for a stated size and for a stated time, and accepting it inside that time creates the trade. Everything else about quoting in a crypto over-the-counter (OTC) trade follows from that one distinction: which words turn a level into a commitment, how long the commitment lasts, and what each side may do when the market moves in between.
Crypto OTC has no single rulebook for quotes. Desks and their clients borrow the conventions of the foreign exchange dealing market, whose reference text is the FX Global Code, published by the Global Foreign Exchange Committee. That code asks market participants to make clear whether the prices they are providing are firm or merely indicative. In a fast chat between two busy people, that is the step most often skipped.
Illustrative figures from the worked example in this article: a purchase of 250 BTC against US dollars. They are not market data.
What is an indicative quote?
An indicative quote is a price level given for information, at which the desk expects it could trade but which neither the desk nor the client is bound to honour. It tells you roughly where the market is; it does not let you trade.
A desk gives an indicative level for good reasons. You may not have said which side you are on, or what size you want, and a desk cannot commit to a price without both. The desk may need to check its inventory or its hedging venues first. Or you may not yet be onboarded, in which case the desk can discuss levels but cannot trade with you.
An indicative quote is still useful. It lets you check a budget, compare desks at a first pass and prepare an internal approval with a realistic number. What you cannot do is treat it as a price you hold. If you reply "done" to an indicative level, nothing has happened: the desk will answer with a firm price, which may be a different number, and for a large order usually sits on the less favourable side of the indication once the spread for the size is added.
What is a firm quote?
A firm quote is an offer by the desk to trade a stated quantity at a stated price, open for acceptance for a stated time. If you accept it inside that time, on those terms, both sides are bound: the trade exists.
Four elements make a quote firm, and all four should be visible in the message or on the screen:
- The price, as a single number for your side, or as a two-way price (a bid at which the desk buys and an offer at which it sells).
- The size the price is good for, in a stated unit. A price that is firm for 250 units is not firm for 400.
- The time the price is good for, usually given as "good for" a number of seconds or minutes.
- Words of commitment: "firm", "I can do", "I sell you", "executable", or a platform button that reads "accept" or "trade".
A firm quote transfers risk for the length of its window. From the moment the desk sends it, you may take the price or leave it, and the desk carries the market risk of that choice. This is why a firm price is slightly wider than an indicative one, and why the window is short.
How is each kind of quote worded in a chat or on a platform?
An indicative quote carries a hedge word such as "indicative", "around", "roughly", "would be" or "subject to", and a firm quote carries a commitment, a size and a time limit. On a platform, the difference is whether the screen shows a button you can press to trade.
Typical wording for an indicative level, as it might appear in a chat:
- "Indicatively, 250 BTC would be around 64,150 offered."
- "Market is 64,100 at 64,150 right now, indicative only, let me know if you want a firm price."
- "Level for reference: 64,150. Not a price."
Typical wording for a firm quote:
- "Firm: I sell you 250 BTC at 64,180, good for 15 seconds."
- "250 BTC, 64,130 bid, 64,180 offered, firm for 15 seconds, settlement today."
- On a request-for-quote screen: a price with a countdown timer and an "accept" button.
The words that make a quote firm are the words of commitment ("firm", "I can do", "I sell", "I buy", "executable") combined with a size and a validity. The words that keep it indicative are the hedges, including less obvious ones: "subject to" anything (credit, onboarding, market), "working level", "where I see it" and "ref", a short form of reference price.
When the wording is mixed, treat the quote as indicative and ask. A message such as "I can probably do 64,180" contains both a commitment word and a hedge. The correct reply is not "done". It is "Is that firm for 250, and for how long?"
How do indicative, firm and streaming quotes compare?
Indicative, firm and streaming quotes differ on four points: whom they bind, for how long, for what size, and what the client can do with them. A streaming quote is a price that a desk's system updates continuously on a platform or through an application programming interface (API), and that the client can try to hit at any moment.
| Criterion | Indicative quote | Firm quote | Streaming quote |
|---|---|---|---|
| Binding on whom | Nobody | The desk, until expiry; both sides once accepted | The desk under its platform terms, often subject to a final check |
| For how long | No validity: a snapshot | The stated window, in seconds or minutes | Until the next price update, often under a second |
| For what size | Often none stated, or a rough size | The stated size only | The size, or size tiers, shown on screen |
| What the client can do | Budget, compare, decide whether to ask for a firm price | Accept in full inside the window, or let it lapse | Send a trade request at the displayed price |
Whether a streaming price is truly executable depends on the platform's terms. Some streams are firm: a request at the displayed price, for a displayed size, is filled. On others, the desk's system checks each request before it accepts, a check called last look.
Why is a firm quote only good for a few seconds?
A firm quote is short-lived because, while it is open, the desk carries the market risk and the client holds a free choice to trade or not. The longer the window, the more that choice is worth, and the desk has to charge for it in the price.
Crypto markets trade continuously and can move by several basis points (a basis point is one hundredth of one percent) within seconds. A desk that leaves a selling price open for five minutes has, in effect, given you a five-minute option at no premium: if the market rises, you take the price and the desk sells below the market; if it falls, you walk away. A short window is what allows a tight price.
Validity is counted from the moment the desk sends the quote, not from the moment you read it. On a platform, a timer shows the remaining time. In a chat, the timestamps of the two messages are the evidence. Unless the desk has said otherwise, a quote in a voice call or a chat with no stated validity is good only for an immediate answer.
What does last look mean, and how does it differ from a firm quote?
Last look is a practice in electronic trading in which the party that receives a trade request has a final opportunity to accept or reject that request against the price it quoted. The difference from a firm quote is where the final decision sits: with a firm quote, the client's acceptance completes the trade; with last look, the client's request still has to be accepted by the desk.
The definition comes from the FX Global Code, which treats last look in its Principle 17. The Code says that last look, where it is used, should be a risk control mechanism used to verify validity, price, or both. The validity check confirms that the details of the request are appropriate from an operational point of view and that sufficient credit is available for the trade. The price check confirms that the price at which the request was made is still consistent with the current price available to that client.
The Code also sets expectations for how the practice is run. A participant that uses last look should be transparent about it and give its clients appropriate disclosures. It should not carry out trading activity that uses the information in the client's trade request during the last look window. And last look should not be used to gather information with no intention of accepting the request. A guidance paper published by the Global Foreign Exchange Committee in 2021 adds that the checks should be applied without delay, and distinguishes a symmetric price check, which applies the same tolerance to price moves in either direction, from an asymmetric one, which does not.
The FX Global Code is a voluntary set of principles written for the wholesale foreign exchange market. It does not impose legal or regulatory obligations even there, and it was not written for crypto assets. Crypto OTC desks commonly use its vocabulary. Whether a given crypto desk or platform uses last look, for how long, and with what tolerance is a matter of its own terms. Ask at onboarding whether streamed prices are firm or subject to a final check, what the check verifies, how long it takes, and whether the price tolerance is the same when the market moves for you as against you.
What happens when the market moves between the quote and your acceptance?
If the market moves while a firm quote is still open, the desk honours the quote; if the quote has expired, or was never firm, the desk may requote at a new price or decline to trade. Three outcomes are possible, and a fourth can be arranged in advance.
The first is a fill at the quoted price, the normal result of accepting a firm quote inside its window.
The second is a requote. Your acceptance arrived late, or the quote was indicative, or you changed a term. The desk answers with a new firm price and a new window. A requote is a new offer: you are free to accept it or not, and the earlier price no longer exists. A requote can be better than the original if the market has moved your way.
The third is a rejection. On a platform with last look, the request fails the price or validity check and comes back unfilled. In a chat, the desk writes "nothing done" or "off that price", and you have no trade.
The fourth is a slippage tolerance, agreed before the request. Slippage is the difference between the price you expected and the price at which the trade is filled. With a tolerance, you instruct the desk or the platform to fill the order provided the price is within a stated distance of the quote, for example 5 basis points, and to reject it otherwise. A tolerance means you have accepted in advance a price that can be worse than the one you saw, up to the limit. State the tolerance as a number, and ask whether a move in your favour is passed on to you in the same way.
When exactly is the trade done?
A trade is done at the moment a firm quote is accepted on its terms inside its validity window, or, where last look applies, at the moment the desk accepts the client's request. From that moment the price is fixed, both sides are committed, and neither can withdraw because the market has moved.
In a chat or on a call, the conventional words are short. "Done" accepts the quote as given. "Mine" means you buy at the desk's offer; "yours" means you sell to the desk at its bid. "I buy 250 at 64,180" says the same thing with no room for doubt. The desk then closes the exchange with its own "done" and a restatement of the terms.
Ambiguous words are costly. The usual misunderstandings are these:
- "OK", "sounds good" or "thanks" in reply to a firm quote. The client meant to acknowledge the level; the desk may read an acceptance.
- "Done" sent to an indicative level. The client believes it has traded; the desk has only been asked for a firm price.
- "Mine" or "yours" used the wrong way round by someone unfamiliar with the terms. The trade is done on the opposite side to the one intended.
- A size without a unit, read as coins by one side and as dollars by the other.
Each of these produces either a trade that one side did not intend or a missed trade that one side believed it had. Unwinding either one at the new market price costs money, and who bears that cost turns on the wording in the record. The remedy is an acceptance that restates side, size, unit and price in full.
The confirmation follows the trade; it does not create it. Straight after the "done", the desk sends a recap in the chat, and then a formal trade confirmation or ticket: date and time of execution, the two parties, side, asset, quantity, price, total consideration, any fee shown separately, the settlement date and the settlement instructions. Check it at once and raise any difference immediately: the desk has usually hedged within seconds. Settlement, the actual exchange of the asset and the money, comes after the confirmation and is a separate step with its own controls.
A worked example: one request, four outcomes
A purchase of 250 BTC priced at 64,180 dollars per coin costs 16,045,000 dollars if the firm quote is accepted inside its window, and more or less than that in every other outcome. The prices below are illustrative, invented to show the mechanism. A treasury wants to buy 250 BTC against US dollars from an OTC desk with which it is already onboarded.
- 10:02:10, the indicative levelThe treasury asks where 250 BTC is offered. The desk replies "indicatively around 64,150". At that level the purchase would cost 250 × 64,150 = $16,037,500. Nobody is bound.
- 10:03:30, the request for a firm priceThe treasury writes "Firm offer please, I buy 250 BTC against USD, settlement today, good for 15 seconds." Side, size, unit, settlement and validity are all stated.
- 10:04:00, the firm quoteThe desk replies "Firm: I sell you 250 BTC at 64,180, good for 15 seconds." The cost at that price is 250 × 64,180 = $16,045,000, which is $7,500 above the indication, or $30 per coin. The window closes at 10:04:15.
- 10:04:09, acceptance inside the windowThe treasury writes "Done, I buy 250 BTC at 64,180." The trade exists from this message.
- 10:04:20, recap and confirmationThe desk writes "Done. You buy 250 BTC at 64,180, total $16,045,000, settlement today" and sends the trade confirmation.
That is the first outcome. Now suppose the approver was away from the desk, and the treasury's "done" was sent at 10:04:22, which is 7 seconds after the window closed. The quote had lapsed, so the "done" accepted nothing. What happens next depends on where the market is.
| Outcome | Price per BTC | Total cost | Difference from the firm quote |
|---|---|---|---|
| Accepted at 10:04:09, inside the window | $64,180 | $16,045,000 | $0 |
| Accepted late, market higher, requote taken | $64,260 | $16,065,000 | +$20,000 |
| Requote declined, new firm quote ten minutes later | $64,420 | $16,105,000 | +$60,000 |
| Accepted late, market lower, requote taken | $64,120 | $16,030,000 | −$15,000 |
In the second row, the desk answers "off that price, I can do 64,260, firm for 15 seconds" and the treasury accepts. The 80 dollars per coin is about 12.5 basis points of the original price, and it costs 20,000 dollars on 250 coins. In the third row, the treasury declines the requote, waits, and returns to a market that has kept rising. In the fourth, the market has fallen and the requote is better than the lapsed quote: lateness is not always expensive, but the treasury left the result to the market for the sake of 7 seconds.
A slippage tolerance changes the second row. Had the treasury instructed "fill up to 5 basis points above the quote", its limit would have been 64,180 × 1.0005 = 64,212.09 dollars per coin, a maximum extra cost of 250 × 32.09 = 8,022.50 dollars. The requote at 64,260 is outside that limit, so the order would not have been filled and the treasury would have been asked again.
How do you ask for a quote so that the answer is firm?
To get a firm quote, give the desk everything it needs to commit and say that you want a commitment: side, asset, size with its unit, the currency you pay or receive, the settlement terms, and the validity you need.
Use this checklist before you send the request:
- Be onboarded first. A desk cannot give a firm price to a counterparty whose account, limits and settlement instructions are not in place.
- Have the authority to trade in the room. The person who can say "done" must be watching the chat when the quote arrives.
- State the side, or ask for a two-way price if you prefer not to reveal it.
- State the asset, the size with its unit ("250 BTC", or "16 million USD worth of BTC") and the currency or stablecoin of the other leg.
- State the settlement terms you assume: the date, and any agreed arrangement that differs from the desk's standard.
- Ask whether the price is all-in, or whether a fee or commission is charged on top.
- Ask for the validity you need: "firm for 15 seconds" if you are ready, "firm for two minutes" if your approval takes that long. The desk will quote a little wider for the longer window, and you will know what your own process costs.
- Use the word "firm". "Where is 250?" asks for a level. "Firm offer for 250 BTC, please" asks for a price.
- Accept in full words: "Done, I buy 250 BTC at 64,180." Then wait for the desk's recap before you treat the trade as booked.
What records of quotes should you keep?
Keep the full exchange for every trade: the request, each indicative level and firm quote with its timestamp, the acceptance, the desk's recap and the formal confirmation.
A complete file for one trade holds these items:
- The request, with the time it was sent and the name of the person who sent it.
- Every quote received, marked indicative or firm, with its size, price, validity and time, including the quotes of desks you did not trade with.
- The acceptance message and its time, and the desk's "done" in reply.
- The trade confirmation, checked against the chat.
- Any requote or rejection, with the reason given.
- A market reference at the time of the trade, such as a screenshot of a public price or an index level, noted with its source.
- The internal approval, if your organisation requires one.
These records serve four purposes. They settle a dispute over whether a quote was firm and whether the acceptance arrived in time, which is why timestamps to the second matter, and why chats are exported from the channel itself rather than kept as screenshots alone. They let you measure execution quality afterwards: the gap between indications and firm prices, the frequency of requotes, the difference between desks. They support the accounting entry and the cost basis of the position. And they meet record-keeping duties where those apply, under rules that vary by country and by licence.
Which rules govern quotes in a crypto OTC trade?
No single rulebook governs quotes in crypto OTC: what binds the two sides is their own agreement, the desk's or platform's terms, the general contract law that applies to them, and any financial regulation that covers the desk or the client.
Three layers are worth reading before the first trade. The first is the master agreement or terms of business you sign at onboarding, which usually says how quotes are given, when a trade is formed and which record prevails in a dispute. The second is the platform's execution or disclosure document, where the desk describes its handling of trade requests, its use of last look if any, and its treatment of a price sent in obvious error. The third is the law and regulation of the places where you and the desk operate, which varies widely for crypto assets.
The FX Global Code of the Global Foreign Exchange Committee remains the clearest public statement of them: be clear whether a price is firm or indicative, be transparent about last look, and do not use a client's request against that client. A crypto desk is not bound by the Code unless it has chosen to adopt it, so ask whether it follows those principles and read how its terms define a quote.