EIP-2612 добавляет в токены ERC-20 функцию permit(owner, spender, value, deadline, v, r, s); владелец подписывает типизированную структуру Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline) в домене токена. Permit2 централизует эту схему: пользователи один раз для каждого токена одобряют контракт Permit2, а затем для каждого spender подписывают сообщения PermitSingle, PermitBatch или сообщения перевода по подписи (signature transfer) со сроками действия и nonce.
При подписании в сеть ничего не отправляется, поэтому пользователи часто не понимают, что выдали доступ; наборы для опустошения кошельков (drainer kits) запрашивают подписи permit или Permit2 с огромными суммами и сроками действия в далёком будущем, а затем отправляют их в сеть. Всё больше кошельков декодирует такие сообщения, а инспектор EIP-712 показывает spender, сумму и срок действия ещё до подписания.