0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7
Deployment Status: Default preinstall
Repository: github.com/safe-global/safe-singleton-factory
Key Features
- Deterministic Deployment: Same Safe addresses across all chains
- Minimal Implementation: Simple factory pattern using CREATE2
- Version Agnostic: Deploy any version of Safe contracts
- Gas Efficient: Optimized proxy deployment pattern
- Ecosystem Standard: Used by Safe infrastructure globally
How It Works
The factory uses a two-step deployment process:- Deploy Singleton: Deploy the Safe master copy (implementation)
- Deploy Proxy: Deploy minimal proxies pointing to the singleton
Core Method
Usage Examples
Deploy a Safe Wallet
Predict Safe Address
Calculate the deployment address before deploying:Deploy with Custom Configuration
Deployment Patterns
Organization Wallets
Deploy consistent treasury addresses across chains:Counterfactual Wallets
Create wallets that can receive funds before deployment:Integration with Safe Ecosystem
Safe Modules
Deploy and enable Safe modules:Safe Guards
Deploy transaction guards for additional security:Best Practices
Salt Management
Version Control
Gas Optimization
- Deploy singleton once per chain
- Reuse proxy bytecode
- Batch deployments when possible
- Use minimal initializers
Security Considerations
- Initialization: Ensure Safes are properly initialized after deployment
- Salt Uniqueness: Use unique salts to prevent address collisions
- Singleton Verification: Verify singleton contract before deployment
- Access Control: The factory itself has no access control - anyone can deploy
Troubleshooting
Issue | Solution |
---|---|
Address mismatch | Verify salt and bytecode are identical |
Deployment fails | Check sufficient gas and valid bytecode |
Safe not working | Ensure proper initialization after deployment |
Cross-chain inconsistency | Verify same singleton and salt used |