Disclaimer: This project is an independent, unofficial command-line interface (CLI) for interacting with the Fireblocks API. It is not affiliated with or endorsed by Fireblocks Ltd. "Fireblocks" is a registered trademark of Fireblocks Ltd.
This project is inspired by the design philosophy and usability of the AWS CLI.
This tool has been tested with:
- Python 3.11 or newer
Other versions are not officially supported. Please ensure you are using Python 3.11+ before running or contributing to this project.
You can install fireblocks-cli locally as a Python project:
git clone https://github.com/stirnetwork/fireblocks-cli.git
cd fireblocks-cli
pip install .You can use pip.
pip install fireblocks-cli
For development, use:
pip install -e .[dev]fireblocks-cli [COMMAND] [OPTIONS]Examples:
fireblocks-cli configure init
fireblocks-cli configure listTo see all available commands:
fireblocks-cli --help| Subcommand | Implemented | Test | Description | Notes |
|---|---|---|---|---|
init |
✅ | ✅ | Initialize the default configuration files | Creates ~/.config/fireblocks-cli/config.toml and ~/.config/fireblocks-cli/keys/ |
gen-keys |
✅ | ✅ | Generate Fireblocks-compatible private key and CSR | Outputs to .config/fireblocks-cli/keys/{name}.csr, etc. |
list |
✅ | ✅ | List all configured profiles | Displays [profile] sections from config.toml |
edit |
✅ | ✅ | Open the config file in your default $EDITOR |
Falls back to vi or nano if $EDITOR is not set |
validate |
✅ | ✅ | Validate the structure and contents of the config file | Checks for invalid or missing keys and values |
add |
n/a | n/a | Append a new profile to the configuration file | Will add to the bottom of the file without auto-formatting |
remove |
n/a | n/a | Remove a profile from the configuration | Deletes the corresponding section from config.toml |
This CLI follows the XDG Base Directory Specification:
- Configuration:
$XDG_CONFIG_HOME/fireblocks-cli/config.toml(default:~/.config/fireblocks-cli/config.toml) - Data:
$XDG_DATA_HOME/fireblocks-cli/(default:~/.local/share/fireblocks-cli/) - Cache:
$XDG_CACHE_HOME/fireblocks-cli/(default:~/.cache/fireblocks-cli/)
This section explains how to contribute and work on the project.
Install development dependencies:
make install-devRun tests:
make testRun linter:
make lint-licenseRun all pre-commit hooks:
make pre-commit-refreshTo build an executable for distribution:
./build.sh patch # or 'minor' or 'major'The binary will be generated in the dist/ directory, compressed using UPX (if available).
-
Licensed under MPL-2.0.
-
Files include SPDX headers and author metadata.
-
Please use the following before committing:
make annotate-SPD
make add-authorTo change the copyright holder name inserted into source files:
-
Create a file named
COPYRIGHT_HOLDERin the root of the repository, and write your name or your organization’s name in it. For example:echo "Your Name or Organization" > COPYRIGHT_HOLDER
⚠️ Note: This file is.gitignore'd and should not be committed. -
Run
make annotate-SPD(or the relevant pre-commit hook) to re-annotate modified source files with the new copyright holder name.- This target internally calls
reuse annotateto update SPDX headers. - Only
.pyand.shfiles tracked by git are affected.
make annotate-SPD
- This target internally calls
Important: The value in
COPYRIGHT_HOLDERmust be under 50 characters.
Contributions are welcome!
Please make sure your commits are signed off (DCO) and that you run the following before pushing:
pre-commit run --all-filesBy signing off your commits, you certify that you wrote the code or have the right to submit it under the project's license.
To sign off a commit, use the -s flag when committing:
git commit -s -m "Your commit message"
or
git commit -sm "Your commit message"This will append a line like the following to your commit message:
Signed-off-by: Your Name <[email protected]>
For more details, see the Developer Certificate of Origin.
This project is developed with support from multiple contributors. See CONTRIBUTORS.md for a full list.
This project is licensed under the Mozilla Public License 2.0.
Maintained by Shohei Kamon. Feel free to reach out for collaboration or questions!