mcpField
W
walrus-overview

walrus-overview

github.com/mystenlabsCloud & DevOps344 installsUpdated 1w ago
Repository

About walrus-overview

walrus-overview is a guide skill for understanding Walrus, its decentralized blob-storage architecture, terminology, and tool choices. It routes readers to focused skills for specific tasks, from uploads and cost estimates to websites and troubleshooting.

Key features

  1. 01Walrus architecture and terminology
  2. 02Tool selection guidance
  3. 03Routes to task-specific skills
  4. 04Explains blob IDs and lifecycle

Use cases

  1. 01Choosing a Walrus interface for an application
  2. 02Understanding blob IDs and storage duration
  3. 03Finding guidance for uploading or reading data
  4. 04Locating help for costs, security, or errors

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mystenlabs/walrus-skills --skill walrus-overview

After installing, type/walrus-overviewin Claude Code to confirm it loaded.

Bundled filesevals/evals.json

Details

From the project README

Walrus Overview

Source constraint: All information in this skill is sourced from the Walrus documentation and the Walrus whitepaper. When extending this skill, only pull from these sources.

Walrus is a decentralized storage protocol built on the Sui blockchain. It stores arbitrary binary data ("blobs") across a network of independent storage nodes using erasure coding. Sui smart contracts manage blob registration, certification, payments, and metadata.

This skill provides the entry point for understanding Walrus. It covers architecture, core terminology, and how to choose the right tool for your use case. For specific tool usage, load the corresponding skill.


Related skills

TopicSkillLoad when
CLIwalrus-cliUsing the walrus binary
HTTP APIwalrus-http-apiStoring/reading via REST
TypeScript SDKwalrus-ts-sdkProgrammatic access from TypeScript
Move integrationwalrus-move-integrationWrapping blobs in Move contracts
Storage costswalrus-storage-costsPricing, estimation, cost optimization
Blob lifecyclewalrus-blob-lifecycleExtending, deleting, sharing blobs
Siteswalrus-sitesDeploying static websites
Quiltswalrus-quiltsBatching many small blobs
Confidentialitywalrus-data-securityEncrypting before storing; Walrus guarantees availability and integrity, not confidentiality
Troubleshootingwalrus-troubleshootingCommon errors and fixes

Routing guide

TaskLoad
"What is Walrus?" / "How does it work?"Skill Content below
"Which tool should I use?"Decision tree below
"What is a blob / blob ID / object ID?"Terminology below
Store a filewalrus-cli or walrus-http-api or walrus-ts-sdk
Estimate costswalrus-storage-costs
Deploy a websitewalrus-sites
Encrypt datawalrus-data-security
Fix an errorwalrus-troubleshooting

Skill Content

What is Walrus?

Walrus is a decentralized blob storage protocol. You upload a file, Walrus encodes it into fragments distributed across independent storage nodes, and the Sui blockchain tracks ownership and availability. The result is storage that survives node failures, has no single point of control, and provides cryptographic proof that data has not been tampered with.

Key properties:

  • Public by default. All blobs are readable by anyone with the blob ID. Encrypt before uploading if you need privacy (see walrus-data-security).
  • Content-addressed. The same file content always produces the same blob ID.
  • Time-limited. Storage lasts a fixed number of epochs (max ~2 years). Blobs must be extended or re-uploaded to persist longer.
  • Fault-tolerant. Data remains available even if up to 2/3 of storage nodes fail.
Three-layer architecture
  1. Client layer. Your code (CLI, SDK, or HTTP requests) encodes blobs, distributes fragments to storage nodes, and interacts with Sui for registration and certification.

  2. Storage node layer. Independent operators run storage nodes that hold erasure-coded fragments ("slivers") of blobs. Each node holds one or more shards. Nodes verify slivers, sign receipts, and participate in epoch transitions. Over 60 operators run nodes on mainnet.

  3. Sui blockchain layer. Smart contracts on Sui manage payments (WAL token), storage resource allocation, shard-to-node assignments, blob registration/certification, and metadata. The blockchain is the coordination layer, not the data layer.

How storing works
  1. The client encodes the blob using RedStuff erasure coding, producing slivers distributed across all shards (~4.5x storage overhead).
  2. The client registers the blob on Sui, paying WAL for storage and SUI for gas.
  3. Slivers are sent in parallel to storage nodes. Each node verifies and signs a receipt.
  4. Once 2/3 of nodes confirm, signatures are aggregated into an availability certificate submitted to Sui.
  5. The Point of Availability (PoA) marks when Walrus guarantees the blob is available for its full storage duration.
How reading works
  1. The client requests slivers from storage nodes.
  2. Once it collects slivers from more than 1/3 of nodes, it reconstructs the original blob.
  3. Alternatively, an aggregator does this on your behalf and serves the blob over HTTP.
