What problem does it solve? Developers integrating the @mysten/walrus TypeScript SDK often struggle with the client extension setup, request-heavy storage-node operations, browser wallet popup constraints, and migration from the removed WalrusClient API. This Skill provides the correct patterns and conventions for working with Walrus decentralized storage in JavaScript and TypeScript projects. ## Core Features & Use Cases - Client Setup & Migration: Configures the Sui client with the $extend(walrus()) extension pattern and migrates legacy WalrusClient code to the v2 API. - Reads & Writes: Covers WalrusFile and WalrusBlob reads, writeFiles/writeBlob uploads, storage epochs, and quilt batching. - Browser & Production Flows: Handles writeFilesFlow for user-gesture wallet signing, resumable uploads with onStep/resume, upload relay configuration, and custom fetch for timeouts and retries. - Use Case: When building a browser dApp that stores user files on Walrus, use this Skill to split the upload into user-triggered signing steps, persist progress for crash recovery, and avoid blocked wallet popups. ## Quick Start Ask the agent to set up a Walrus client on testnet using the SuiGrpcClient extension pattern and write a text file stored for three epochs.