Overview
The SessionKeyRegistry contract manages disposable keys that allow dapps to perform actions on a user’s behalf. It provides:- Scoped permissions (specific operations only)
- Expiration-based authorization
- Identity-based key management
- Permission hashing for validation
Architecture
Data Structures
Authorization
Permission Hash
Permission Management
Login (Authorize Session Key)
Revoke Session Key
Permission Types
FWSS Permissions
Custom Permissions
Query Authorizations
Get Expiration
Get Multiple Expirations
Check Authorization
Events
AuthorizationsUpdated
AuthorizationsRevoked
Listen for Events
Integration with Synapse
Create Session Key
Use with Synapse
Permission Validation Flow
Security
Expiration Checks
Contract always validates expiration:Permission Hashing
Permissions are hashed for gas efficiency:Identity-Based
Authorizations are scoped to identity (root wallet):Best Practices
Short Expiration
Use short expiration times (hours/days)
Minimal Permissions
Grant only needed permissions
Revoke When Done
Revoke session keys after use
Monitor Expirations
Track expiration and re-authorize as needed
Error Handling
Source Code
Session Key Registry
View the SessionKeyRegistry contract source
Next Steps
Session Keys Guide
Use session keys in your app
FWSS Contract
Learn how FWSS validates session keys