User Accounts
User account creation and authentication
Account Creation
Brewit accounts are implemented as Safe Accounts (formerly Gnosis Safe) that comply with ERC-4337 Account Abstraction and ERC-7579 specifications. This implementation provides:
- Full compatibility with ERC-4337 infrastructure
- Enhanced security through modular validation
- Flexible authentication mechanisms
Technical Implementation
Each Brewit account is deployed as an ERC-7579-enabled Safe Account with the following configuration:
This configuration could be used to generate a Safe Account using library like permissionless.js
Refer contract deployments for more details:
Authentication Methods
Brewit supports multiple authentication strategies, each implemented with specific security considerations:
1. Dynamic Embedded Wallet Authentication
Use cases: Email and Social logins (Google, Twitter, Farcaster)
Technical implementation:
- Utilizes Dynamic Embedded Wallets
- Wallet is added as both owner and validator of the Safe Account
- Currently uses Trusted Execution Environment (TEE) for key management
- Planned migration to Threshold Signature Scheme (TSS-MPC) for enhanced security
Dynamic Embedded Wallets uses TEE for key management and signing but soon will be ported to TSS-MPC for better security.
2. WebAuthn Passkey Authentication
Implementation details:
- Integrates Rhinestone-attested WebAuthn module
- Compatible with ERC-7579 specification
- Originally developed by ZeroDev for Kernel Accounts
- Custom passkey service for additional platform authentication
We run our own Passkey service to also authenticate the user for various other services.
3. External Wallet Authentication
Features:
- Direct integration with existing crypto wallets
- Wallet becomes primary signer and validator
- Supports all major Web3 wallet providers
- Compatible with both EOA and smart contract wallets