A single-file, zero-dependency web scanner for Swarm references. Paste a 64-hex reference or an ENS name and dscan tells you what it is and lets you drill all the way down to raw chunks.
Live at vibing.at/dscan.
- Classification — whether a reference is a mantaray manifest, a feed manifest, a single data chunk, or a bytes tree (intermediate chunk), with the root chunk's span, payload size, and addressed data size.
- Manifest listings — every entry with size, content type, and two links per file: drill into its reference, or open the content itself through the gateway (
↗). - Feeds — owner, topic, latest update index, the currently-referenced content, and the full update history (newest first) with timestamps, enumerated via SOC lookups.
- Health check — walks the chunk tree and probes every chunk for retrievability, with live progress against the (estimated, then exact) chunk total and a list of unreachable chunks.
- Previews — the root chunk's payload as text or a hex dump.
- Browsable trees — intermediate chunks list their child references; everything is clickable, and navigation is URL-addressable (
?q=…) with working back/forward.
dscan is a static page; all data comes from a Swarm gateway, resolved in this order:
?gateway=<url>query override (persisted tolocalStorage)- derived from the current URL when the page itself is served via
…/bzz/<hash>/… - default:
/ant/on the page's origin
It uses the standard gateway endpoints chunks/, bytes/, bzz/, feeds/, soc/, plus two antd extensions: resolve/<name> (ENS resolution) and v0/manifest/<ref> (manifest listing). Against a plain bee gateway everything else still works; ENS input and file listings need antd.
Older antd gateways (< 0.5.39) emitted manifest listing paths with spurious / characters injected at mantaray trie-node boundaries (solardev-xyz/ant#13). dscan repairs these client-side: basenames from Filename metadata, directory segments by probing the gateway (one HEAD per directory) and collapsing slashes until the path resolves.
Copy index.html anywhere static files are served. There is no build step and no external asset — fonts are system, crypto (keccak-256 for feed-update addresses) is inlined.