← All posts
GUIDES

How to read a DEX swap quote, line by line

TT
Tirio Team · 8 min read

Rate, price impact, minimum received, fees, network fee and route: what each line of a swap quote means, worked through on a real BNB to USDT quote.

A swap quote looks like one number with some small print underneath. The small print is where the protection lives. This guide walks through every line using a real quote: 1 BNB sold for USDT on BNB Chain, requested from Tirio's public API on 2026-10-01. The field names come from that API, and the labels match what you see in most swap interfaces, ours included.

The quote we will read

Here are the parts that matter, rounded for reading:

FieldValue
You pay1 BNB
Expected output767.848 USDT
Minimum received (0.5 % slippage)764.009 USDT
Price impact0 bps
Gas estimate264,165 gas at 0.05 gwei
Route88.3 % through a Uniswap V4 pool, 11.7 % through a PancakeSwap Infinity CL pool
Simulatedyes

The raw response carries amounts as integers in the token's smallest unit. USDT on BNB Chain has 18 decimals, so the expected output arrived as 767848115641931112877. Interfaces divide by the decimals for you, which is also where display rounding comes from.

Expected output is an estimate, minimum received is the promise

The big number, 767.848 USDT, is what the route paid when it was simulated against the latest block. Between that moment and the block your transaction lands in, other trades change the pools. So the expected output is a good estimate, not a guarantee.

The line that is guaranteed is minimum received. It is the expected output minus your slippage tolerance:

minOut = amountOut × (10000 − slippageBps) / 10000
       = 767.848 × (10000 − 50) / 10000
       = 764.009 USDT

That number is written into the transaction. If the swap would deliver less, the contract reverts the whole transaction. You keep your BNB and lose only the gas. Nothing ever fills halfway.

Two practical consequences:

  • A tolerance that is too tight makes ordinary swaps fail whenever the market twitches. A tolerance that is too loose lets you accept a much worse fill, and it gives a sandwich bot more room. The default of 0.5 % is a reasonable middle for liquid pairs. Tokens with a transfer tax usually need more.
  • When you compare offers, compare minimum received at the same slippage. The headline output alone can mislead.

Rate

The rate is output divided by input: 767.848 USDT per BNB here. Most interfaces let you flip it to see BNB per USDT (0.0013023). Our response also carried USD values for both sides, 767.92 USD in and 767.84 USD out. The 8 cent gap, about 0.01 %, is what the trade gives up against the reference price at this size. It is a handy sanity check. If the two USD values are far apart on a liquid pair, something is off with the pair or the size.

Price impact

Price impact is how far your own order moves the price against you. Every AMM pool reprices as you trade against it, so a bigger order gets a worse average price than a tiny one.

Tirio measures it by comparing your output with what the same pools would pay, proportionally, for a thousandth of the amount. For 1 BNB the difference rounded to 0 bps. For contrast, an indicative price for 2,000 BNB a few seconds later showed 44 bps of price impact, even though that order was spread over eleven paths.

Price impact and slippage are different things. Impact is known before you sign and comes from the size of your order. Slippage is what changes after you sign, because of other people's trades. Our guide to price impact and slippage works through both with numbers. On tirio.io the impact figure turns amber at 1 %, red at 5 %, and from 15 % the swap button stays disabled until you confirm.

Fees: three layers

A quote can hide fees in three places, and it helps to know which is which.

  1. Pool fees. Each pool on the route charges its own fee, already deducted from the expected output. The Infinity CL pool in our route charged 99 parts per million, about 0.01 %. You never pay these separately.
  2. The interface or aggregator fee. On tirio.io this is a 3 bps Tirio fee taken from the token you pay. On a 1 BNB sale that is 0.0003 BNB, and the remaining 0.9997 BNB is what gets routed. The quote above came straight from our API, which adds no Tirio fee, so it shows 0.
  3. Gas. Paid in BNB on top of everything else. See the next section.

There is a fourth item that is not a fee but affects what you can receive: positive slippage. If the market moves in your favour and the swap delivers more than the expected output, who gets the extra? Policies differ between interfaces. On Tirio, for a sale of an exact amount whose output token has no transfer tax, the Router keeps anything above the expected output up to 1 % of it, and passes on whatever lies beyond that cap. In plain terms, on those swaps the expected output is the most you should plan on receiving. If the swap delivers less, you receive less, down to your minimum. Buy (exact-out) swaps and taxed tokens are not affected.

Network fee

The gas estimate was 264,165 gas, and the gas price was 0.05 gwei (50,000,000 wei). Multiply them:

264,165 × 0.00000000005 BNB = 0.0000132 BNB ≈ 0.01 USD

You pay for the gas the transaction actually uses, so the estimate is a guide rather than a bill. Gas grows with route complexity. Each extra pool is another contract call, which is why an aggregator should only split an order when the extra output beats the extra gas. The 2,000 BNB price mentioned earlier estimated about 7.3 million gas for its eleven paths, which at the same gas price is still well under a dollar.

Route

The route shows where your tokens actually go. Ours sent 88.3 % of the BNB to a Uniswap V4 pool and 11.7 % to a PancakeSwap Infinity CL pool, both paying USDT directly.

The quote also reported a split gain of 81 parts per million: the split route paid about 0.06 USDT more than the best single path would have for the full amount. That is typical of small trades in deep pairs. Splitting barely matters at this size and matters a lot more for large orders or thin pairs.

One more detail is worth knowing. An indicative price requested a second and a half earlier had routed everything through a single on-chain market maker and shown 767.96 USDT. The quote that was simulated as a complete transaction chose a different split and returned 767.85. Prices shown while you type are routed estimates. The simulated quote is the number to judge. Our overview of how routing works explains the difference.

Badges and timers

A few more signals tell you how much to trust what you are looking at:

  • Simulated or not. A simulated quote means the full transaction was run against the latest block before it reached you. On tirio.io you see a Simulated badge, and in the rare case the simulation could not run, a Not simulated badge with a warning.
  • Exact or estimated. Some venues can only be priced by asking them at a few sizes. When a leg of the route falls between those samples, it is interpolated and the quote is marked Estimated. Your minimum received still applies.
  • Deadline. Every quote carries a time after which the contract refuses it. On tirio.io it is 20 minutes after the quote was made, and the app fetches a fresh quote if fewer than 20 seconds remain.

A short checklist before you press swap

  1. Check the contract your wallet shows. Every Tirio swap goes to our Router on BNB Chain, and any other target is not ours. Its address is:

    0x000000000927913A80FCBC84E6e1F8f8a9614f2E
    
  2. Check the token addresses. Symbols prove nothing, and anyone can deploy a token called USDT.

  3. Read minimum received. That is the amount the contract enforces.

  4. Look at price impact. Above 1 % on a pair you thought was liquid, try a smaller size.

  5. Check what you are approving, if the token needs an approval. Our post on approvals, EIP-2612 and Permit2 explains the options.

You can request the same kind of quote yourself, without a key, from the REST API, or see it laid out in the app at /swap. The swapping guide documents every line and badge on the card.

KEEP READING