Introducing Permit3 + ILRTA

Robert Leifke
Numo
Published in
2 min readAug 8, 2023

The most flexible, efficient token approval standard ever conceived for Ethereum.

Last November Uniswap Labs came out with Permit2, revolutionizing how token approvals are managed for all tokens. Instead of having to approve an allowance on each application you use, Permit2 allowed a simplified experience for the user by just having to do this once!

But that’s not where the puck ends, the bonus features that Permit2 has enabled are endless:

  • Batched approvals, time bounded approvals, and so on.

So what is there to improve on?

It’s flexibility! Conforming to token standards just for the sake of it can be a big waste of money and be confusing for users. We set out to make a way to create custom token types but remain composable with a standard abi and standard events.

To solve this, we introduce Permit3 and ILRTA.

Permit3

A successor to permit2. Permit3 manages transfers for all tokens. It allows for things like transferBySignature(). It contains all the same functionality but also supports erc721, erc1155, and any token that implements the IRTLA standard.

ILRTA

Simply put, it is a framework for creating new token standards. It defines which functions need to be implemented but leaves choices like what data to store, what information is needed to do a transfer, etc. up to the developer. The most important thing to look at is the method for smart contract based transfers.

approve + ~transferFrom is a controversial flow that has historically led to a lot of lost funds.

Permit acts as a trusted intermediary between users and contracts that might not be fully proven yet. However, approve is still very important because it allows for permissionless upgradeability to new transfer managers.

Ultimately the flexible design pattern of ILRTA enables custom token types while remaining composable with a standard abi and standard events.

Huge Gas Savings!

To show the gas savings to the user, we calculated the gas savings if you were to sum up all ~500K contract calls on Uniswap V3 since inception using Permit3 + ILRTA and the savings amounted to ~$10M or ~5000 Ether in gas! That’s nuts.

It’s Open Source

Permit3 and ILRTA are a work in progress. Kyle Scott has fully open-sourced his work and feedback is appreciated.

https://github.com/kyscott18/ilrta

--

--