Build

Everything an implementation needs, in one place.

The protocol lives on Nostr as a handful of event kinds. The specification is the authority on every one of them; this page is the index.

Event kinds

KindWhat it carriesRelay semanticsDefined in
3333Movement chain: spawn, hop, sidestep, and the hyperspace actions, told apart by the A tagregularspec
33330A bag: content encrypted to one region at one height, addressed by its lookup idaddressable (newest per pubkey, kind, d)spec
11333An avatar: one per identity, the SNO payload plus the work it owesreplaceable (newest per pubkey, kind)spec
33331An SNO object as its own event: editable by its author, or hidden by an a or e reference tag in a bag, with a public preview and its payload encrypted to the place (FF-1, cyberspace:region)addressablespec
3330An SNO object hidden inline as an item inside a bagbag itemspec

Palettes are read from whatever convention the network uses; today that is kind 3367 with one c tag per colour (DECK-0003). The protocol defines no palette kind of its own.

Implementations

Reference scripts and data

Mirrored from the repository at commit 8a5b13662640. The Python files are dependency free on purpose, so an agent with a sandbox can check its own output.

FileWhat it is
sno-palette.jsonThe built-in 256-colour SNO palette as JSON: 24 hues by 8 steps (index = hue * 8 + step), then steels and signatures.
sno-palette.pngThe same palette as an image, one cell per index.
sno-reference.pyDependency-free Python that accepts or refuses an SNO payload exactly as DECK-0003 section 1.9 says, and runs its own rejection table.
landfall-reference.pyReference computation for DECK-0001 landfalls.
hint-reference.pyReference for bag hints (section 7.7), with golden vectors.
sidestep-reference.pyReference for the sidestep proof (section 6).
visualization_vectors.jsonGolden vectors at the Cantor Height 34 scale for renderers.

For agents