safe-global/safe-cli(新しいタブで開きます)
主要言語: Python
Command line utility for Safe
- star 数
- 283
- watcher 数
- 14
- fork 数
- 113
- issue 数
- 17
- 最終更新
- 2026/10/30
主要言語: Python
Command line utility for Safe
Safe CLI is a command-line utility for Safe contracts. You can use it to manage your Safe account from the command line.
It does not rely on Safe{Core} API and can also be used in networks where Safe services are unavailable. Learn more through the documentation.
Prerequisite: Install Docker Desktop.
Once Docker is installed on your system, run the following command to create new Safe accounts:
docker run -it ghcr.io/safe-global/safe-cli safe-creator
You can also run the following command to run the Safe CLI with an existing Safe:
docker run -it ghcr.io/safe-global/safe-cli safe-cli <checksummed_safe_address> <ethereum_node_url>
Prerequisite: Python >= 3.11 (Python 3.13 is recommended) and uv.
Once Python and uv are installed on your system, install Safe CLI:
uv tool install safe-cli
usage: safe-cli [--history] [--get-safes-from-owner] address node_url Examples: safe-cli 0x0000000000000000000000000000000000000000 https://sepolia.drpc.org safe-cli --get-safes-from-owner 0x0000000000000000000000000000000000000000 https://sepolia.drpc.org safe-cli --history 0x0000000000000000000000000000000000000000 https://sepolia.drpc.org safe-cli --history --get-safes-from-owner 0x0000000000000000000000000000000000000000 https://sepolia.drpc.org safe-cli send-ether 0xsafeaddress https://sepolia.drpc.org 0xtoaddress wei-amount --private-key key1 --private-key key2 --private-key keyN [--non-interactive] safe-cli send-erc721 0xsafeaddress https://sepolia.drpc.org 0xtoaddress 0xtokenaddres id --private-key key1 --private-key key2 --private-key keyN [--non-interactive] safe-cli send-erc20 0xsafeaddress https://sepolia.drpc.org 0xtoaddress 0xtokenaddres wei-amount --private-key key1 --private-key key2 --private-key keyN [--non-interactive] safe-cli send-custom 0xsafeaddress https://sepolia.drpc.org 0xtoaddress value 0xtxdata --private-key key1 --private-key key2 --private-key keyN [--non-interactive] safe-cli tx-builder 0xsafeaddress https://sepolia.drpc.org ./path/to/exported/tx-builder/file.json --private-key key1 --private-key keyN [--non-interactive] ╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ * address CHECKSUMADDRESS The address of the Safe, or an owner address if --get-safes-from-owner is specified. [required] │ │ * node_url TEXT Ethereum node url. [required] │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --help Show this message and exit. │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Optional Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --history --no-history Enable history. By default it's disabled due to security reasons [default: no-history] │ │ --get-safes-from-owner --no-get-safes-from-owner Indicates that address is an owner (Safe Transaction Service is required for this feature) [default: no-get-safes-from-owner] │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Commands available in unattended mode: send-ether send-erc20 send-erc721 send-custom tx-builder version Use the --help option of each command to see the usage options.
To execute transactions unattended, or execute transactions from a json exported from the tx_builder you can use:
safe-cli send-ether 0xsafeaddress https://sepolia.drpc.org 0xtoaddress wei-amount --private-key key1 --private-key key1 --private-key keyN --non-interactive safe-cli send-erc721 0xsafeaddress https://sepolia.drpc.org 0xtoaddress 0xtokenaddres id --private-key key1 --private-key key2 --private-key keyN --non-interactive safe-cli send-erc20 0xsafeaddress https://sepolia.drpc.org 0xtoaddress 0xtokenaddres wei-amount --private-key key1 --private-key key2 --private-key keyN --non-interactive safe-cli send-custom 0xsafeaddress https://sepolia.drpc.org 0xtoaddress value 0xtxdata --private-key key1 --private-key key2 --private-key keyN --non-interactive safe-cli tx-builder 0xsafeaddress https://sepolia.drpc.org ./path/to/exported/tx-builder/file.json --private-key key1 --private-key keyN --non-interactive
It is possible to use the environment variable SAFE_CLI_INTERACTIVE=0 to avoid user interactions. The --non-interactive option have more priority than environment variable.
Note: To use tx-service mode, set your API key as follows:
export SAFE_TRANSACTION_SERVICE_API_KEY=your_api_key_hereYou can obtain your API key from https://developer.safe.global.
usage: safe-creator [-h] [-v] [--no-confirm] [--threshold THRESHOLD] [--owners OWNERS [OWNERS ...]] [--safe-contract SAFE_CONTRACT] [--proxy-factory PROXY_FACTORY] [--callback-handler CALLBACK_HANDLER] [--salt-nonce SALT_NONCE] [--without-events] [--generate-vanity-addresses] node_url private_key Example: safe-creator https://sepolia.drpc.org 0000000000000000000000000000000000000000000000000000000000000000 positional arguments: node_url Ethereum node url private_key Deployer private_key options: -h, --help show this help message and exit -v, --version Show program's version number and exit. --no-confirm Bypass any and all “Yes or no?” messages --threshold THRESHOLD Number of owners required to execute transactions on the created Safe. It mustbe greater than 0 and less or equal than the number of owners --owners OWNERS [OWNERS ...] Owners. By default it will be just the deployer --safe-contract SAFE_CONTRACT Use a custom Safe master copy --proxy-factory PROXY_FACTORY Use a custom proxy factory --callback-handler CALLBACK_HANDLER Use a custom fallback handler. It is not required for Safe Master Copies with version < 1.1.0 --salt-nonce SALT_NONCE Use a custom nonce for the deployment. Same nonce with same deployment configuration will lead to the same Safe address --without-events Use non events deployment of the Safe instead of the regular one. Recommended for mainnet to save gas costs when using the Safe --generate-vanity-addresses Don't deploy the Safe, only generate addresses
safe-creator https://sepolia.drpc.org $PRIVATE_KEY --generate-vanity-addresses --no-confirmIf you miss something and want to send us a PR:
git clone https://github.com/safe-global/safe-cli.git cd safe-cli uv sync --group dev --frozen source .venv/bin/activate pre-commit install -f
To run safe-cli or safe-creator:
uv run safe-cli uv run safe-creator