View System Information
The Walrus system object contains metadata about available and used storage and the price of storage per KiB in FROST. These values are determined by 2/3 agreement between storage nodes for each storage epoch. You can pay to purchase storage space for specified durations. These space resources can be split, merged, and transferred, and can later be used to place a blob ID into Walrus.
Each Walrus storage epoch is represented by the Walrus system object, which contains a storage committee and various metadata about storage nodes, including the mapping between shards and storage nodes, available space, and current costs. Committee changes between epochs are managed by a set of staking contracts that implement a full delegated proof-of-stake system based on the WAL token.
How to view system information with walrus info
You can view information about the Walrus system through the walrus info command. It provides an overview of current system parameters, such as the current epoch, the number of storage nodes and shards in the system, the maximum blob size, and the current cost in WAL for storing blobs:
$ walrus info
The console responds:
Walrus system information
Epochs and storage duration
Current epoch: 1
Start time: 2025-03-25 15:00:24.408 UTC
End time: 2025-04-08 15:00:24.408 UTC
Epoch duration: 14days
Blobs can be stored for at most 53 epochs in the future.
Storage nodes
Number of storage nodes: 103
Number of shards: 1000
Blob size
Maximum blob size: 13.6 GiB (14,599,533,452 B)
Storage unit: 1.00 MiB
Storage prices per epoch
(Conversion rate: 1 WAL = 1,000,000,000 FROST)
Price per encoded storage unit: 0.0001 WAL
Additional price for each write: 20,000 FROST
...
The ... line marks where this example omits the rest of the output. To print all information, run walrus info all.
You can view additional information with various subcommands. Run each subcommand as walrus info <SUBCOMMAND>, for example walrus info epoch:
| Command | Description |
|---|---|
all | Print all information listed below |
epoch | Print epoch information |
storage | Print storage information |
size | Print size information |
price | Print price information |
bft | Print byzantine fault tolerance (BFT) information |
committee | Print committee information |
help | Print help for the given subcommand |
| Parameter | Required/Optional | Description |
|---|---|---|
--config <CONFIG> | Optional | Path to the Walrus configuration file. Defaults to client_config.yaml / client_config.yml in the current directory, $XDG_CONFIG_HOME/walrus/, ~/.config/walrus/, or ~/.walrus/ |
--rpc-url <RPC_URL> | Optional | URL of the Sui RPC node. Defaults to rpc_url in client config or wallet config |
--context <CONTEXT> | Optional | Configuration context to use; defaults to default_context |
--wallet <WALLET> | Optional | Path to the Sui wallet configuration file. Defaults through config parameter, Walrus config path, ./sui_config.yaml, then ~/.sui/sui_config/client.yaml |
--gas-budget <GAS_BUDGET> | Optional | Gas budget for transactions. Estimated automatically if not specified |
--json | Optional | Write output as JSON |
--trace-cli <TRACE_CLI> | Optional | Enable tracing output. Values: otlp (sends to OTLP collector) or file=path (writes gzipped JSON traces to file) |
-h, --help | Optional | Print help |
How to check storage node health with walrus health
You can check the health of storage nodes with the walrus health command. This command accepts different options to select which nodes to check. You must provide exactly one of the node-selection options: --node-ids, --node-urls, --committee, or --active-set.
| Parameter | Required or optional | Description |
|---|---|---|
--node-ids <NODE_IDS>... | Required (choose one) | The IDs of the storage nodes to be selected |
--node-urls <NODE_URLS>... | Required (choose one) | The URLs of the storage nodes to be selected |
--committee | Required (choose one) | Select all storage nodes in the current committee |
--active-set | Required (choose one) | Select all storage nodes in the active set |
--config <CONFIG> | Optional | Path to the Walrus configuration file. Defaults to client_config.yaml or client_config.yml in the current directory, $XDG_CONFIG_HOME/walrus/, ~/.config/walrus/, or ~/.walrus/ |
--rpc-url <RPC_URL> | Optional | URL of the Sui RPC node. Defaults to rpc_url in client config or wallet config |
--context <CONTEXT> | Optional | Configuration context to use; defaults to default_context |
--wallet <WALLET> | Optional | Path to the Sui wallet configuration file. Defaults through config parameter, Walrus config path, ./sui_config.yaml, then ~/.sui/sui_config/client.yaml |
--gas-budget <GAS_BUDGET> | Optional | Gas budget for transactions. Estimated automatically if not specified |
--json | Optional | Write output as JSON |
--detail | Optional | Print detailed health information |
--sort-by <SORT_BY> | Optional | Field to sort by. Possible values: status, id, name, url |
--desc | Optional | Sort in descending order |
--concurrent-requests <CONCURRENT_REQUESTS> | Optional | Number of concurrent requests to send to storage nodes. Default: 60 |
--trace-cli <TRACE_CLI> | Optional | Enable tracing output. Values: otlp (sends to OTLP collector) or file=path (writes gzipped JSON traces to file) |
-h, --help | Optional | Print help |
Read the walrus health output
With --detail, walrus health reports the following for each node:
- Uptime
- Current epoch
- Node status, for example
ActiveorRecoveryInProgress - Event progress: events persisted, events pending, and highest finished event index
- Checkpoint downloading progress: latest checkpoint sequence number and estimated lag
- Shard summary: owned shards and read-only shards
- Owned shard status: counts of Ready, In transfer, In recovery, and Unknown shards
A healthy node reports the Active status and the current epoch. A node with any other status responds to health checks but is not fully operational. If a node is unreachable, the command returns an error. Without --json, the error shows the cause, for example a connection timeout, a DNS failure, or a refused connection. The --json output shows only a generic error message.