Skip to main content

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:

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)

Source distribution for simple-safe 0.3.1
File Size Uploaded
simple_safe-0.3.1.tar.gz 194.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-safe 0.3.1
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page