Three prices, one trade: the label, the quote and the fill

The sticker price, the amount the contract computes for your size, and the amount that lands in your wallet are three different numbers. This article separates them with one worked trade and splits the total cost into its three exact components.

Known formally as The Exact Pass in the BlazePhoenix whitepaper.

BlazePhoenix Engineering · updated 2026-08-13 · 8 min · written from the deployed bytecode

By Mitra (@Sigmacrit) — anonymous developer of the BlazePhoenix protocol. The code is the résumé.

Abstract in 15 languages · resumo · resumen · 摘要 · 要旨 · ملخص

EnglishThe label price, the quote and the fill are three different numbers, worked through one pool of 1,000/1,000 with a 0.3% fee: trading 100 A yields a net quote of 90.4072 B — 9.0909 lost to price impact (94.8% of the whole cost), 0.2480 to the pool fee, 0.2539 to the 28 bps protocol fee — and of the three prices only the minimum output was ever a promise.

PortuguêsO preço de tabela, a cotação e o fill são três números diferentes, trabalhados numa pool de 1.000/1.000 com fee de 0,3%: negociar 100 A dá uma cotação líquida de 90,4072 B — 9,0909 perdidos para o impacto de preço (94,8% do custo total), 0,2480 para a fee da pool, 0,2539 para a fee de protocolo de 28 bps — e das três só o output mínimo foi alguma vez uma promessa.

EspañolEl precio de etiqueta, la cotización y el fill son tres números distintos, trabajados en una pool de 1.000/1.000 con comisión del 0,3%: negociar 100 A da una cotización neta de 90,4072 B — 9,0909 perdidos por impacto de precio (94,8% del coste total), 0,2480 por la comisión de la pool, 0,2539 por la comisión de protocolo de 28 bps — y de los tres precios solo el output mínimo fue alguna vez una promesa.

FrançaisLe prix affiché, le devis et le fill sont trois nombres différents, déroulés sur une pool de 1 000/1 000 à 0,3 % de frais : trader 100 A donne un devis net de 90,4072 B — 9,0909 perdus en impact de prix (94,8 % du coût total), 0,2480 en frais de pool, 0,2539 en frais de protocole de 28 bps — et des trois prix, seule la sortie minimale a jamais été une promesse.

DeutschEtikettpreis, Quote und Fill sind drei verschiedene Zahlen, durchgerechnet an einem Pool von 1.000/1.000 mit 0,3 % Gebühr: 100 A zu handeln ergibt eine Netto-Quote von 90,4072 B — 9,0909 verloren an Price Impact (94,8 % der Gesamtkosten), 0,2480 an die Poolgebühr, 0,2539 an die 28-bps-Protokollgebühr — und von den drei Preisen war nur der Mindest-Output je ein Versprechen.

РусскийЦенник, котировка и фактическое исполнение — три разных числа, разобранных на пуле 1000/1000 с комиссией 0,3%: сделка на 100 A даёт чистую котировку 90,4072 B — 9,0909 потеряно на ценовом влиянии (94,8% всей стоимости), 0,2480 — комиссия пула, 0,2539 — протокольная комиссия 28 bps, — и из трёх цен обещанием был только минимальный выход.

TürkçeEtiket fiyatı, kotasyon ve dolum üç ayrı sayıdır; %0,3 ücretli 1.000/1.000'lik tek havuzda işlenir: 100 A takas etmek 90,4072 B net kotasyon verir — 9,0909 fiyat etkisine gider (toplam maliyetin %94,8'i), 0,2480 havuz ücretine, 0,2539 da 28 bps protokol ücretine — ve üç fiyattan yalnızca asgari çıktı bir vaatti.

العربيةسعر اللافتة والتسعيرة والتنفيذ ثلاثة أرقام مختلفة، تُحسب على مجمّع 1000/1000 برسم 0.3%: مبادلة 100 A تعطي تسعيرة صافية 90.4072 B — خسر 9.0909 لأثر السعر (94.8% من كامل الكلفة)، و0.2480 لرسم المجمّع، و0.2539 لرسم البروتوكول البالغ 28 نقطة أساس — ومن الأسعار الثلاثة لم يكن الوعد إلا الحد الأدنى للمخرجات.

हिन्दीलेबल-मूल्य, कोट और फ़िल तीन अलग संख्याएँ हैं, 0.3% फ़ीस वाले 1,000/1,000 पूल पर हल करके दिखाई गईं: 100 A का व्यापार 90.4072 B की शुद्ध कोट देता है — 9.0909 मूल्य-प्रभाव में गए (कुल लागत का 94.8%), 0.2480 पूल-फ़ीस में, 0.2539 28 bps प्रोटोकॉल-फ़ीस में — और तीनों दामों में केवल न्यूनतम आउटपुट ही कभी वादा था।

