Walrus availability monitoring toolkit.
whisker monitors the availability of blobs on the Walrus decentralized storage network. It watches on-chain events from the Sui blockchain and measures retrieval performance against Walrus aggregator nodes.
- whisker - availability monitor service
- wkit - command-line toolkit for interacting with Walrus
just build # build whisker
just build-wkit # build wkit
just build-all # build bothwkit watch # stream Walrus events from the Sui blockchain
wkit fetch # download a blob from a Walrus aggregator
wkit publish # upload a file to a Walrus publisher
wkit delete # delete a blob by Sui object IDThis runs whisker against the testnet. See the prerequisites section below.
In one terminal set up the environment:
just env-up # start ClickHouse and a local Walrus daemon
just env-logs # tail logsIn another terminal
just runUse ctrl+c to stop whisker then
just env-down # stop and remove containersTesting requires a dedicated Sui testnet wallet funded with SUI and WAL.
Create one using the Walrus CLI, specifying a path so it does not conflict with an existing Sui CLI wallet:
walrus generate-sui-wallet --sui-network testnet --path ~/.walrus-testnet-walletNote the wallet address printed by the command. Fund it with SUI at https://faucet.sui.io/?address=<address>, then swap for WAL:
walrus get-wal --wallet ~/.walrus-testnet-wallet/client.yamlCheck balance at https://suiscan.xyz/testnet/account/<address>
Extract the private key in the format required by WHISKER_SUI_SIGNER:
go run misc/extractkey.go
# or with a custom keystore path:
go run misc/extractkey.go /path/to/sui.keystoreConfigure - create whisker/.env (gitignored):
# absolute path to the directory containing sui.keystore created above
WALRUS_WALLET_DIR=/home/<user>/.walrus-testnet-wallet
# private key (suiprivkey-prefixed bech32) printed by the script above
# enables blob deletion and storage recycling after each probe; optional
WHISKER_SUI_SIGNER=suiprivkey1...
WALRUS_WALLET_DIR and WHISKER_SUI_SIGNER must reference the same wallet so that storage resources recovered after deletion can be reused by the daemon on the next probe.
- Go 1.26+
- just (command runner)
- Access to a Sui RPC endpoint
- Access to Walrus aggregator/publisher endpoints
This project is licensed under the Apache License, Version 2.0 (LICENSE or https://www.apache.org/licenses/LICENSE-2.0). Copyright 2026 ProbeLab Analytics OÜ