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.
Metadata
Release files for simple-safe 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_safe-0.3.1.tar.gz | 194.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_safe-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 239.0 kB
Release files / simple_safe-0.3.1.tar.gz
| Download URL | simple_safe-0.3.1.tar.gz |
|---|---|
| Size | 194.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
41dd79a36bc2ea8acccb25063cbb9ba672137106f715d3f9d383d02b4b2a6d4d
|
|
BLAKE2b-256 checksum How to use checksums |
211c5c6d8f396c0e530ddba84f08b195c02956fd3bdf42c30ccd71fca067fa64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / simple_safe-0.3.1-py3-none-any.whl
| Download URL | simple_safe-0.3.1-py3-none-any.whl |
|---|---|
| Size | 44.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3412273cc6d6b77fcc8c9ae08c564e20c0d5b6a9f4917294fab7b9dde48320cf
|
|
BLAKE2b-256 checksum How to use checksums |
bd1dc87a5511100039541a07a72f46aaff140ec66591ec27677e9921a4b49dcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|