Core terminology
TermDefinition
BlobAny binary data stored on Walrus (file, image, JSON, video, etc.). Max ~13.6 GiB.
Blob IDURL-safe base64 string identifying blob content. Content-addressed: same content = same ID. Used for reading.
Sui object ID0x... hex string identifying the on-chain Blob Sui object. Different for each upload, even with same content. Used for lifecycle ops (extend, delete, share).
EpochA time period. 14 days on mainnet. Storage duration is measured in epochs.
SliverA fragment of an erasure-coded blob, stored on a single shard.
ShardA partition of the storage space, assigned to a storage node for each epoch.
PublisherAn HTTP service that accepts blob data (PUT) and handles encoding, distribution, and on-chain registration with its own funded wallet. Walrus runs no public unauthenticated publisher on Mainnet and has no plans to; run your own behind authentication. Public Testnet publishers exist.
AggregatorAn HTTP service that reads blobs (GET) by fetching slivers from storage nodes. Many public aggregators exist on both networks, free to use.
Upload relayA third-party service that handles encoding and sliver distribution on behalf of bandwidth-limited clients (for example, browsers). May charge a tip.
WALThe Walrus token, used to pay for storage.
SUIThe Sui token, used to pay for on-chain gas fees.
Point of Availability (PoA)The moment an availability certificate is posted on-chain, after which Walrus guarantees the blob is available.
Deletable blobA blob whose owner can remove before expiry (default).
Permanent blobA blob that cannot be deleted before expiry, even by the uploader.
QuiltA single storage unit containing multiple blobs, reducing per-blob overhead.
Shared blobA Blob wrapped in a Sui shared object so anyone can fund and extend it. The Walrus contract provides SharedBlob as a reference implementation; developers can also create custom shared wrappers.
Storage poolA preview feature: one pre-paid storage reservation that many blobs share, so each store pays only the write fee and all blobs in the pool expire together. Rust SDK and Move only; not in the CLI, HTTP APIs, or TypeScript SDK yet.
Blob ID vs Sui object ID

This is the most common point of confusion for new users:

Blob IDSui Object ID
FormatURL-safe base64 (for example, M4hsZGQ1oCk...)Hex with 0x prefix (for example, 0xe91eee8c...)
Derived fromBlob content (content-addressed)Sui transaction (unique per upload)
Same content uploaded twice?Same blob IDDifferent object IDs
Used forReading blob contentLifecycle operations (extend, delete, share, burn)
Where you get itStore response (blobId field)Store response (blobObject.id field)
Decision tree: which tool to use
You want to...UseSkill
Upload a file from the terminalwalrus store CLIwalrus-cli
Script uploads in a CI/CD pipelinewalrus json CLI (JSON mode)walrus-cli
Store/read from any language over HTTPPublisher/aggregator REST APIwalrus-http-api
Build a TypeScript/JavaScript app@mysten/walrus SDKwalrus-ts-sdk
Upload from a browserTypeScript SDK + upload relaywalrus-ts-sdk
Reference blobs in a Move contractWalrus Move dependencywalrus-move-integration
Deploy a static websitesite-builder CLIwalrus-sites
Store many small files cheaplyQuilts (CLI or HTTP)walrus-quilts
Store sensitive/private dataEncrypt on the client (for example with Seal), then storewalrus-data-security
Let users upload without holding SUI or WALBackend publisher (sponsored, walletless), upload relay, or SDK with a backend signerwalrus-http-api
Confirm a blob is durably stored before depending on itwalrus blob-status / getBlobObjectwalrus-blob-lifecycle
Walrus vs traditional storage
WalrusAWS S3 / Cloud Storage
ControlNo single operator controls dataProvider controls everything
Trust modelCryptographic verificationPlatform trust
Fault toleranceSurvives 2/3 node failuresProvider SLA
PrivacyAll data public by defaultPrivate by default
Cost modelWAL + SUI tokens, per-epochUSD, per-month
DurationMax ~2 years per purchase, renewableIndefinite
StructureFlat blob storage (no directories)Directories/buckets
VerifiabilityCryptographic blob IDs, on-chain certificatesNone

Walrus is strongest for use cases that need censorship resistance, verifiability, decentralized availability, or programmable access control. It is not a drop-in replacement for all cloud storage — only the object/blob storage part.

Pick a service

Match the constraint you actually have:

  • Your caller reads blobs: use an aggregator.
  • Your caller cannot hold SUI or WAL: use a publisher, and on Mainnet run and authenticate your own.
  • Your caller holds a wallet but runs in a browser or on mobile: use an upload relay.
  • Your caller runs server-side with a funded wallet: write through the TypeScript SDK, which talks to storage nodes directly.
Rules
  1. All blobs are public. Encrypt before uploading if you need privacy.
  2. Storage is time-limited. Plan for renewals. Maximum is 53 epochs (~2 years on mainnet).
  3. You need both WAL and SUI. WAL pays for storage, SUI pays for gas.
  4. No public mainnet publisher. Use the upload relay, TypeScript SDK, CLI, or run your own publisher.
  5. Small blobs are expensive individually. Use quilts for batches of small files.
  6. Blob ID is not object ID. Content hash (for reading) vs on-chain object (for management). Do not confuse them.

Comments

Markdown supported