Anchor Walrus blobs from your EVM contracts without leaving Claude Code.
Six lessons that turn the MystenLabs/evm-sui showcases into hands-on builds. ACC clones a reference Foundry or pnpm workspace, walks you section-by-section through the Solidity and TypeScript, and gates every step on the test suite. By the end you've shipped an on-chain blob anchor, an ENS-gated resolver, a DAO whose proposal bodies live on Walrus, and a 10 000-token quilted ERC-721 — six reference apps, 75 passing tests.
Lessons
Each lesson is a runnable reference app — Foundry or pnpm — plus a short ordered sequence of section prompts (three to four) that walk you through the load-bearing pieces. Section bodies are mode-agnostic: in learning mode the conductor drops a TODO at the key spot, in explanatory mode it implements + walks through. Every lesson ends green or it doesn't end.
-
01
Walrus + Solidity Basics — Anchoring Blob IDs On-Chain
Write a Solidity contract that anchors a Walrus blob ID per EVM address. Three sections,
bytes32storage, Foundry tests. The smallest possible on-chain Walrus pointer. -
02
Walrus Sites — Publishing Frontends as Sui Objects
Port
publish.shto TypeScript: validate publish inputs, build thesite-builderargv, parse thesite_object_id, then construct the SuiNS link Move call. Replaces the IPNS + gateway stack with one Sui object and one SuiNS transaction. -
03
WalrusResolver — An IPNS Replacement on ENS
Park a Walrus blob pointer under an ENS node. Authorization piggybacks on the ENS registry's owner/operator model — no separate claim step. Reads cost one
eth_call. Replaces a DHT round-trip with a single SLOAD. -
04
DAO Proposals — Walrus-Backed Bodies, On-Chain Tallies
On-chain:
(proposer, blobId, deadline, yes, no). On Walrus: the markdown body. The proposer pays for storage upfront so the DAO contract never holds WAL. Ships the flash-loan-vulnerability warning that separates the showcase shape from production-safe. -
05
Verifiable Manifest Client — ENS → Walrus, in One TS Call
The off-chain side of the WalrusResolver pattern. An ENS name in, a typed JSON manifest out — one
eth_call, one HTTP GET, no IPNS round-trip. Generic over the manifest shape so the same function serves token lists, dApp configs, and DAO metadata. -
06
QuiltedCollection — A 10K-Token ERC-721 Backed by Walrus Quilts
10 000 tokens' metadata + images in two Walrus Quilts instead of 10 000 IPFS pins.
tokenURI(id)returns a deterministic aggregator URL with no per-token state. Owner-only aggregator-migration knob for sunset resilience.
How a lesson runs
ACC handles the setup. You handle the code (or watch — your call). Every section gates on a real test run before advancing, and the same equivalence suite the reference app ships with is what marks the lesson done.
Quick start
Three commands. Foundry-based lessons (01, 03, 04, 06) need forge on PATH; TypeScript lessons
(02, 05) need pnpm. ACC's preflight probes catch either and tell you what to install if missing.
Install the framework + this course
From any Claude Code session. This course runs on the agentic-community-college framework plugin — install it first, then the course.
/plugin marketplace add contract-hero/plugin-marketplace
/plugin install agentic-community-college@contract-hero
/plugin install acc-evm-wal@contract-hero
Start a lesson
ACC renders the lesson catalog, you pick one, and the conductor takes it from there.
/acc-evm-wal:start