
Who is on the other side of your trade, and what they are paid
The tokens you trade against belong to someone. This traces one 100-token swap through the provider's side of the ledger: what the fee does to the pool, who receives which fee, and the loss the fee is competing against.
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 · 摘要 · 要旨 · ملخص
English — One 100-token swap traced from the provider side: the 0.3% pool fee is never collected anywhere — it is what makes the pool's product grow from 1,000,000 to 1,000,272.79, so the same 100 shares now cover a bigger pool; that growth is how providers are paid. The trader paid 0.5019 in fees total, of which providers received 0.2480, and the 28 bps protocol fee is a constant with no function anywhere that can raise it.
Português — Um swap de 100 tokens seguido do lado do fornecedor: a fee de 0,3% da pool nunca é cobrada para lado nenhum — é o que faz o produto da pool crescer de 1.000.000 para 1.000.272,79, de modo que as mesmas 100 shares cobrem agora uma pool maior; é por esse crescimento que os fornecedores são pagos. O trader pagou 0,5019 de fees no total, dos quais os fornecedores receberam 0,2480, e a fee de protocolo de 28 bps é uma constante sem nenhuma função em lado algum que a possa subir.
Español — Un swap de 100 tokens trazado desde el lado del proveedor: la comisión de la pool del 0,3% nunca se cobra hacia ningún sitio — es lo que hace crecer el producto de la pool de 1.000.000 a 1.000.272,79, de modo que las mismas 100 participaciones cubren ahora una pool mayor; ese crecimiento es cómo se paga a los proveedores. El trader pagó 0,5019 en comisiones en total, de las cuales los proveedores recibieron 0,2480, y la comisión de protocolo de 28 bps es una constante sin ninguna función en ninguna parte que pueda subirla.
Français — Un swap de 100 tokens tracé du côté du fournisseur : les 0,3 % de frais de pool ne sont collectés nulle part — ils font croître le produit de la pool de 1 000 000 à 1 000 272,79, si bien que les mêmes 100 parts couvrent désormais une pool plus grande ; cette croissance est la rémunération des fournisseurs. Le trader a payé 0,5019 de frais au total, dont les fournisseurs ont reçu 0,2480, et les 28 bps de frais de protocole sont une constante sans aucune fonction nulle part qui puisse la relever.
Deutsch — Ein 100-Token-Swap von der Provider-Seite verfolgt: Die 0,3 % Poolgebühr wird nirgendwohin eingezogen — sie lässt das Produkt des Pools von 1.000.000 auf 1.000.272,79 wachsen, sodass dieselben 100 Anteile jetzt einen größeren Pool abdecken; dieses Wachstum ist die Bezahlung der Provider. Der Trader zahlte insgesamt 0,5019 an Gebühren, wovon die Provider 0,2480 erhielten, und die 28-bps-Protokollgebühr ist eine Konstante ohne irgendeine Funktion, die sie erhöhen könnte.
Русский — Один своп на 100 токенов, прослеженный со стороны провайдера: комиссия пула 0,3% никуда не взимается — именно она растит произведение пула с 1 000 000 до 1 000 272,79, так что те же 100 долей теперь покрывают больший пул; этим ростом провайдерам и платят. Трейдер заплатил 0,5019 комиссий всего, из которых провайдеры получили 0,2480, а протокольная комиссия 28 bps — константа, для которой нигде нет функции, способной её поднять.
Türkçe — Sağlayıcı tarafından izlenen 100 tokenlik bir takas: %0,3'lük havuz ücreti hiçbir yere tahsil edilmez — havuzun çarpımını 1.000.000'dan 1.000.272,79'a büyüten şeydir, böylece aynı 100 pay artık daha büyük bir havuzu kapsar; sağlayıcılara ödeme bu büyümeyle olur. Trader toplamda 0,5019 ücret ödedi, bunun 0,2480'ini sağlayıcılar aldı ve 28 bps protokol ücreti, hiçbir yerde onu yükseltebilecek fonksiyonu olmayan bir sabittir.
العربية — مبادلة 100 وحدة مقتفاة من جانب المزوّد: رسم المجمّع 0.3% لا يُحصَّل إلى أي مكان — هو ما ينمّي جداء المجمّع من 1,000,000 إلى 1,000,272.79، فتغطي المئة حصة نفسها الآن مجمّعاً أكبر؛ وبهذا النمو يُدفَع للمزوّدين. دفع المتداول 0.5019 رسوماً إجمالاً، تلقى منها المزوّدون 0.2480، ورسم البروتوكول البالغ 28 نقطة أساس ثابتٌ لا توجد في أي مكان دالة تستطيع رفعه.
हिन्दी — प्रदाता की ओर से खोजा गया एक 100-टोकन स्वैप: 0.3% पूल-फ़ीस कहीं वसूली नहीं जाती — वही पूल के गुणनफल को 1,000,000 से 1,000,272.79 तक बढ़ाती है, जिससे वही 100 शेयर अब बड़े पूल को कवर करते हैं; इसी वृद्धि से प्रदाताओं को भुगतान होता है। ट्रेडर ने कुल 0.5019 फ़ीस दी, जिसमें से प्रदाताओं को 0.2480 मिले, और 28 bps प्रोटोकॉल-फ़ीस एक स्थिरांक है जिसे बढ़ाने वाली कोई फ़ंक्शन कहीं नहीं है।
日本語 — 100トークンのスワップを提供者側から追跡します。0.3%のプール手数料はどこにも徴収されません。それはプールの積を1,000,000から1,000,272.79へ成長させるものであり、同じ100シェアがより大きなプールをカバーするようになります。その成長こそが提供者への支払いです。トレーダーは合計0.5019の手数料を払い、うち0.2480を提供者が受け取りました。28 bpsのプロトコル手数料は定数で、それを引き上げる関数はどこにも存在しません。
中文 — 从提供者一侧追踪一笔 100 代币的交换:0.3% 的池费从未被收走到任何地方——它让池子的乘积从 1,000,000 涨到 1,000,272.79,同样的 100 份额如今覆盖着更大的池子;提供者正是靠这种增长获得报酬。交易者总共付了 0.5019 的费用,其中 0.2480 归提供者;28 bps 的协议费是常量,任何地方都没有能上调它的函数。
한국어 — 100 토큰 스왑을 공급자 쪽에서 추적합니다. 0.3% 풀 수수료는 어디로도 걷히지 않습니다 — 그것은 풀의 곱을 1,000,000에서 1,000,272.79로 키우는 힘이고, 같은 100 지분이 이제 더 큰 풀을 덮게 됩니다. 그 성장이 공급자가 보수를 받는 방식입니다. 트레이더는 총 0.5019의 수수료를 냈고 그중 0.2480이 공급자에게 갔으며, 28 bps 프로토콜 수수료는 어디에도 올릴 수 있는 함수가 없는 상수입니다.
Bahasa Indonesia — Satu swap 100 token dilacak dari sisi penyedia: fee pool 0,3% tak pernah dipungut ke mana pun — ialah yang membuat produk pool tumbuh dari 1.000.000 menjadi 1.000.272,79, sehingga 100 saham yang sama kini mencakup pool yang lebih besar; pertumbuhan itulah cara penyedia dibayar. Trader membayar total 0,5019 fee, di antaranya 0,2480 diterima penyedia, dan fee protokol 28 bps adalah konstanta tanpa fungsi di mana pun yang bisa menaikkannya.
বাংলা — সরবরাহকারীর দিক থেকে অনুসৃত একটি ১০০-টোকেন সোয়াপ: ০.৩% পুল-ফি কোথাও আদায় হয় না — সেটিই পুলের গুণফলকে ১,০০০,০০০ থেকে ১,০০০,২৭২.৭৯-এ বাড়ায়, ফলে একই ১০০ শেয়ার এখন বড় পুল ঢেকে রাখে; সেই বৃদ্ধিতেই সরবরাহকারীরা পারিশ্রমিক পান। ট্রেডার মোট ০.৫০১৯ ফি দিয়েছেন, যার মধ্যে সরবরাহকারীরা পেয়েছেন ০.২৪৮০, আর ২৮ bps প্রোটোকল-ফি এক ধ্রুবক যাকে বাড়ানোর কোনো ফাংশন কোথাও নেই।
Filipino — Isang 100-token na swap na sinundan mula sa panig ng provider: ang 0.3% na fee ng pool ay hindi kailanman nakokolekta kahit saan — ito ang nagpapalaki sa produkto ng pool mula 1,000,000 hanggang 1,000,272.79, kaya ang parehong 100 shares ay sumasaklaw na ngayon sa mas malaking pool; ang paglaking iyon ang bayad sa mga provider. Nagbayad ang trader ng kabuuang 0.5019 na fees, kung saan 0.2480 ang natanggap ng mga provider, at ang 28 bps na fee ng protocol ay constant na walang function kahit saan na makakapagtaas dito.
When you swap, no person agrees to take the other side. A contract does, following a fixed rule. But the tokens that contract hands you are not the contract's: they were deposited by people, and those people are paid for it. This article follows one trade from their side.
It matters for two reasons. If you ever consider providing liquidity yourself, this is the arithmetic you would be signing up for. And if you only ever trade, it explains why the fee exists at all, which is the difference between accepting a charge and understanding a price.
What a provider actually deposits
A provider puts in both tokens, in the ratio the pool already holds, and receives shares recording their fraction of it. If the pool holds 1,000 A and 1,000 B and there are 100 shares outstanding, one share entitles its holder to 1% of whatever is in the pool at the moment they withdraw.
Note the phrase "whatever is in the pool". The share is not a claim on 10 A and 10 B. It is a claim on 1% of two amounts that will have changed by the time you come back, because every trade changes them. That single distinction contains everything else in this article.
One trade, from the pool's side
Take our standard pool: 1,000 A and 1,000 B, charging 0.3%. Someone trades 100 A in and, as computed in the earlier articles, receives 90.6611 B. Afterwards the pool holds:
A side: 1000 + 100 = 1100.0000
B side: 1000 - 90.6611 = 909.3389The rule the pool follows is that the two amounts multiplied together must not shrink. Before the trade that product was 1,000 x 1,000 = 1,000,000. After it:
1100 x 909.3389 = 1,000,272.79 (+272.79, or +0.0273%)The product grew. Now run exactly the same trade with the fee switched off, where the trader would have received 90.9091 instead:
1100 x 909.0909 = 1,000,000.00 (+0.00)With no fee, the product lands precisely back where it started. So the fee is not a charge collected and taken away somewhere; it is the entire mechanism by which the pool ends the trade larger than it began. No new shares were issued, and the same 100 shares now cover a bigger pool. That is how a provider is paid: not by a transfer, but by the thing they own a fraction of becoming bigger.
Two fees, two recipients
The trade above involved two separate fees and they go to different places, which is worth being exact about because they are usually blurred together.
The pool fee of 0.3% cost the trader 90.9091 - 90.6611 = 0.2480 B and stayed in the pool, in favour of its providers. The protocol fee of 28 basis points cost 90.6611 x 0.0028 = 0.2539 B and was taken from the output by the router. The trader paid 0.5019 in fees in total; the providers received 0.2480 of it.
The 28 bps figure is written into the contract as a constant with no function anywhere that changes it. It is not a rate that starts low and rises once there is enough volume to be worth taxing — there is no mechanism to raise it, so that is a claim you can check rather than trust.
The other side of the provider's ledger
The fee is the income. Now the cost, which is the part that is left out of most explanations, and which is not optional.
Look again at what the provider holds after the trade. Their 1% share was 10 A and 10 B before. It is now 11 A and 9.09339 B. They did not choose this. The pool sold B to the trader because the trader wanted B, so every provider is now holding more of the token that was being sold to the pool, and less of the token being bought out of it.
Value it. The pool's new ratio prices one B at 1,100 / 909.3389 = 1.20967 A. So the provider's share is worth 11 + (9.09339 x 1.20967) = 11 + 11.0000 = 22.0000 A.
Now value what they would have held if they had never deposited anything and simply kept their 10 A and 10 B: 10 + (10 x 1.20967) = 22.0967 A.
as a provider: 22.0000 A
simply holding: 22.0967 A
-------
behind by 0.0967 A (0.44%)On this single trade, the provider is 0.44% worse off than someone who did nothing, and that is after collecting the fee. The name for the gap is impermanent loss, and it is a bad name: there is nothing temporary about it if you withdraw at this price. It is called impermanent because if the ratio returns to where it started, the gap closes to zero on its own.
So the provider's bet, stated plainly, is that the fees collected across many trades will exceed the drift that accumulates while the price wanders. It is a real position with a real risk, and it is not a savings account.
Where the analogy would mislead you
People describe providing liquidity as "renting out your tokens", and the picture is close enough to be dangerous. When you rent something out you get it back — the same object, plus rent. Here you do not get the same thing back. You get whichever mix of the two tokens the pool happens to hold when you leave, plus the fees that accumulated inside it.
That is why an advertised yield on liquidity provision is only ever half a statement. It measures fee income over some window and says nothing about the composition drift over the same window, which can be larger, and which is invisible in the yield figure.
What this means for you as a trader
Three practical consequences follow from the provider's side of the ledger.
First, depth is somebody's money at risk. A pool is deep because people put capital there and are bearing that drift. This is why depth is scarce, why it concentrates in a few pairs, and why a token with a genuinely deep pool has told you something a market cap cannot.
Second, fees are not extractive by nature. Remove the fee entirely and the pool stops growing, providers stop depositing, and the depth that was making your trades cheap disappears — and depth, as the sizing article showed, dominates fees in what a large trade actually costs.
Third, the numbers on both sides come from the same two balances. Your price impact and the provider's composition drift are the same event described from two directions: you moved the ratio, and they are holding the result.
Do not trust this page — reproduce it
Every claim above is checkable against the chain. Start here:
Read a pool's two reserves from a block explorer, multiply them, and write the product down. Come back after some trades and multiply again. The product should have grown, and it should not have grown by more than the fee rate could account for.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). Who is on the other side of your trade, and what they are paid. BlazePhoenix Engineering. https://blazephoenix.xyz/learn/who-is-on-the-other-side@misc{blazephoenix_who_is_on_the_other_side,
title = {Who is on the other side of your trade, and what they are paid},
author = {BlazePhoenix},
year = {2026},
url = {https://blazephoenix.xyz/learn/who-is-on-the-other-side},
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
- What is a liquidity pool? The two-token pile that sets the price ›
- What is impermanent loss? The cost of being a liquidity provider ›
- Three prices, one trade: the label, the quote and the fill ›
- How big is too big? Sizing a trade against the depth of a pool ›
- What is an AMM? The formula that replaced the market maker ›