Skip to content
LogoLogo

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 --help

By 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 | bash

Quickstart

# 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 --json

Configuration

Chain selection

Use --chain <chain> (default: mainnet).

  • mainnet (chainId 1)
  • hoodi (chainId 560048)
  • sepolia (chainId 11155111)

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

VariableDescription
SYMB_RPC_URLDefault RPC URL (can be overridden by --rpc).
SYMB_PRIVATE_KEYPrivate 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_KEY or --private-key <hex> (discouraged)

--ledger-address let you select which Ledger account to use.

Write-only flags

FlagDescription
--yesBypass confirmation prompts.
--dry-runSimulate 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:

FlagDescription
--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.
--jsonMachine-readable JSON output.
--quietMinimal output.

Commands

Commands are grouped by area. For the complete list, run symb --help and symb <group> --help.

net

CommandDescription
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

CommandDescription
symb op is <address>Check if an address is an operator.
symb op listList 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

CommandDescription
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

CommandDescription
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

CommandDescription
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 --ledger

Opt in to a vault and network

symb op opt-in-vault 0xVault... --ledger
symb op opt-in-net 0xNetwork... --ledger

Set a network limit (curator)

# 1 ETH (wei) limit example
symb vault set-network-limit 0xVault... 0xNetwork... 1000000000000000000 --ledger

Troubleshooting

  • Use --rpc/SYMB_RPC_URL if 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.