Sushiswap exchange

Sushiswap exchange is ready for Swap Confirmation After ERC-20 Approval

Sushiswap exchange is a two-stage transaction workflow when a fresh ERC-20 allowance is required: approval first records how much a named contract may spend, then swap confirmation submits the trade itself. The interface unlocks its final confirmation only after the approval settles, and successful execution reduces the input balance, adds the output token, and updates any remaining allowance.

This field manual follows only that decision path: prepare the wallet, read the quote, choose the allowance, confirm the transaction, verify the receipt, and resolve a completed approval the interface has not yet recognized.

A first ERC-20 swap reaches confirmation in two transactions

The first ERC-20 swap is a two-transaction authorization workflow: the approval records an allowance, then the swap spends within that limit and returns the selected output token.

The approval transaction

Approval is its own state-changing call and consumes native gas even though no swap occurs. The wallet signs one transaction whose calldata begins with a 4-byte function selector and identifies the spender and allowance amount. After one confirmed receipt, Sushi reads the new allowance from the ERC-20 contract and replaces the approval action with the swap action.

The swap transaction

The swap is a second state-changing call with a separate nonce, signature, network fee, and receipt. It spends only the authorized input amount, follows the quoted route, enforces the minimum output encoded for execution, and sends the purchased token to the recipient. An existing sufficient allowance removes the first transaction from later swaps of the same token through the same spender on the same chain.

Once both receipts settle, the route produces balance changes. This two-receipt path is longer than the one-receipt native ETH path.

What changes when the input asset is ETH?

A native ETH input is a direct value-transfer path, so the Sushi interface skips ERC-20 allowance setup and moves straight from quote review to swap confirmation. ETH has no token-contract allowance; the transaction carries value alongside call data and still reserves ETH for gas. Selecting WETH changes the path because WETH is an ERC-20 token with 18 decimals, so a fresh spender allowance requires approval before confirmation.

Network and token identity set the approval context

Network and token identity form the approval context, and the wallet must match both before Sushi can read the relevant balance, allowance, gas asset, and route.

Ethereum uses chain ID 1, Arbitrum One uses 42161, Base uses 8453, Polygon PoS uses 137, and BNB Smart Chain uses 56. MetaMask or Coinbase Wallet signs against one of these identifiers, while WalletConnect relays the request to the chosen wallet. Gas also belongs to that network: ETH pays on Ethereum, Arbitrum One, and Base; POL pays on Polygon PoS; BNB pays on BNB Smart Chain. A USDC balance on chain ID 1 is separate from the USDC balance and allowance at chain ID 42161, even when the same 20-byte account address appears.

An EVM address displays as 0x plus 40 hexadecimal characters, representing 20 bytes. Two assets can share a ticker while using different addresses, so the selected contract determines the allowance. Native ETH has no ERC-20 contract address, while WETH does.

The quote panel fixes the decision inputs before approval

The Sushi quote panel is a pre-transaction decision record, showing the input, expected output, price impact, minimum received, fee, network cost estimate, and routing source.

Sell amount and token pair

The sell field determines the maximum input the route expects to pull. Check the asset contract, not only its ticker, and compare the entered quantity with the wallet balance. Changing either token produces a new route and can change the spender the approval must name.

Output floor and price impact

Minimum received is the execution floor, while expected output is the latest estimate. Price impact reflects the trade’s effect on available liquidity; slippage tolerance controls how far execution may move before the transaction reverts. Refresh these fields after approval because the quote remains live while the first transaction settles.

Network fee and routing source

Network fee is the gas estimate paid in the chain’s native asset; routing source identifies the contracts and pools used. EIP-1559 wallets show maximum fee per gas and maximum priority fee per gas on compatible networks. A direct Sushi V2 pool defines a 0.3% fee. Sushi V3 pools expose 4 fee tiers: 0.01%, 0.05%, 0.3%, and 1%. An aggregated route may combine pools with different rules, so the previewed fee and route displayed immediately before signing govern the decision.

Approval scope sets the spender’s ceiling

Approval scope is the numeric ceiling stored by the input token contract for one owner-spender pair, and Sushi checks this allowance before enabling the swap transaction. The ERC-20 approve function accepts 2 arguments: a spender address and a uint256 amount, and a later approval replaces the stored value. An exact cap equal to the sell amount becomes 0 after full use; setting 0 clears it, while 2^256 − 1 is the uint256 maximum wallets commonly label unlimited. Owner, token, spender, and chain jointly define where the allowance applies.

Wallet confirmation turns the quote into execution

Wallet confirmation is the execution boundary where a prepared Sushi quote becomes signed transaction data, so every displayed field should agree with the decision made in the interface.

In the Sushiswap exchange interface, confirm only when these 5 conditions agree:

MetaMask and Coinbase Wallet expose the network, contract, requested value, and fee ceiling before signing; WalletConnect passes the same request to a mobile wallet. After acceptance, the submitted hash identifies one transaction and one nonce. The interface quote remains a preview, while the eventual receipt records execution.

Successful execution updates balances and allowance

A successful Sushi swap is an atomic state transition: the input is transferred, the route executes, the output reaches the recipient, and the allowance falls when it is finite.

