Skip to main content

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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_safe-0.3.1.tar.gz (194.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_safe-0.3.1-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

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

Hashes for simple_safe-0.3.1.tar.gz
Algorithm Hash digest
SHA256 41dd79a36bc2ea8acccb25063cbb9ba672137106f715d3f9d383d02b4b2a6d4d
MD5 5fec0b45f5b9e3c4e3a8a598a78cf52b
BLAKE2b-256 211c5c6d8f396c0e530ddba84f08b195c02956fd3bdf42c30ccd71fca067fa64

See more details on using hashes here.

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

Hashes for simple_safe-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3412273cc6d6b77fcc8c9ae08c564e20c0d5b6a9f4917294fab7b9dde48320cf
MD5 8ec0e1ff807417452798a385a9602d45
BLAKE2b-256 bd1dc87a5511100039541a07a72f46aaff140ec66591ec27677e9921a4b49dcb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page