Access Policies
Access policies in Flux Protocol control who can interact with vaults and under what conditions. They provide fine-grained access control for vault deposits, withdrawals, and borrowing operations.
Overview
Access policies enable vault creators to:
Restrict vault access to specific addresses or roles
Implement KYC/compliance requirements for regulated use cases
Create private vaults for specific user groups
Enforce deposit/withdrawal limits per user
Control manager permissions separately from LP permissions
Policy Types
1. Open Access (Default)
Anyone can deposit, withdraw, or borrow from the vault.
// No access policy set - fully permissionless
IFluxVault vault = IFluxVault(vaultAddress);Use Cases:
Public lending pools
Permissionless DeFi protocols
Maximum composability
2. Allowlist Policy
Only approved addresses can interact with the vault.
Use Cases:
Private funds
Institutional vaults
Compliance requirements
Testing/beta access
3. Role-Based Access
Different permissions for different roles (LPs vs Managers).
Use Cases:
Separate LP and manager lists
Professional manager programs
Tiered access levels
4. Cap-Based Policy
Enforce per-user deposit limits.
Use Cases:
Fair launch mechanisms
Prevent whale concentration
Regulatory limits
5. Time-Locked Policy
Restrict access based on time windows.
Use Cases:
Vesting schedules
Lock-up periods
Scheduled access
Implementing Access Policies
Creating a Custom Policy
Attaching Policy to Vault
Access policies are set during vault creation:
Policy Upgrades
Important: Access policies in Flux are immutable by default to protect depositors.
If you need updatable policies:
Implement a proxy pattern in your policy contract
Clearly communicate upgrade rights to users
Consider timelock mechanisms for policy changes
Policy Best Practices
For Public Vaults
Pros:
Maximum DeFi composability
Lowest integration friction
Largest potential user base
Cons:
No compliance controls
Cannot restrict bad actors
No preferential access
For Private Vaults
Pros:
Full control over participants
Compliance-friendly
Can meet KYC requirements
Cons:
Manual user management
Reduced composability
Ongoing maintenance
For Hybrid Models
Pros:
Open LP access for liquidity
Curated manager selection
Balanced approach
Cons:
More complex policy logic
Two allowlists to maintain
Security Considerations
Policy Immutability
Default behavior: Policies cannot be changed after vault creation
Rationale: Protects LPs from rug pulls
Trade-off: Cannot adapt to new requirements
Upgradeability Risks
If implementing upgradeable policies:
Mitigation:
Use timelocks for policy changes
Emit events for all policy updates
Consider multi-sig ownership
Document upgrade rights clearly
Gas Optimization
Policy Examples
Example 1: Allowlist with Max Users
Example 2: Deposit Cap Per User
Example 3: Time-Gated Access
Integration Guide
For Vault Creators
Determine requirements: Do you need access control?
Choose policy type: Select from standard policies or build custom
Deploy policy: Deploy your policy contract
Create vault: Pass policy address during vault creation
Manage access: Update allowlists if using mutable policies
For Integrators
Always check if a vault has access restrictions:
For LPs
Before depositing:
Policy Standards
IAccessPolicy Interface
Comparison with Other Protocols
Flux
Flexible policies
Yes (by default)
Aave
None
N/A
Compound
None
N/A
Morpho
Vault-level
Varies
Euler
None
N/A
Advanced Topics
Multi-Sig Policies
Oracle-Based Policies
NFT-Gated Access
Related Documentation
Flux Vault - Understanding vault architecture
Strategies - Strategy configuration
Creating a Vault - Vault deployment guide
Access Policy Selection - Choosing the right policy
Questions?
Do policies apply to liquidators? Typically no - liquidations should remain permissionless for protocol safety
Can I change the policy later? Not by default - policies are immutable to protect depositors
Do all vaults need policies? No - most public vaults have no access control
What is the gas cost of policies? Minimal if implemented efficiently with allowlists
Last updated