Access Control Guide
Warning: Storage Programs are still being developed; this documentation is a preview and might not work correctly.Master the permission system for Storage Programs with flexible access control modes.
Overview
Storage Programs support four access control modes that determine who can read and write data:| Mode | Read Access | Write Access | Best For |
|---|---|---|---|
| private | Deployer only | Deployer only | Personal data, secrets |
| public | Anyone | Deployer only | Announcements, public content |
| restricted | Deployer + Whitelist | Deployer + Whitelist | Teams, collaboration |
| deployer-only | Deployer only | Deployer only | Explicit private mode |
Access Control Modes
Private Mode
Who can access: Deployer only (both read and write) Use cases:- Personal user settings
- Private notes and documents
- Sensitive configuration data
- Individual user profiles
Public Mode
Who can access:- Read: Anyone
- Write: Deployer only
- Project announcements
- Public documentation
- Read-only data feeds
- Company updates
- Public-facing content
- Transparency initiatives
- Open data publishing
- Status pages
Restricted Mode
Who can access: Deployer + whitelisted addresses Use cases:- Team workspaces
- Shared documents
- Collaborative projects
- Multi-user applications
Deployer-Only Mode
Who can access: Deployer only (explicit private mode) Difference from “private”: Semantically identical, but makes the intent explicit. Use cases:- Same as private mode
- When you want to be explicit about single-user access
Changing Access Control
Syntax
Examples
From Private to Public
From Public to Restricted
From Restricted to Private
Permission Patterns
Role-Based Access (Restricted Mode)
Temporary Access
Progressive Disclosure
Read-Only Viewers (Public Mode)
Security Best Practices
1. Never Store Secrets Unencrypted
2. Validate Addresses in Restricted Mode
3. Audit Access Changes
4. Principle of Least Privilege
5. Separate Sensitive and Public Data
Common Patterns
Multi-Tier Access
Dynamic Permissions
Access Expiration
Troubleshooting
Error: “Access denied”
Cause: Your address doesn’t have permission to perform the operation. Solution: Check the access control mode and your permissions:Error: “Restricted mode requires allowedAddresses list”
Cause: Creating restricted storage without providing allowed addresses. Solution: Always provide allowedAddresses for restricted mode:Error: “Only deployer can perform admin operations”
Cause: Non-deployer trying to update access control or delete. Solution: Only the deployer can perform admin operations. Verify you’re using the correct wallet:Next Steps
- RPC Queries - Optimize read operations with access control
- Examples - Real-world access control patterns
- API Reference - Complete API documentation