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 messages and 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.0.tar.gz (135.9 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.0-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file simple_safe-0.3.0.tar.gz.

File metadata

  • Download URL: simple_safe-0.3.0.tar.gz
  • Upload date:
  • Size: 135.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.2

File hashes

Hashes for simple_safe-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2a9a3066321f4af770c849c4f3c55c88506197e6a6a8c7bc2369cf586148b1b0
MD5 12b020c7c0282f357050fccc53aa42f6
BLAKE2b-256 f9da568d2ccd1f95213f2de30480f5e94fe7ccda9c0367ace65d09e852b2e430

See more details on using hashes here.

File details

Details for the file simple_safe-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_safe-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b28cb8c0337874052dc8df2476aa071675db1331b6b4b86ee00598dd5daa559
MD5 8947a33690b137826d10aaee6ce5001e
BLAKE2b-256 4269bcad23410a7c4afa5a617f4f96e3c6e6732e7f126816035d51bf97f6d636

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