Put the games on chain from your own wallet. Each one is a single transaction whose input is eleven bytes of init code followed by the compressed game — no contract to compile, no private key to paste anywhere. Your wallet signs; this page never sees a key.
One wallet prompt per cartridge. Use deploy just this one on a step to put a single cartridge on chain and leave the rest alone — handy when some of them are already up there. Every deploy is read back off the chain and its hash checked against what this page built before it is called done: a contract that cannot be read back is not a cartridge.
A cartridge is playable the moment it is deployed — the loader boots any address. The registry is what puts it on a shelf people can browse. It is an ordinary contract and it checks the header of anything offered to it, so an address with no cartridge at it cannot be listed however it is described.
Anything deployed in this session is listed automatically. For cartridges that went up earlier, paste their addresses:
One prompt for the registry if it is new, then one per cartridge. Listing an address twice is refused by the contract, so this is safe to run again after adding a cartridge — the ones already on the shelf are skipped.
Save each block below at the path above it. Nothing else records the
transaction that created these contracts, and it is what everything
else is checked against:
node scripts/cartridge-attest.mjs --network robinhood