Permissive is a framework that assists web3 projects in designing smooth and seamless user experience. It enables developers of all levels to take advantage of account abstraction in an easy, efficient and flexible way. With Permissive you can delegate every transaction on an account while keeping the security and without revealing your private key.
Permissive is an authorization framework built with Account Abstraction (ERC-4337). It enables the session key and permissions feature for Ethereum accounts. It allows dApps to request specific permissions from users. Once a dApp has been granted the required permissions, it can perform allowed actions on behalf of the user. Permissive includes multiple dApps, mainly the Permissive protocol in the form of smart account modules and plugins which are open-source, the SDK, the UI kit and the API.
In Q1 2023, the ERC-4337 standard went live on Ethereum. This standard introduces Account Abstraction on EVM blockchains. Permissive takes advantage of this standard to create a custom smart account module that implements permissions for web3. With Permissive, you don’t need anymore to create a new contract for each use-case or standard, instead you create a permission that can represent any transaction possible. You can then grant that permission to an operator which will be able to perform actions on behalf of your account. So if my account flydexo.eth has granted permissions to phillip.eth, and Phillip sends a permissioned transaction to my account it will be transformed as a transaction coming from flydexo.eth.
How it works in the background
How it appears for the user
Permissive simplifies the process of creating, revoking, and monitoring the permissions granted by a user to a third party (e.g., DApp) over their smart account.
As a user, you can create custom permissions that allow a third party X to execute certain type Y of transactions on your behalf. You have the flexibility to set spending limits, maximum usage counts, validity periods, and more. You can manage these permissions through the Permissive web app.
As a DApp, you can use permissive to easily design the permissions you need and push them to your users to obtain their signature. With this single signature, you gain the ability to execute transactions on behalf of users, as long as they adhere to the permission terms and remain valid. You can then offer a user experience with no need for additional signature or action from your users.