A simple Web3-native CLI for Safe multisig wallets
Project description
Simple Safe
A simple Web3-native CLI for Safe multisig wallets.
Main functionality:
🚀deploy a new Safe account🔍inspect a Safe account📝build a Safe transaction🔏sign a Safe transaction🌐execute a Safe transaction🔌build and sign offline🪪authenticate with a Trezor🪪authenticate with a keyfile
Safe transaction types:
📐custom transactions📡smart contract call🪙ERC-20 token call📦batch transactions (via MultiSend)✨contract deployment (via CreateCall)
Benefits:
💻runs in the terminal🤖all commands can be scripted✅works with any EIP-1559 EVM chain🚫does not collect your data🚫does not impose any Terms of Use🚫does not require centralized services
Getting started
👉 To get the most out of Simple Safe, familiarize yourself with the Safe Protocol summary and Safe's extensive Safe Smart Accounts documentation.
Before you get started, you will need:
- Python 3.11 or later
- the pipx package manager
- an EVM-compatible chain that supports EIP-1559
- an Ethereum JSON-RPC endpoint over HTTP (not Websocket)
- Safe Smart Account contracts deployed (preferably at canonical addresses)
Install Simple Safe using pipx:
pipx install simple-safe
Upgrade Simple Safe to the latest version using pipx:
pipx upgrade simple-safe
⚠️ If upgrading from an earlier version installed from Github (pre-0.3.0),
switch to PyPI releases with:
pipx install --force simple-safe
For convenience, set the environment variable SAFE_RPC to the JSON-RPC node
URL:
export SAFE_RPC=http://localhost:8545
Use the --help option to explore Simple Safe commands:
$ safe --help
Usage: safe [OPTIONS] COMMAND [ARGS]...
A simple Web3-native CLI for Safe multisig wallets.
Options:
--version print version info and exit
-h, --help show this message and exit
Commands:
build Build a Safe transaction.
deploy Deploy a new Safe account.
encode Encode contract call data.
exec Execute a signed Safe transaction.
hash Compute a Safe transaction hash.
help Browse the documentation.
inspect Inspect a Safe account.
precompute Compute a Safe address offline.
preview Preview a Safe transaction.
sign Sign a Safe transaction.
Authentication
For signing Safe and Web3 transactions, Simple Safe currently supports authenticating with a Trezor device (more secure) or a local encrypted keyfile (less secure).
Trezor authentication
Before using a Trezor device with Simple Safe, ensure it is running the latest firmware version, or a firmware version that is supported by trezorlib.
To authenticate with a connected and unlocked Trezor device, pass the
--trezor ACCOUNT option to the relevant command, where ACCOUNT is either:
- the full derivation path of the account, for example:
m/44h/60h/0h/0/123 - the index of the account at the default Trezor derivation prefix for
Ethereum coins
m/44h/60h/0h/0, for example:123
The following two options are equivalent:
--trezor 123--trezor m/44h/60h/0h/0/123
Local keyfile authentication
To authenticate with a local encrypted keyfile, pass the --keyfile PATH
option, where PATH is the relative or absolute path of the encrypted keyfile
to use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simple_safe-0.3.1.tar.gz.
File metadata
- Download URL: simple_safe-0.3.1.tar.gz
- Upload date:
- Size: 194.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41dd79a36bc2ea8acccb25063cbb9ba672137106f715d3f9d383d02b4b2a6d4d
|
|
| MD5 |
5fec0b45f5b9e3c4e3a8a598a78cf52b
|
|
| BLAKE2b-256 |
211c5c6d8f396c0e530ddba84f08b195c02956fd3bdf42c30ccd71fca067fa64
|
File details
Details for the file simple_safe-0.3.1-py3-none-any.whl.
File metadata
- Download URL: simple_safe-0.3.1-py3-none-any.whl
- Upload date:
- Size: 44.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3412273cc6d6b77fcc8c9ae08c564e20c0d5b6a9f4917294fab7b9dde48320cf
|
|
| MD5 |
8ec0e1ff807417452798a385a9602d45
|
|
| BLAKE2b-256 |
bd1dc87a5511100039541a07a72f46aaff140ec66591ec27677e9921a4b49dcb
|