Approvals
A buy needs no approval. It spends ETH, sent with the transaction.
A sale spends your coins, so the contract that takes them must be allowed to. POST /swap checks your wallet’s allowances and lists what is missing in requires, in order. Send each, wait for it to confirm, then send tx (or build again: the swap was simulated as if they were already in).
| Route | Steps the first time | |
|---|---|---|
| Uniswap pool | approve-permit2 | Lets Permit2 move this coin for you. Once per coin. |
permit2-allow-router | Lets Uniswap’s Universal Router take the coin through Permit2, for 30 days. | |
| Pons or Flap curve | approve | Lets the curve (Pons) or the portal (Flap) take the coins you sell, for that amount. |
Permit2 (0x000000000022d473030f116ddee9f6b43ac78ba3) is Uniswap’s shared approval contract: the same one Uniswap’s own app uses. Both approvals are ordinary transactions; nothing is signed off chain.