SmartSession is an advanced module for ERC-7579 compatible smart accounts, enabling granular control over session keys. It allows users to create and manage temporary, limited-permission access to their accounts through configurable policies.
SmartSession is a collaborative effort between Rhinestone and Biconomy to create a powerful and flexible session key management system for ERC-7579 accounts. It offers a comprehensive solution for secure, temporary account access in the evolving landscape of account abstraction.
- Granular control over session keys
- Support for various policy types:
- User operation validation
- Action-specific policies
- ERC-1271 signature validation
- "Enable flow" for creating session keys within the first user operation
- Optimized for ERC-7715 flow for requesting permissions
- Nested EIP-712 approach for EIP-1271 signature validation (aka ERC-7739)
- Native Support for ERC-7579 batched executions
- Integration with external policy contracts for flexible permission management
SmartSession
: The main contract implementing the session key management system.SmartSessionBase
: Base contract containing core functionality.SmartSessionERC7739
: Mixin contract for ERC-1271 compatibility with nested EIP-712 approach.ISmartSession
: Interface defining the main functions and events for SmartSession.
To use SmartSession in your ERC-7579 compatible smart account:
- Deploy the SmartSession contract.
- Install the SmartSession module on your smart contract wallet.
- Create and configure sessions with desired policies and permissions.
- Use the session keys to perform limited operations on the smart contract wallet.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the AGPL-3.0 License.
This software is in beta and should be used at your own risk. The authors are not responsible for any loss of funds or other damages that may occur from using this software.
Filipp Makarov (Biconomy) zeroknots.eth (Rhinestone)