A command-line tool for easily deploying and managing multi-signature wallets (Safe) on the Ternoa zkEVM network.
- 🚀 Interactive CLI wizard
- 👥 Create multiple owner wallets
- 🔒 Configure signature threshold
- ⚡ Deploy Safe contracts
- 🔍 Comprehensive deployment summary
- 🌈 Color-coded output for better readability
- Node.js v18 or higher
- npm v7 or higher
- Some CAPS tokens for deployment
- Clone the repository:
git clone https://github.com/your-username/ternoa-safe-setup.git
cd ternoa-safe-setup- Install dependencies:
npm install --legacy-peer-depsRun the setup wizard:
npm run setupThe wizard will guide you through:
- Choosing the number of owner wallets (1-10)
- Setting the required number of signatures (threshold)
- Generating wallet addresses and private keys
- Deploying the Safe contract
The following contracts are used on Ternoa zkEVM:
- Safe Singleton:
0x7bAd89D2270cEFa698834b7c6E7532eFA6546e42 - Safe Proxy Factory:
0x7C982d79d9B14500F1d1C114BB3779028B935d28 - MultiSend:
0xF6DCd634ABA8e0Ec891C3A6C2e240001F2cdF83c - MultiSendCallOnly:
0x628c91FF2A8A99C767E09A84c21f62c9b423CC95 - Fallback Handler:
0xdC856ED68Dfb09129e7b1Ea393098b487ddf3047 - Sign Message Lib:
0x677Aa661BD551Af5c563A40176Cd9E25c9394fa6
ternoa-safe-setup/
├── scripts/
│ └── setup.js # Main CLI wizard
├── test/
│ ├── deploySafe.test.js # Deployment tests
│ └── safeTx.test.js # Transaction tests
├── package.json
├── LICENSE
└── README.md
npm testnpm run setup- Run the Safe setup wizardnpm test- Run all tests
- Private Keys: Store generated private keys securely. They cannot be recovered if lost.
- Funding: Only send CAPS to generated addresses after verifying their correctness.
- Threshold: Choose a threshold that balances security with practicality.
- Network: Ternoa zkEVM
- Chain ID: 752025
- RPC URL: https://rpc-mainnet.zkevm.ternoa.network
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or reach out to the Ternoa community.