Exact state changes are visible at three layers. First, the account nonce rises by 1 for the swap transaction. Second, the input token balance drops by the amount spent, while the output token balance rises by the amount delivered to the recipient. Third, a finite allowance falls by the amount pulled through transferFrom; an exact allowance equal to the sell amount therefore reaches 0 after full use. USDC records amounts with 6 decimals, while WETH and SUSHI use 18 decimals, so wallets scale raw integers before showing balances. One ETH also equals 10^18 wei at the native-asset layer.

The interface may need one balance refresh before the rendered token list catches the settled receipt.

Receipt data verifies the settled state change

Transaction verification is a receipt-and-balance check, linking the Sushi confirmation to one chain, one hash, one status code, and the token events emitted during execution.

Receipt status and transaction hash

Under EIP-658, transaction receipt status is 1 for success and 0 for failure. A transaction hash is 32 bytes, rendered as 64 hexadecimal digits after the 0x prefix. Etherscan resolves Ethereum receipts, while Arbiscan resolves Arbitrum One receipts. Match the chain, sender, destination contract, block inclusion, and status before treating the interface message as final.

Token events and wallet balances

An ERC-20 Transfer log exposes the sender and recipient as 2 indexed fields; including the event signature produces 3 topics. Its data field holds the raw token amount. An Approval event records the indexed owner, indexed spender, and new allowance. Compare those logs with the refreshed balance and allowance instead of relying only on a token row in the wallet.

The explorer receipt proves execution, while the refreshed wallet translates the same on-chain records into readable balances.

Sushi logo and Swap Anything text among floating coin icons
Sushi logo and Swap Anything text among floating coin icons

Why is the swap button still unavailable after approval?

A completed approval with a disabled swap button is an interface-state mismatch, most commonly resolved by waiting for final receipt data, refreshing the quote, or reconnecting the same account and network.

Start with the approval receipt on the selected chain. A pending transaction has not updated the allowance; status 0 means no usable allowance was written. Wait for status 1 before asking the interface to read the contract again.

Next, compare the connected account and chain with the approval sender and chain ID. Switching accounts, moving from Ethereum to Base, or reconnecting a different WalletConnect session points Sushi at another allowance record.

Then clear and re-enter the sell amount. That action requests a fresh quote and repeats the allowance lookup. If the amount now exceeds a finite remaining cap, the approval action returns because the existing ceiling no longer covers the trade.

Finally, compare the input token and spender in the approval with the contracts requested by the refreshed route. A different pair needs a separate allowance. Reading the recorded owner-spender pair is faster than repeating unrelated approvals, as discussed About Exchange.

Sushiswap exchange: frequently asked questions

Does reconnecting my wallet remove a Sushi token approval?

No, reconnecting a wallet does not remove an on-chain ERC-20 allowance. The allowance remains in the token contract under the same owner, spender, and chain until a later approval overwrites it, a zero-value approval clears it, or spending reduces a finite amount. Reconnecting only restores the interface session and lets Sushi read the existing record again.

Does revoking an allowance reverse a completed Sushi swap?

No, setting an allowance to zero changes future spending permission only; it does not reverse a swap already included in a successful block, restore the input tokens, remove the output tokens, alter the transaction receipt, or rewrite the Transfer events the token contracts emitted during that completed on-chain state transition.

What happens if the spending cap is below my sell amount?

The swap cannot pull more tokens than the recorded allowance, so confirmation either stays unavailable or the on-chain call reverts without executing the trade. Raise the cap to at least the sell amount, wait for that approval receipt, and refresh the quote. The failed on-chain attempt still consumes gas because the network processed it, while an unbroadcast wallet rejection consumes none.

Do I pay gas when I reject the approval in my wallet?

No, rejecting an approval before the wallet broadcasts it creates no transaction and spends no gas. Gas applies after a signed transaction reaches the network, including an approval or swap that later fails during execution. The wallet may still show an estimated fee before signing; that number is a ceiling or estimate, not a charge for opening or declining the prompt.

Is an Ethereum approval valid on Arbitrum One?

No, an Ethereum allowance is not valid on Arbitrum One because each chain maintains separate contract storage and uses a different chain ID. Even when the owner address and token symbol look identical, the allowance belongs to one token contract and spender on one network. Approve again on chain ID 42161 if Sushi requests it there, using ETH on Arbitrum One for gas.

Can importing the output token change a settled balance?

No, importing an output token changes only the wallet’s display configuration; it does not alter the balance stored by the token contract. Add the exact contract address on the same chain, then let the wallet read balanceOf for the connected account. A missing row in MetaMask therefore differs from a missing on-chain balance, and the successful receipt remains unchanged.

What does a pending approval do to a refreshed swap quote?

A pending approval does not lock the quoted output, so Sushi continues recalculating the route while the network processes the allowance transaction. Once the receipt succeeds, the interface reads the allowance and enables confirmation against a fresh quote. Recheck the output floor, fee, price impact, and routing source because those fields may differ from the values shown before approval.

Why does the approval spender differ from my output recipient?

The approval spender is the contract authorized to pull the input token, while the recipient is the address receiving the swap output. These roles serve different state changes, and their addresses do not need to match. The wallet approval should show the spender and cap; the swap preview should show the recipient, token pair, amount, and route before you sign.