BTC:
ETH:
SOL:
BNB:
XRP:
Spending authority

Approvals in the execution flow

An approval is not the swap. It is authority that lets another address spend a defined asset under defined rules—and that authority may remain after the intended trade fails or ends.

10 min readReviewed July 14, 2026Trading mechanics

The short answer

On EVM chains such as Robinhood Chain, an ERC-20 swap usually needs the token owner to authorize a spender before that spender can call transferFrom. The approval can be an earlier onchain transaction, a signed permit, or part of a smart-account batch. If an earlier standalone approval succeeds and the later swap fails, the allowance still exists.

Solana's Token Program uses a different model. The token-account owner can approve one delegate for a capped amount on that specific token account. A normal owner-signed swap does not inherently require a standing delegate. When a delegate is used, its authority and remaining amount must be tracked separately from the swap result.

The ordinary ERC-20 execution sequence

01

Read the allowance

The app checks how much the token contract currently allows the proposed spender to use from the wallet.

02

Approve if needed

The token owner calls approve(spender, amount), changing allowance state on the token contract. This is often its own gas-paying transaction.

03

Execute the swap

The router or other approved contract calls transferFrom to pull the input token, then performs the route under the swap's amount and deadline protections.

04

Inspect what remains

The allowance may fall by the amount spent, remain larger than zero, or stay unchanged when an implementation treats the maximum value as unlimited.

Native ETH sent directly with an EVM transaction does not use an ERC-20 allowance. Wrapped ETH is an ERC-20 and generally does. The asset actually leaving the wallet determines whether an approval dependency exists.

The failure outcome depends on the transaction boundary

Standalone approval → later swapFailure: The swap reverts in its own transaction.After: The successful earlier allowance remains.
Atomic approve + swap batchFailure: A required swap call reverts the whole batch.After: The approval in that same reverting batch does not persist.
Permit consumed inside swapFailure: Behavior depends on the encompassing call and contract design.After: Check nonce, allowance state, deadline, and receipt—do not infer from the signature alone.
Approval → swap → separate revokeFailure: The swap or revoke can fail independently.After: Do not assume the planned revoke landed; verify its transaction.

Atomic batching can shrink the exposure window, but only when the contract treats every required call as one reverting unit. The bundles and atomic execution guide explains that boundary.

Exact, buffered, and unlimited allowances

An exact allowance caps the spender near the planned input but can require another approval when the amount or route changes. A buffered allowance reduces repeated approvals but leaves deliberate excess authority. An unlimited allowance avoids recurring approval transactions and creates the largest persistent exposure if the spender is malicious, upgraded, or compromised.

ERC-20's original specification also warns about changing a nonzero allowance directly to another nonzero amount because transaction ordering can let a spender use both the old and new values. Interfaces may reduce to zero before setting a replacement, or use newer permission patterns. Treat every extra approval transaction as its own state change and gas cost.

Permits move authorization into a signature flow

ERC-2612 adds a signed permit message that can update an ERC-20 allowance without the owner first submitting an approval transaction. The permit includes an owner, spender, value, nonce, deadline, and signature. A third party can submit it, so the safety boundary is the signed message—not whether the wallet paid gas at signing time.

Uniswap's Permit2 supports two related models. AllowanceTransfer can give spenders amount- and time-bounded permissions through Permit2. SignatureTransfer supports a signed, one-time transfer whose spender permission lasts for the transaction in which the signature is consumed.

Permit2 still needs the token contract to authorize the Permit2 contract before it can move that token. That root ERC-20 allowance and the app-specific Permit2 permission are two layers. Revoking or expiring the second does not automatically erase the first.

Solana delegates belong to token accounts

A Solana Token Program approval records one delegate and one delegated amount on a particular token account. Approving a new delegate replaces the prior delegate and amount for that account. The delegate can transfer or burn up to the authorized amount under the Token Program's rules.

Because Solana transactions can contain several instructions atomically, an app can place approval, delegated action, and revoke instructions inside one transaction when its design requires that sequence. If a required instruction fails, the transaction's state changes do not persist. If approval is a separate successful transaction, it remains until replaced, consumed, or revoked.

A Token-2022 permanent delegate is different. It is configured at the mint level, applies across that mint's token accounts, and cannot be revoked by an individual holder. It is an issuer control to inspect before trading—not a wallet approval the holder accidentally left behind.

Read authority as part of the route

Name the owner, asset, and exact source account

An approval on one ERC-20 or Solana token account does not authorize every asset in the wallet.

Identify the spender or delegate

Follow proxies and Permit2 layers where relevant. Compare addresses with the protocol's current official deployment references.

Place it on the timeline

Determine whether authority is created in the swap transaction, an earlier transaction, or an offchain signature submitted later.

Measure the remaining scope

Check amount, expiry, nonce, consumed value, and whether maximum allowance semantics leave the number unchanged.

Verify cleanup onchain

A wallet disconnect, failed swap, expired quote, or planned revoke does not prove the authority is gone.

For the wallet-maintenance workflow, continue with revoking Solana token delegate approvals.

What the journal should preserve

  1. The approval transaction, permit signature context, or Solana approve instruction that created authority.
  2. Owner, token or mint, source token account, spender or delegate, raw amount, expiry, nonce, and relevant contract layer.
  3. The swap result and actual amount consumed through transferFrom or delegated token instructions.
  4. The post-trade allowance or delegate state and the confirmed revoke, replacement, or expiry event that ended it.

Primary sources

Reconstruct surviving authority

Check what the trade left behind.

Paste a public address to inspect approvals, swaps, failures, fees, and later cleanup without connecting a wallet.

Open the journal