LOCKET docs
Every piece carries six traits. Five are public and come from one seed tied to the exact swap that earned the piece: same swap, same public face, every time. The sixth is the sealed charm: a secret the holder alone chooses and encrypts, unrelated to the swap and invisible to everyone else, including the team.
The five-trait picture below is the planned on-chain art. The deployed contract does not compute or draw it yet; today its tokenURI only reports whether a piece is sealed. The tiles here run the same arithmetic the eventual contract would, on the same weight tables, so a buyer can see the range of pieces before any real buy.
The numbered badges below label the five public parts, drawn on the real tile: no outlines anywhere, the only ink in the picture is the pair of eyes. The example combination shown here (square character, crown headwear, soft lime glass, satin white frame, keyhole pattern background) is chosen only to make every part visible at once; it is not a rarity claim. On the actual vault object, these five traits read differently: they pick the frosted keyhole panel's ceramic finish, the lime tint shared by the robot's visor light and the vault's rim, which corner the keyhole panel sits in, the antenna or headgear piece on the robot's head, and a faint pattern behind the whole vault.
Alongside the five public traits, each piece carries one random charm encrypted in the browser. An immutable Lit action is intended to check current ownership before returning the key in an encrypted response. Transfer preserves the exact ciphertext. Former holders may retain earlier plaintext or keys. Live Lit access is unverified and disabled.
Each tile below is drawn by docs/js/docs-tile.js from the real weight table in js/snag-market.js, with the other four traits held at their most common pick so the changing part is easy to see. The number under each tile is its weight out of 1000.
This covers the five public traits only; the sealed charm never comes from this arithmetic; it is chosen and encrypted by the holder, not derived from the swap. This is not a real buy either way. It uses one illustrative, clearly placeholder field set to show the exact arithmetic js/snag-market.js runs, computed by docs/build-docs.mjs and written to docs/js/docs-data.js, never typed by hand on this page.
Packed in that order and hashed with keccak256, those four fields give the seed:
Reading that seed five ways, two hex characters (parsed as a 12-bit-range pick out of 1000) per trait group, in the order character, headwear, glass, frame, background, gives this piece:
character, headwear, glass, frame, background.
This exact mix: 1 in
Demo values in $LOCKET. Try 250K, 1M, 5M or 15M. The demo minimum is 500K; the 250K buy gets no piece. These amounts are illustrative, not the collection minimum.
Change any one of the four fields and every public trait can change, because the whole seed changes. Keep all four the same and the public face is identical every time, which is what lets a buyer's own wallet, swap number and amount reproduce their piece's face before it ever lands. The encrypted charm is separate from the public seed; nothing here previews it.