The success of ERC-20 standard tokens and their associated utility are undeniable in the Ethereum ecosystem. However, on a protocol level, the functionality of these tokens remains quite limited due to lack of abstraction within their "approve" method.
Simply put, users have to hold ETH on their balance to be able to interact with any smart contract on Ethereum. ETH is required to pay gas costs while sending an additional transaction aka approval - a permission to a specific smart contract to spend your token.
This issue was addressed in the EIP-2612 and the solution comes in the elegant form of "permit" method added to the token structure.
Permits allow anyone to authorize and swap a token in one simple transaction.
The 1inch network user interface supports permit function on the following tokens:
Binance Smart Chain: 1INCH, BONDLY, DFX, FAST, GTON, ICE, NMX, bBADGER, wSOTE
You can also check if a specific token supports this method by reviewing its contract on the block explorer:
From the user experience perspective, this innovation replaces an approval transaction (for the cases when an approval wasn't granted previously) with signing of a piece of data inside your wallet. It eliminates the need to pay additional gas fees and creates a much smoother swap experience.
Here is how the permit parameter works on 1inch:
Go to https://app.1inch.io/;
Set a pair of tokens you want to trade;
If the "You Pay" token supports the permit method, and you haven't given an allowance to the 1inch smart contract, you will see the option "permit and swap" on the UI; hit the button;
4. Sign the data inside your wallet application;
5. After signing, the permit will be valid for 30 min - the period given to a user to execute a swap, so proceed with the swap;
Please note, after execution of a first swap, the permit will not be required any more for this contract.