Guidebook/Act 3 — The World

Chapter 09

The night the crate went onchain

One list earns real conviction. Maya publishes it — same bytes, same IDs, nothing migrates — and her record gains a market, an address, and a permanent home.

Maya
Publishes her first record when conviction arrives
You
Bring offchain atoms onchain with multiVaultCreateAtoms
Teaches
onchain · MultiVault · @0xintuition/protocol
Maya reads a printout by night at a window over a lit city skyline, her laptop glowing.

Some records are entries. One or two are testimony.

Maya scrolls the crate late on a Friday — ten thousand songs and counting, enrichment still humming — and her cursor keeps returning to the same place. Heard Live at The Fillmore. Eleven songs, one April night, a curatedBy with her name on it. Every platform that ever held this list is dead. The list outlived them all, and now it lives in something she built.

And Maya notices she wants a thing she hasn't wanted in fifteen years — not since before the first shutdown taught her not to. She doesn't want it backed up. She wants it published. On the record, in public, permanent, with her name attached. She wants it to be true somewhere that doesn't need her laptop to exist.

What onchain actually buys#

Eight chapters were free, and that was the point: identity costs nothing. Nothing about the crate required a wallet, a token, or anyone's permission — and the graph never nagged. Onchain was never the price of admission.

It's a signal. Publishing a record onchain is the moment someone stakes this one is worth keeping — and it buys the record three things the offchain crate can't:

A close-up still-life evoking the night a private collection is published onchain.

The promotion, not the migration#

Here's where the very first chapter comes due. When Maya publishes, the MultiVault contract derives the record's ID from the same bytes — the same salted keccak256 the crate has run since the first calculateAtomId("hello"). Onchain Kerala is 0x6fa0…5b08. Offchain Kerala is 0x6fa0…5b08. There is no mapping table, because there is nothing to map.

Nothing migrates. Nothing re-indexes. Eight chapters of offchain work — the shapes, the claims, the lists, the sameAs repairs — none of it was throwaway, because every record has been carrying its onchain name since the moment it was born. The atom isn't re-created. It's promoted.

crate/the-night.ts
import { multiVaultCreateAtoms, multiVaultCreateTriples } from "@0xintuition/protocol";
import { getDeployment } from "@0xintuition/deployments"; // typed chain config + addresses

// the list, its members, its curator — same bytes the crate has held all along
await multiVaultCreateAtoms(config, { args: [[heardLiveBytes, ...memberBytes]], value: cost });

// then the claims: listedIn, curatedBy — published as the same triples
await multiVaultCreateTriples(config, { args: [tripleArgs], value: cost });

The protocol package simulates before it writes — the transaction is checked against the contract before a single unit moves. Maya watches the confirmation, then does the thing every developer does and nobody admits: she derives the ID locally one more time and compares it to the explorer, character by character.

Same bytes. Same ID. Chapter one kept its promise.

Where this is going#

Heard Live at The Fillmore is public now. It has an address. It has a market. It doesn't need Maya's laptop, her backups, or her.

Which means — and Maya realizes this somewhere around 2 a.m. — for the first time in fifteen years of collecting, other people can touch her collection. Stake on it. Argue with it. Add to it.

Fifteen years of instinct says that's the disaster. The last chapter is about why it's the payoff.