日本語表示価格、見積もり、約定は三つの異なる数字です。手数料0.3%の1,000/1,000のプールで計算すると、100 Aの取引の正味見積もりは90.4072 B。9.0909は価格インパクトに(全コストの94.8%)、0.2480はプール手数料に、0.2539は28 bpsのプロトコル手数料に消えます。三つの価格のうち、約束であったのは最小出力だけです。

中文标价、报价与成交是三个不同的数字,用一个 0.3% 费率、1,000/1,000 的池算清:交易 100 A 得到净报价 90.4072 B——9.0909 归于价格冲击(占全部成本 94.8%),0.2480 归于池费,0.2539 归于 28 bps 协议费——三个价格中,唯一称得上承诺的只有最小输出。

한국어표시 가격, 견적, 체결가는 서로 다른 세 숫자입니다. 0.3% 수수료의 1,000/1,000 풀에서 계산하면 100 A 거래의 순 견적은 90.4072 B — 9.0909는 가격 충격으로(전체 비용의 94.8%), 0.2480은 풀 수수료로, 0.2539는 28 bps 프로토콜 수수료로 사라집니다 — 세 가격 중 약속이었던 것은 최소 출력뿐입니다.

Bahasa IndonesiaHarga label, kuotasi, dan eksekusi adalah tiga angka berbeda, dikerjakan pada satu pool 1.000/1.000 dengan fee 0,3%: memperdagangkan 100 A menghasilkan kuotasi bersih 90,4072 B — 9,0909 hilang ke dampak harga (94,8% dari seluruh biaya), 0,2480 ke fee pool, 0,2539 ke fee protokol 28 bps — dan dari ketiga harga itu hanya output minimum yang pernah menjadi janji.

বাংলালেবেল-দাম, কোট আর ফিল তিনটি আলাদা সংখ্যা, ০.৩% ফি-র ১,০০০/১,০০০ পুলে হিসাব করে দেখানো: ১০০ A লেনদেনে নিট কোট ৯০.৪০৭২ B — ৯.০৯০৯ যায় দাম-প্রভাবে (মোট খরচের ৯৪.৮%), ০.২৪৮০ পুল-ফিতে, ০.২৫৩৯ ২৮ bps প্রোটোকল-ফিতে — আর তিন দামের মধ্যে কেবল ন্যূনতম আউটপুটই কখনো প্রতিশ্রুতি ছিল।

FilipinoAng label na presyo, ang quote at ang fill ay tatlong magkakaibang numero, kinuwenta sa isang pool na 1,000/1,000 na may 0.3% na fee: ang pag-trade ng 100 A ay nagbibigay ng netong quote na 90.4072 B — 9.0909 ang nawala sa price impact (94.8% ng buong gastos), 0.2480 sa fee ng pool, 0.2539 sa 28 bps na fee ng protocol — at sa tatlong presyo, tanging ang minimum output ang naging pangako kailanman.

A screen shows you that one A is worth one B, you trade 100 A, and 90.41 B arrives. Nobody lied to you. Three different prices were involved and only one of them was ever a promise. This article names all three and accounts for every unit of the difference, using arithmetic you can redo on paper.

The whole article runs on one example pool, so fix it now. The pool holds 1,000 of token A and 1,000 of token B, and it charges 0.3% on what you pay in — a common setting, not a number of ours. You are trading 100 A.

Price one: the label

The pool sets its price from what it holds. With 1,000 of each token, the ratio is 1,000 / 1,000 = 1, so one A is priced at one B. That ratio is the label price, sometimes called the mid or spot price.

It is a true number and it is nearly useless on its own, because it is the price of an infinitely small trade. It tells you what the pool would charge for the very next atom, not for your 100 tokens. Reading the label and expecting to receive 100 B is the single most common beginner mistake, and it is not a scam — it is a misreading of what the label measures.

Price two: the quote

The pool follows one rule: the two amounts it holds, multiplied together, must not get smaller. It starts at 1,000 x 1,000 = 1,000,000. If you pour A in, the A side grows, so the B side must shrink to keep that product — and what you receive is exactly what the B side gives up.

Run it with no fee first, so the two effects stay separate. You put in 100, the A side becomes 1,100, so the B side must fall to 1,000,000 / 1,100 = 909.0909. You receive what it gave up:

1000 - (1000000 / 1100) = 1000 - 909.0909 = 90.9091 B

