Uniswap is a quote-and-approval workflow before onchain execution
Uniswap is a quote-and-approval workflow that shows a route, expected output, price impact, network cost, and spending permission before an onchain swap executes. The quote is not settlement: approval authorizes token access, confirmation sends or signs the order, and the blockchain records the final balance changes.
A quote that converts balances into an executable choice
The Uniswap quote gives a token holder enough information to decide whether a proposed swap deserves a wallet signature.
Wallet and network prerequisites
Wallet connection identifies the account that will sell tokens and receive the output. MetaMask, Uniswap Wallet, Ledger-backed accounts, and WalletConnect sessions expose the selected address without transferring anything during quotation. Execution also requires the wallet to use the quote’s network and, for a classic onchain path, retain enough native currency for gas. An EVM address occupies 20 bytes, so a full contract address resolves ambiguity that a token symbol cannot resolve.
Token and amount selection
The pair selection fixes the sell asset, buy asset, and chain before the router compares paths. On Ethereum, USDC uses 6 decimal places, whereas WETH and DAI use 18; the interface converts raw integers into readable units. Entering Max for ETH still preserves funds for the estimated network cost. A Max ERC-20 input can use the full token balance when a separate native asset pays gas.
Costs appear before approval
Uniswap displays protocol fees and network cost before approval, so the funding requirement is visible before any state change.
Pool fee
Every pool in the selected route charges its configured swap fee. Uniswap v3’s original standard fee tiers are 0.05%, 0.30%, and 1%, and governance later enabled the 0.01% tier. Uniswap v2 uses one 0.30% tier. Uniswap v4 permits a static fee from 0% to 100% in 0.0001% increments, or a hook-managed dynamic fee. The expected output already reflects the pool charges on the quoted path. Because a route can cross several pools, the total charge reflects each leg rather than one universal interface percentage.
Network cost
Network cost pays validators or sequencers for processing state changes, and its amount moves with gas demand and route complexity. A fresh ERC-20 allowance followed by a classic swap requires 2 onchain transactions; a sufficient existing allowance leaves 1. ETH pays gas on Ethereum, Base, Arbitrum One, and Optimism, while POL pays it on Polygon. A reverted execution still consumes the network resources that evaluated it.
Route-dependent payment
Default trade compares Uniswap v2, v3, v4, and eligible UniswapX paths using price, liquidity, and network cost. A route can split an order or hop through an intermediate token when that produces a better executable quote. With UniswapX, a filler pays most settlement gas and includes that expense in its economics. An initial approval or required native-token wrapping remains a user-paid transaction.
The quote panel separates rate, impact, and tolerance
The Uniswap quote panel separates expected output, price impact, and maximum slippage because each describes a different execution constraint.
All changing inputs in this hypothetical exact-input example are labelled here: 1 000 USDC sold, a 0.30% pool fee, 0.497 WETH quoted, 0.20% displayed price impact, 0.50% maximum slippage, and 0.002 ETH network cost. The pool charge equals 3 USDC. The 0.497 WETH quote already reflects its route and pool charge, so subtracting 3 USDC again would double-count it. Applying the 0.50% tolerance gives 0.494515 WETH. The concrete execution floor is therefore 0.494515 WETH; the swap settles at or above that amount or reverts. The 0.002 ETH network cost remains separate.
Price impact measures the price movement caused by the order against available liquidity. Maximum slippage covers adverse movement between quotation and execution. The displayed rate describes the expected exchange relationship, while minimum output turns tolerance into an enforceable contract parameter. Route details explain whether the quote uses one pool, several pools, or an auction-based fill.
Approval is a permission change, not the swap
A Uniswap approval changes an ERC-20 allowance, while the later swap changes token balances and protocol pool state.
ERC-20 defines allowance for one owner, one token, and one spender. Calling approve sets an amount, and a successful call emits an Approval event containing 2 addresses and 1 value. An exact allowance limits the next transfer to the chosen amount, then declines as transferFrom consumes it. A broader allowance supports later swaps until its remaining value becomes insufficient or the owner changes it. Native ETH does not use the ERC-20 allowance method.
Permit2 separates the durable onchain token permission from a narrower signature permission. Its reusable allowance flow starts with 1 onchain approval, then uses an EIP-712 signature that costs no gas by itself. The Uniswap app gives that signature permission a 30-day lifetime. Permit2 stores an allowance amount as uint160, with expiration and nonce fields as uint48 values. The underlying ERC-20 approval remains a distinct state entry until another transaction changes it.
What exactly happens after I confirm a Uniswap swap?
After confirmation, Uniswap either submits an onchain route, broadcasts a signed UniswapX order, or sends a wallet-composed batch.
Classic onchain route
A classic route asks the wallet to sign a transaction addressed to a router such as Universal Router. Broadcasting places that transaction into the network’s pending set. When included, the router pulls the approved input, executes the encoded v2, v3, or v4 path, checks the output constraint, and sends the output to the recipient. Pool state at that block determines the actual settled amount. For a split route, Universal Router coordinates several pool calls inside the same atomic transaction and returns one aggregate output.
UniswapX signed order
An eligible UniswapX path asks for a Permit2-backed order signature rather than an immediate swap transaction from the user. The signature alone changes no balance. Fillers compete to satisfy its output terms, and the first valid filler submits the settlement transaction. That transaction transfers the input under the signed permission and delivers the required output, while the filler’s address pays most execution gas.
Batched wallet path
A compatible smart wallet can package approve-and-swap actions into 1 blockchain transaction. The wallet’s detail view exposes each action before signing, even though the chain receives one composed transaction. This path changes transaction count, not the intended sequence: permission must exist before the router spends the token, and the output constraint must still pass before the batch completes atomically.
Onchain settlement changes balances and allowance
Successful Uniswap settlement lowers the input balance, raises the output balance, and records the route’s accounting changes in logs.
An ERC-20 input normally produces a Transfer event from the wallet into the settlement path, while the output token produces another Transfer to the recipient. The standard Transfer event names 2 addresses and 1 amount. Uniswap v2’s Swap event exposes 6 parameters, and the v3 Swap event exposes 7, including the post-swap price and tick. Uniswap v4 settles final token deltas through PoolManager after its internal accounting completes. These records let an explorer reconstruct the actual amounts without relying on the earlier screen quote or cached interface state.
A finite allowance falls by the amount that transferFrom spends. Pool reserves or concentrated-liquidity state move at the same time, and fees accrue under the version’s accounting rules. Every successful action belongs to one atomic transaction: all required calls complete, or the state changes roll back together. Gas remains spent after a revert because the network already executed the checks.
Explorer records settle the status question
A block explorer provides the decisive Uniswap status because it reads the chain rather than the interface session.
An EVM transaction hash is 32 bytes, displayed as 64 hexadecimal digits after its 0x prefix. An address is 20 bytes, or 40 hexadecimal digits, and displays as 42 characters with its prefix. Etherscan covers Ethereum Mainnet, Arbiscan covers Arbitrum One, and Basescan covers Base. The matching explorer shows pending, successful, or reverted status, plus block number, sender, recipient contract, gas used, and event logs. An approval receipt shows permission changed; only the later settlement receipt proves that token balances exchanged.
A repeated approval prompt has one common reset
A repeated Uniswap approval prompt commonly clears after the existing allowance is reset to zero and granted again.
USDT and CRV are established examples associated with non-standard approval handling. Some token implementations reject a direct change from one nonzero allowance to another nonzero allowance. The recovery sequence sends a revocation that sets the allowance to 0, waits for confirmation, and then submits the new approval. For an ordinary externally owned account, revoke, approve, and swap form 3 state-changing transactions; compatible smart-wallet batching changes how those actions are packaged.
Disconnecting a wallet or clearing browser data does not change an onchain allowance. Check the revocation receipt on the correct explorer, reconnect the same account and network, and request the quote again. The next approval should name an amount at least as large as the sell amount. Once that approval confirms, a separate swap confirmation remains necessary unless the wallet explicitly presents a batch (more on this in Uniswap guide ).
Network selection binds every quote and receipt
Every Uniswap quote belongs to one chain, and the wallet must sign with that chain’s identifier during execution.
Ethereum Mainnet uses chain ID 1; Optimism uses 10; BNB Smart Chain uses 56; Unichain uses 130; Polygon uses 137; Base uses 8453; Arbitrum One uses 42161; and Avalanche C-Chain uses 43114. These identifiers tell the wallet which ledger receives the approval or swap. Network cost also follows that selection: ETH funds several Ethereum-compatible networks, BNB funds BNB Smart Chain, POL funds Polygon, and AVAX funds Avalanche C-Chain.
The same 20-byte account address can appear on several EVM networks while holding separate balances and allowances on each. Switching chains therefore invalidates the old quote context and triggers a new route calculation. If an expected output looks absent, inspect the recipient on the destination chain named by the receipt. That chain-specific record determines where settlement occurred.
Quote reconstruction inside the routing stack
The Uniswap routing stack builds a quote by comparing executable paths, then encodes the selected path for onchain settlement.
Default trade evaluates liquidity from Uniswap v2, v3, and v4 alongside eligible UniswapX orders. It weighs expected output, pool fees, price impact, and execution cost, then splits or hops when the combined path improves the executable outcome. Quote computation reads chain state without changing it. Universal Router later composes the chosen pool calls in one transaction, while Permit2 supplies bounded token permission. For an exact-input swap, amountOutMinimum enforces the output floor, and the encoded call carries recipient and route data.
Execution reruns the route against the state available in its block. If every condition passes, the receipt fixes the input spent, output received, fees paid, allowance consumed, and pools touched. If a bound fails, the calls revert together. The earlier quote remains useful as a decision record, while the onchain receipt becomes the authoritative transaction outcome.
Uniswap: questions and answers
Can I enter the exact amount I want to receive?
Yes. The Uniswap swap screen accepts either a sell amount or a buy amount, then calculates the other side from available routes. An exact-output request sets a maximum input rather than a minimum output. The wallet transaction succeeds only if execution obtains the requested output without spending above that cap; otherwise, the transaction reverts.
Will changing wallet accounts preserve an open quote?
No quote is guaranteed to remain identical after switching wallet accounts. Pool state may still produce the same route, but the new account brings a different balance, allowance, recipient context, and native-token gas balance. The interface therefore recalculates executable details for that account before confirmation, and any required approval belongs to the newly selected owner address.
Does rejecting a wallet prompt create an onchain record?
No. Rejecting an unsigned wallet prompt sends no transaction, changes no allowance, and consumes no network fee. The same applies when you decline a Permit2 signature before submission. Once the wallet broadcasts a signed transaction, the network processes it and charges execution resources even if the contract later reverts, so the broadcast point is the meaningful boundary.
Are EIP-1271 contract-wallet signatures compatible with Permit2?
Yes at the Permit2 contract level. Permit2 accepts EIP-1271 signatures from contract accounts, alongside signatures from externally owned accounts. The wallet and interface must still support producing and submitting that contract-wallet authorization. Compatibility therefore rests on the connected account implementation and its integration, not on an ERC-20 token approval being limited to a conventional private-key account.
Is an approval amount stored in displayed token units?
No. ERC-20 approval stores an integer amount in the token contract, and the interface scales that integer using the token’s decimals value. On Ethereum, 1 USDC corresponds to 1 000 000 base units because USDC uses 6 decimals; 1 WETH corresponds to 10^18 base units. Reading the wallet prompt in displayed units prevents confusion around the encoded integer.
After broadcasting, does closing the browser cancel the swap?
No. Once a classic swap transaction reaches the network, validators or sequencers continue processing it without the browser session. Closing the tab also does not withdraw an already broadcast UniswapX order; its fill rules and expiry govern settlement. An unsigned quote or rejected prompt has not crossed that boundary, so closing the browser simply ends the local interaction.
Does the block explorer preserve the original quote?
No. A block explorer preserves the submitted calldata, receipt, logs, gas used, and settled token amounts, but it does not archive every interface field shown before signing. The original expected output, displayed price impact, and estimated network cost belong to the quotation session. The receipt supplies the final execution evidence from which an effective exchange rate can be calculated.
Will a successful receipt make a hidden token appear automatically?
No. A successful receipt proves that the chain recorded the output transfer, but wallet display remains a separate interface function. Select the same chain, then add or unhide the output token using its contract address when needed. The explorer’s token-transfer section confirms the amount and recipient even while the wallet omits the asset from its default list.