Reading Blobs
The Walrus client lets you check a blob's storage status and certification, download its data, and control the consistency checks that protect reads.
Check blob status
You can query the status of a blob through one of the following commands:
$ walrus blob-status --blob-id <BLOB_ID>
$ walrus blob-status --file <FILE>
Each command returns output that indicates whether Walrus has stored the specified blob, along with its availability period. If you specify a file with the --file option, the CLI re-encodes the content of the file and derives the blob ID before checking the status. For a permanent blob, the output also includes an estimated expiry timestamp.
For an available blob, the blob-status command also returns the BlobCertified Sui event ID, which consists of a transaction ID and a sequence number in the events emitted by the transaction. The existence of this event certifies the availability of the blob.
Status requests to storage nodes time out after 1 second by default. Use the --timeout <TIMEOUT> option (for example, --timeout 5s) to adjust this on slow connections.
Read blobs
Read blobs from Walrus using the following command:
$ walrus read <BLOB_ID>
The client fetches slivers directly from storage nodes and reconstructs the blob locally, so reads do not depend on an aggregator or its caches.
By default, the client writes the blob data to the standard output. Use the --out <OUT> CLI option to specify an output file name:
$ walrus read <BLOB_ID> --out <FILE>
Use --rpc-url <URL> to specify a Sui RPC node instead of the currently configured RPC node set in the CLI configuration file or wallet configuration.
With the --json flag, or in JSON mode, the read command prints a JSON object containing the blob ID and, when no output file is set, the blob content as a Base64-encoded string.
To read individual blobs stored inside a quilt, use the read-quilt command instead. See quilts for details.
Check consistency
Walrus performs integrity and consistency checks to ensure that any data read from Walrus is what the writer intended, and that the writer encoded the blob correctly. See the data consistency documentation for further details.
Prior to v1.37, the Walrus CLI and aggregator always performed the strict consistency check. Starting with v1.37, the default is a more performant consistency check, which is sufficient for most cases. You can enable the strict consistency check through the --strict-consistency-check flag:
$ walrus read <BLOB_ID> --out <FILE> --strict-consistency-check
You can disable consistency checks completely with the --skip-consistency-check flag. Only use this if the writer of the blob is known and trusted. Skipping the consistency check does not affect the authentication checks for data received from storage nodes, which the client always performs. The two flags conflict, so pass at most one of them.
When reading through an aggregator instead of the CLI, the equivalent query parameters are strict_consistency_check=true and skip_consistency_check=true. See consistency checks over HTTP.