So before any fee at all, 100 A returns 90.9091 B, not 100. You lost 9.0909 tokens to the shape of the rule itself. That is not a charge and nobody collected it: you moved the pool's own ratio as you traded, and every token after the first paid the worse price you had just created. The name for it is price impact.

Now switch the fee on. The pool credits only 99.7% of your input to the trade, so instead of 100 the trade uses 99.7:

(1000 x 0.997 x 100) / (1000 + 0.997 x 100)
  = 99700 / 1099.7
  = 90.6611 B

The fee therefore cost 90.9091 - 90.6611 = 0.2480 B. Notice how small it is next to the 9.0909 from impact — a fortieth of the total damage — and notice that the fee did not shrink. It is 0.3% of whatever you put in, at every size. What changed is the thing beside it.

Last, the protocol fee: 28 basis points of the output. A basis point is one part in 10,000, so 28 bps is 28 / 10,000 = 0.0028, or 0.28%.

protocol fee = 90.6611 x 0.0028 = 0.2539 B
net quote    = 90.6611 - 0.2539 = 90.4072 B

That 90.4072 is the quote: the number the contract computed for your exact size, against the pool balances at a specific block. It is not the label, and it is not yet what you will receive.

The whole cost, accounted for

You paid 100 and the quote says 90.4072, a total cost of 9.5928 tokens, or 9.59% against the label. Every unit of it now has a name:

price impact  100      - 90.9091 = 9.0909   (94.8% of the cost)
pool fee      90.9091  - 90.6611 = 0.2480   ( 2.6% of the cost)
protocol fee  90.6611  - 90.4072 = 0.2539   ( 2.6% of the cost)
                                  -------
total                             9.5928

Add the three: 9.0909 + 0.2480 + 0.2539 = 9.5928, which closes exactly against 100 - 90.4072. Nothing is unexplained.

And read the shares before you conclude anything about fees. On this trade, 94.8% of what you gave up came from the size of your order against the depth of the pool, and 5.2% came from both fees combined. Choosing a venue by the fee on its label, while ignoring how deep it is, optimises the small number and ignores the large one.

Price three: the fill

The quote was computed against the pool as it stood at some block. Your transaction executes at a later block. In between, other people trade against the same pool, and the balances that produced 90.4072 are no longer the balances your trade meets.

This can move either way. If someone sold B into the pool before you, the B side is deeper and you receive more than the quote. If someone bought B, you receive less. The fill is the amount that actually lands in your wallet, and it is the only one of the three prices you ever really had.

There is a deliberate version of this, too. Because pending transactions are public, a bot can place its own trade immediately before yours to move the price against you, and another immediately after to take the difference. No contract can prevent that, because the ordering is decided outside the contract, before it runs. Saying otherwise would be the marketing claim this site does not make.

The only number that is a promise

Since the quote is a calculation and the fill is an outcome, the binding number is neither. It is the minimum output: the amount below which the transaction reverts and you keep your input.

That minimum comes from two places. You set a tolerance, which fixes your own floor as a percentage of the quote. Independently, the protocol enforces its own: every leg must return at least 80% of what the chain itself quoted for that leg, measured before the protocol fee, and the aggregate floor is clamped so it can never sit below 80%. The second is a catastrophe stop, not a good deal — it exists so that a broken or hostile pool cannot return you a tenth of your money, and nothing more than that.

So the honest summary of the three prices: the label tells you the pool's ratio, the quote tells you what your size would have returned a moment ago, and the floor tells you the worst you will accept. Only the last one is enforced.

Do not trust this page — reproduce it

Every claim above is checkable against the chain. Start here:

Redo the three lines of arithmetic above with your own numbers: put your pool's two balances in place of 1000 and 1000, your size in place of 100, and read the protocol fee straight from the chain with cast call <QUOTER> "PROTOCOL_FEE_BPS()(uint256)" — it must return 28.
Cite this article

Licensed CC BY 4.0 — quote, translate and reuse freely, including commercially, with attribution and a link. Copy a ready-made citation:

BlazePhoenix (2026). Three prices, one trade: the label, the quote and the fill. BlazePhoenix Engineering. https://blazephoenix.xyz/learn/three-prices
@misc{blazephoenix_three_prices,
  title  = {Three prices, one trade: the label, the quote and the fill},
  author = {BlazePhoenix},
  year   = {2026},
  url    = {https://blazephoenix.xyz/learn/three-prices},
  note   = {Accessed: reproduce the claim with the command above}
}

Writing an answer, a wiki entry or a paper? The claim above is reproducible against the chain before you quote it — which is the only sound basis for citing a technical source at all.

Contracts are verified on every chain we deploy to — addresses in the protocol manifest. Deeper formal treatment: the whitepaper (PDF).

Share this article · join the discussion

Related engineering