Manage your multisig accounts on Aptos & Movement safely through a secure CLI interface.
In the wake of recent security incidents like the SafeWallet frontend compromise, it's become clear that web-based multisig interfaces pose significant risks. Web frontends can be modified by attackers, making transaction verification difficult or impossible for users. safely takes a different approach:
- CLI-first: No web frontend means no risk of compromised interfaces
- Verifiable: All transactions are transparent and can be inspected directly
- Local execution: Your keys stay on your machine
- Install the CLI:
npm install -g @thalalabs/safely
- Under a directory where you have your aptos profiles configured, view pending transactions of a multisig account:
safely proposal -m <multisig_address> -p <profile_name>
Aptos profile can be configured by running aptos init --profile <profile_name>
or aptos init --ledger --profile <profile_name>
(docs).
- Follow the terminal UI to view transaction details, vote yes, vote no, or execute the transaction once vote threshold is met.
See docs.md for detailed documentation.
- Security First: CLI-based interface eliminates frontend security risks
- Transaction Simulation: Display simulation results wherever possible
- Human-Readable: Clear transaction descriptions and parameter explanations
- Open Source: Community-driven development and quick iterations
- Multi-Chain: Support for both Aptos and Movement
- Hardware Security: Native Ledger support
- Local Control: All operations run locally on your machine
> safely --help
Usage: safely [options] [command]
CLI tool for multisig management
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
account Multisig account operations
propose [options] Propose a new transaction for a multisig
vote [options] Vote on a pending transaction
execute [options] Execute a multisig transaction
proposal [options] List proposals for a multisig
simulate [options] Simulate multisig transaction
decode [options] Decode multisig transaction bytes (experimental)
encode [options] Encode entry function payload (experimental)
addresses Manage the local address book (experimental)
default Multisig default values
docgen [options] Generate documentation for the CLI
help [command] display help for command
For detailed usage instructions and examples, see docs.md.
Want to contribute? Here's how to set up the development environment:
-
Fork the repository.
-
Install dependencies:
pnpm install
- Build the project:
pnpm build
- Link for local testing:
pnpm link -g
- Format code:
pnpm format
- Run in development mode:
pnpm start
Safely works seamlessly with both Aptos and Movement networks. To use with Movement:
-
(Optional) Install the Movement CLI: https://docs.movementnetwork.xyz/devs/movementcli#options-2---install-through-brew
-
Initialize with your Ledger profile:
# Using Movement CLI
movement aptos init --ledger --profile <profile_name>
# OR using Aptos CLI
aptos init --ledger --profile <profile_name>
- When prompted for network selection, choose:
Choose network from [devnet, testnet, mainnet, local, custom | defaults to devnet]
custom
Enter your rest endpoint [Current: None | No input: Exit (or keep the existing if present)]
https://mainnet.movementnetwork.xyz
We welcome contributions from the entire Move ecosystem! Whether you're:
- A protocol developer adding transaction templates
- A developer improving core functionality
- A user reporting issues or suggesting features
Your input helps make multisig management safer and more efficient for everyone.
MIT.