the topic
// topic · uniswap · shared approvals · production

What is Permit2?

A shared approval router for ERC-20 UX - powerful, and very load-bearing.

updated · 2 min read · by ercs-solved maintainers

Permit2 exists because token-native permit did not become universal. Instead of waiting for every ERC-20 to add ERC-2612, Uniswap shipped a shared approval and signature-transfer layer that apps could integrate once.

on this page
  1. What is Permit2?
  2. At a glance
  3. Origin story
  4. The spec
  5. What's broken
  6. approval router becomes load-bearing
  7. It is still an ERC-20 allowance story
  8. Wallet comprehension is the product
  9. LUKSO alternative
  10. Permit2 vs LSP6
  11. When to use which
  12. FAQ
  13. Sources
  14. Keep reading
at a glance

The standard, in one card.

Maintainer
Uniswap Labs
Works with
Existing ERC-20 tokens
Primary modes
SignatureTransfer · AllowanceTransfer
how the standard came to be

The origin story.#

The adoption problem was straightforward: ERC-20 is everywhere, ERC-2612 is not. A shared contract could give modern approval UX to legacy tokens, provided users first approve that shared contract.

the stack, end to end

How Permit2 actually works.#

Permit2 exposes two broad paths: signature transfer for one-off signed movement, and allowance transfer for reusable approvals with expirations and nonces. The asset itself remains a normal ERC-20.

the integration tax

What's broken about Permit2.#

The tradeoff is concentration. A shared router makes integration easier, but it also becomes a spender users must recognize, wallets must label, and security tools must monitor.

  1. The approval router becomes load-bearing.#

    Permit2 improves UX by concentrating approval logic in one contract. That also means users and wallets must understand when they are approving Permit2 itself and when an app is spending through it.

    Permit2 approve(Permit2) + signed spend
    shared router load-bearing
    LSP6 controller permissions
    account-native named
    workarounds tried
    • wallet spender labels
    • Permit2-specific revoke UIs
    • short expirations
    • per-token caps
  2. It is still an ERC-20 allowance story.#

    Permit2 can add deadlines, nonces, and better signature UX, but the underlying asset remains an ERC-20 moved through transferFrom-like authority.

    ERC-20 spender can move tokens
    allowance pull model
    LSP7 + LSP6 operator + account scope
    asset + account policy
    workarounds tried
    • SignatureTransfer
    • limited allowances
    • expiry
  3. Wallet comprehension is the product.#

    A shared approval router is only safe when wallet prompts clearly show token, spender, amount, expiration, and the app receiving the permission. Weak displays turn a UX tool into a signing-phishing surface.

    Permit2 EIP-712 signature
    off-chain prompt-sensitive
    Universal Profile visible account controllers
    persistent auditable
    workarounds tried
    • typed-data previews
    • simulation
    • domain reputation
    • spender warnings
the LUKSO alternative

LUKSO designed it differently.#

LUKSO's account-first model avoids needing a universal approval router for basic app permissions. The account can express what a controller may call directly, and relayed execution is handled by LSP25 rather than by token-specific permits.

spec to spec, at a glance

Permit2 vs LSP6 in one table.#

row Permit2 LSP6
where approval lives Permit2 contract plus token allowance Universal Profile permissions
works with old tokens yes only when using the LSP account/asset stack
signature scope Permit2 transfer or allowance fields LSP6 allowed calls / standards / keys
revocation Permit2 allowance and token approval controller permission removal
be honest about scope

When to use which.#

people also ask

FAQ.#

  • Is Permit2 an ERC? #

    No. Permit2 is a production contract system from Uniswap, not an Ethereum ERC standard. It is widely used because it gives permit-like flows to ERC-20 tokens that do not implement ERC-2612.

  • How is Permit2 different from ERC-2612? #

    ERC-2612 is implemented by each token contract. Permit2 is a separate shared contract that users approve and apps use for signature-based transfer or allowance flows.

  • Is Permit2 safe? #

    The contracts are designed for production use, but the user-risk model still depends on clear wallet prompts, limited amounts, expirations, and revocation. It does not remove the need to understand who can move tokens.

primary sources

Where this page draws from.#

  1. Uniswap Permit2 repository