CLI
Symbiotic CLI (symb) is a command-line tool for reading on-chain data and interacting with Symbiotic Core smart contracts.
It covers common workflows for:
- Networks (registration, limits, resolvers)
- Operators (registration, opt-ins, signature generation)
- Vault curators (delegation limits and shares)
- Stakers (withdraw and claim)
- Rewards (fee settings and claims)
Install
Prerequisites
- Node.js 20+ (Node 20/22 LTS recommended)
Quick install (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/symbioticfi/cli/main/install.sh | bash
symb --helpBy default, this installs into ~/.symb/cli, puts symb into ~/.symb/bin, and adds ~/.symb/bin to your PATH (shell profile).
If symb is not found, open a new terminal and try again.
Update
Rerun the installer command:
curl -fsSL https://raw.githubusercontent.com/symbioticfi/cli/main/install.sh | bashQuickstart
# Help
symb --help
symb op --help
# List operators and networks
symb op list
symb net list
# Include more fields when available
symb net list --full
symb vault list --full
# JSON output for scripts
symb op list --jsonConfiguration
Chain selection
Use --chain <chain> (default: mainnet).
mainnet(chainId1)hoodi(chainId560048)sepolia(chainId11155111)
You can also pass the numeric chainId.
RPC selection
--rpc <url>: RPC URL override for the current command.SYMB_RPC_URL: default RPC URL.
If neither is provided, symb uses a built-in fallback list of public RPC endpoints for the selected chain.
Environment variables
| Variable | Description |
|---|---|
SYMB_RPC_URL | Default RPC URL (can be overridden by --rpc). |
SYMB_PRIVATE_KEY | Private key used for signing (discouraged; prefer Ledger). |
Signing, simulation, and safety
Read commands don’t require a signer. Write commands and signature commands require one.
Signer options
- Ledger (recommended):
--ledger(optional--ledger-address) - Private key:
SYMB_PRIVATE_KEYor--private-key <hex>(discouraged)
--ledger-address let you select which Ledger account to use.
Write-only flags
| Flag | Description |
|---|---|
--yes | Bypass confirmation prompts. |
--dry-run | Simulate only (do not send transaction). |
In this doc:
[write options]= signer options +--yes/--dry-run[sign options]= signer options only
Global flags
All commands support:
| Flag | Description |
|---|---|
--chain <chain> | Chain key or chainId (default: mainnet). |
--rpc <url> | RPC URL override. |
--timeout-ms <n> | RPC request timeout (ms). |
--retries <n> | RPC retry count. |
--batch-size <n> | Multicall batch size. |
--concurrency <n> | Multicall concurrency. |
--json | Machine-readable JSON output. |
--quiet | Minimal output. |
Commands
Commands are grouped by area. For the complete list, run symb --help and symb <group> --help.
net
| Command | Description |
|---|---|
symb net is <address> | Check if an address is a network. |
symb net middleware <network_address> | Get the network middleware address. |
symb net list [--full] | List all networks. |
symb net ops <network_address> | List all operators opted into the network. |
symb net stakes <network_address> | Show stakes for all operators in the network. |
symb net max-network-limit <vault_address> <network_address> | Get the maximum network limit at the vault’s delegator. |
symb net resolver <vault_address> <network_address> | Get the current resolver for a vault’s subnetwork. |
symb net pending-resolver <vault_address> <network_address> | Get the pending resolver for a vault’s subnetwork. |
symb net register [write options] | Register the signer as a network. |
symb net set-max-limit [write options] <vault_address> <max_limit> [subnetwork_id] | Set the maximum network limit at the vault’s delegator. |
symb net set-resolver [write options] <vault_address> <resolver> [subnetwork_id] | Set the resolver for a vault’s subnetwork at VetoSlasher. |
op
| Command | Description |
|---|---|
symb op is <address> | Check if an address is an operator. |
symb op list | List all operators. |
symb op nets <operator_address> | List all networks the operator is opted into. |
symb op stakes <operator_address> | Show operator stakes across all networks. |
symb op stake <operator_address> <vault_address> <network_address> | Get operator stake in a vault for a network (includes shares for NetworkRestakeDelegator). |
symb op opted-in-vault <operator_address> <vault_address> | Check if the operator is opted into a vault. |
symb op opted-in-net <operator_address> <network_address> | Check if the operator is opted into a network. |
symb op register [write options] | Register the signer as an operator. |
symb op opt-in-vault [write options] <vault_address> | Opt into a vault. |
symb op opt-out-vault [write options] <vault_address> | Opt out from a vault. |
symb op opt-in-net [write options] <network_address> | Opt into a network. |
symb op opt-out-net [write options] <network_address> | Opt out from a network. |
symb op opt-in-vault-sig [sign options] <vault_address> [duration] | Get a signature for opting into a vault. |
symb op opt-out-vault-sig [sign options] <vault_address> [duration] | Get a signature for opting out from a vault. |
symb op opt-in-net-sig [sign options] <network_address> [duration] | Get a signature for opting into a network. |
symb op opt-out-net-sig [sign options] <network_address> [duration] | Get a signature for opting out from a network. |
vault
| Command | Description |
|---|---|
symb vault is <address> | Check if an address is a vault. |
symb vault list [--full] | List all vaults. |
symb vault ops <vault_address> | List all operators opted into the vault. |
symb vault nets <vault_address> | List all networks associated with the vault. |
symb vault netsops <vault_address> | List all operators and their associated networks for the vault. |
symb vault network-limit <vault_address> <network_address> | Get the network limit at the vault’s delegator. |
symb vault operator-network-limit <vault_address> <network_address> <operator_address> | Get the operator-network limit at the vault’s delegator. |
symb vault operator-network-shares <vault_address> <network_address> <operator_address> | Get operator-network shares at the vault’s delegator. |
symb vault total-operator-network-shares <vault_address> <network_address> | Get total operator-network shares at the vault’s delegator. |
symb vault set-network-limit [write options] <vault_address> <network_address> <limit> [subnetwork_id] | Set the network limit at the vault’s delegator. |
symb vault set-operator-network-limit [write options] <vault_address> <network_address> <operator_address> <limit> [subnetwork_id] | Set the operator-network limit at the vault’s delegator. |
symb vault set-operator-network-shares [write options] <vault_address> <network_address> <operator_address> <shares> [subnetwork_id] | Set operator-network shares at the vault’s delegator. |
staker
| Command | Description |
|---|---|
symb staker active-balance <vault_address> <address> | Get the active balance of an account in a vault. |
symb staker withdrawals <vault_address> <epoch> <address> | Get withdrawals for an account in a vault at a given epoch. |
symb staker withdrawals-claimed <vault_address> <epoch> <address> | Check whether an epoch withdrawal has been claimed. |
symb staker withdraw [write options] <vault_address> <amount> [claimer] | Withdraw from a vault. |
symb staker claim [write options] <vault_address> <epoch> [recipient] | Claim a withdrawal for an epoch in a vault. |
rewards
| Command | Description |
|---|---|
symb rewards curator <vault_address> | Get the curator address for a vault. |
symb rewards operators-fee <vault_address> <network_address> | Get effective operators fee (ppm) for a vault + network. |
symb rewards curator-fee <vault_address> <network_address> | Get effective curator fee (ppm) for a vault + network. |
symb rewards protocol-fee <rewards_type> <network_address> | Get protocol fee (ppm) for a rewards type and network. |
symb rewards curator-fees <vault_address> <token> | Get claimable curator fees (amount) for a vault + token. |
symb rewards vault-snapshot-rewards <staker_address> <vault_address> <network_address> <token> [first_reward_to_claim] [max_rewards] | Get claimable vault snapshot rewards (amount) for a staker. |
symb rewards operator-fees <operator_address> <vault_address> <network_address> <token> [first_reward_to_claim] [max_rewards] | Get claimable operator fees (amount) for an operator. |
symb rewards set-curator [write options] <vault_address> <curator> | Set the curator for a vault. |
symb rewards set-operators-fee [write options] <vault_address> <fee> | Set default operators fee (ppm) for a vault. |
symb rewards set-operators-network-fee [write options] <vault_address> <network_address> <fee> | Set network-specific operators fee (ppm) for a vault. |
symb rewards set-curator-fee [write options] <vault_address> <fee> | Set default curator fee (ppm) for a vault. |
symb rewards set-curator-network-fee [write options] <vault_address> <network_address> <fee> | Set network-specific curator fee (ppm) for a vault. |
symb rewards claim-vault-snapshot-rewards [write options] <vault_address> <network_address> <token> [recipient] [first_reward_to_claim] [max_rewards] | Claim vault snapshot rewards for the signer. |
symb rewards claim-operator-fees [write options] <vault_address> <network_address> <token> [recipient] [first_reward_to_claim] [max_rewards] | Claim vault snapshot operator fees for the signer. |
symb rewards claim-curator-fees [write options] <vault_address> <token> [recipient] | Claim vault snapshot curator fees for the signer (curator). |
Examples
Register as an operator using Ledger
symb op register --ledgerOpt in to a vault and network
symb op opt-in-vault 0xVault... --ledger
symb op opt-in-net 0xNetwork... --ledgerSet a network limit (curator)
# 1 ETH (wei) limit example
symb vault set-network-limit 0xVault... 0xNetwork... 1000000000000000000 --ledgerTroubleshooting
- Use
--rpc/SYMB_RPC_URLif public RPCs rate-limit you. - For Ledger signing, make sure the Ethereum app is open and try a different cable/USB port if transport fails.
