walrus-sites
Installation
SKILL.md
Walrus Sites — Decentralized Website Hosting
Source constraint: All information in this skill is sourced from the Walrus Sites documentation and the MystenLabs/walrus-sites repository. When extending this skill, only pull from these sources.
Walrus Sites lets you deploy a static website (HTML/CSS/JS) to Walrus, with an on-chain Sui object tracking the site's resources. A portal server resolves site subdomains, fetches resources from Walrus, and serves them over HTTP. The result is a fully decentralized frontend with no centralized server, CDN, or DNS required.
Common failures:
- Blobs expire. Sites published with too few epochs silently break when blobs expire. Always use a generous
--epochsvalue or--epochs max(53 epochs maximum — about 53 days on testnet, ~2 years on mainnet). Note:--permanentonly makes a blob non-deletable; it does not extend its storage duration beyond the--epochsvalue. - Portal misconfiguration. The portal's
original_package_idmust match the Walrus Sites framework package (site::Site), not your app's Move package. - Testnet sites cannot use
wal.app. The publicwal.appportal serves mainnet only. Testnet requires a self-hosted local portal. - SPA routing. Single-page apps need
ws-resources.jsonrouting config for client-side routing. Without it, direct navigation to deep links returns 404.