https://github.com/fireblocks/fireblocks-json-rpc
https://github.com/fireblocks/fireblocks-json-rpc
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/fireblocks/fireblocks-json-rpc
- Owner: fireblocks
- Created: 2023-02-01T09:19:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-13T16:35:59.000Z (3 months ago)
- Last Synced: 2025-03-25T20:21:32.041Z (about 2 months ago)
- Language: TypeScript
- Size: 1.04 MB
- Stars: 8
- Watchers: 5
- Forks: 9
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
[](https://badge.fury.io/js/@fireblocks%2Ffireblocks-json-rpc)
# Fireblocks Local JSON-RPC
`fireblocks-json-rpc` is a command-line [JSON-RPC](https://ethereum.org/en/developers/docs/apis/json-rpc/) server powered by the Fireblocks API.
Its goal is to make it easy for Fireblocks users to interact with EVM chains.Additional SDKs:
* [Fireblocks Web3 Provider](https://github.com/fireblocks/fireblocks-web3-provider)
* [Fireblocks Hardhat Plugin](https://github.com/fireblocks/hardhat-fireblocks)## Installation
```bash
npm install -g @fireblocks/fireblocks-json-rpc
```
#### Running in Docker
As an alternative option, you can also run the Local JSON-RPC server as a Docker container using the official Docker image.**Please note the image is currently in beta.**
For more information, please see the official [DockerHub repository](https://hub.docker.com/r/fireblocksofficial/json-rpc).
## Usage
```sh
$ fireblocks-json-rpc --help
_____ _ _ _ _ _ ____ ___ _ _ ____ ____ ____
| ___(_)_ __ ___| |__ | | ___ ___| | _____ | / ___| / _ \| \ | | | _ \| _ \ / ___|
| |_ | | '__/ _ \ '_ \| |/ _ \ / __| |/ / __| _ | \___ \| | | | \| |_____| |_) | |_) | |
| _| | | | | __/ |_) | | (_) | (__| <\__ \ | |_| |___) | |_| | |\ |_____| _ <| __/| |___
|_| |_|_| \___|_.__/|_|\___/ \___|_|\_\___/ \___/|____/ \___/|_| \_| |_| \_\_| \____|Usage: fireblocks-json-rpc [options] [-- tool [argument ...]]
A CLI for running a local Ethereum JSON-RPC server powered by Fireblocks
Options:
--apiKey Fireblocks API key (env: FIREBLOCKS_API_KEY)
--privateKey Fireblocks API private key (env: FIREBLOCKS_API_PRIVATE_KEY_PATH)
--chainId [chainId] Either chainId or rpcUrl must be provided (env: FIREBLOCKS_CHAIN_ID)
--rpcUrl [rpcUrl] Either rpcUrl or chainId must be provided (env: FIREBLOCKS_RPC_URL)
--http Run an HTTP server instead of using IPC (env: FIREBLOCKS_HTTP)
--port [port] HTTP server port (default: 8545, env: FIREBLOCKS_PORT)
--host [host] HTTP server host (default: "127.0.0.1", env: FIREBLOCKS_HOST)
--suppressHostWarning Supress the warning printed when setting --host not to localhost (env: FIREBLOCKS_HOST)
--httpPath [path] HTTP JSON-RPC endpoint path (env: FIREBLOCKS_HTTP_PATH)
--ipcPath [path] IPC path to listen on, defaults to '~/.fireblocks/json-rpc.ipc' on linux and macos, and '\\.\pipe\fireblocks-json-rpc.ipc'
on windows (default: "/Users/user/.fireblocks/json-rpc.ipc", env: FIREBLOCKS_IPC_PATH)
--env [env_var_name] Sets the listening address as an environment variable (default: "FIREBLOCKS_JSON_RPC_ADDRESS", env:
FIREBLOCKS_JSON_RPC_ENV_VAR)
--vaultAccountIds [vaultAccountIds] Fireblocks Web3 Provider option (env: FIREBLOCKS_VAULT_ACCOUNT_IDS)
--apiBaseUrl [apiBaseUrl] Fireblocks Web3 Provider option (env: FIREBLOCKS_API_BASE_URL)
--fallbackFeeLevel [fallbackFeeLevel] Fireblocks Web3 Provider option (env: FIREBLOCKS_FALLBACK_FEE_LEVEL)
--note [note] Fireblocks Web3 Provider option (default: "Created by Fireblocks JSON-RPC", env: FIREBLOCKS_NOTE)
--pollingInterval [pollingInterval] Fireblocks Web3 Provider option (env: FIREBLOCKS_POLLING_INTERVAL)
--oneTimeAddressesEnabled [oneTimeAddressesEnabled] Fireblocks Web3 Provider option (env: FIREBLOCKS_ONE_TIME_ADDRESSES_ENABLED)
--externalTxId [externalTxId] Fireblocks Web3 Provider option (env: FIREBLOCKS_EXTERNAL_TX_ID)
--userAgent [userAgent] Fireblocks Web3 Provider option (env: FIREBLOCKS_USER_AGENT)
--logTransactionStatusChanges [logTransactionStatusChanges] Fireblocks Web3 Provider option (env: FIREBLOCKS_LOG_TX_STATUS_CHANGES)
-q, --quiet Don't print anything (env: FIREBLOCKS_QUIET)
-v, --verbose Print a lot of stuff, useful for debugging, same as setting DEBUG=fireblocks-json-rpc (env: FIREBLOCKS_VERBOSE)
-r, --raw Only output the listening address (env: FIREBLOCKS_VERBOSE)
--version Output the version number
-h, --help display help for commandLearn more about the Fireblocks Web3 Provider configuration options at
https://github.com/fireblocks/fireblocks-web3-provider#fireblocksproviderconfigExample usage:
Basic usage:
$ fireblocks-json-rpc --apiKey --privateKey --chainId
$ fireblocks-json-rpc --apiKey --privateKey --rpcUrlUsing environment variables (.env file also works):
$ FIREBLOCKS_API_KEY= FIREBLOCKS_API_PRIVATE_KEY_PATH= FIREBLOCKS_CHAIN_ID= fireblocks-json-rpcRun another tool using "--":
$ fireblocks-json-rpc --http -- cast estimate 0x5fe5a74b7628c43514DB077d5E112cf6593ed8D3 "increment()" --rpc-url {}
$ fireblocks-json-rpc --http -- forge script script/NFT.s.sol:MyScript --sender "0x827226cc80020b343a8c03e44A974CEbF0336e74" --broadcast --unlocked --rpc-url {}Print requests and responses using --verbose:
$ fireblocks-json-rpc --verbose --http -- cast estimate 0x5fe5a74b7628c43514DB077d5E112cf6593ed8D3 "increment()" --rpc-url {}Using a sandbox workspace with --apiBaseUrl:
$ fireblocks-json-rpc --apiBaseUrl https://sandbox-api.fireblocks.io --apiKey --privateKey --chainId
```## Developemnt
### Installation
```bash
npm install
npm run build
npm install -g .
```