Create a shielded launch
One keyless contract is the token, its bonding curve and its shielded pool. You pick the name, the genesis share and the raise; the factory derives the curve and installs the pinned launch code with no keys.
The 60 genesis wallets are shielded notes whose proof binds the launch account, so it must be made for <slug>.fac99806.zkspike-1790329170474.testnet before launching. The genesis circuit (85,773 constraints, an 80 MB proving key) is too heavy for the browser; run it locally with your own seed:
It writes evidence/genesis-<slug>.fac99806.zkspike-1790329170474.testnet.json (public: proof, commitments, ciphertexts) and a private file with each note's opening under SECRETS_DIR. Wallet i is account index i of your seed; hand notes out later with tools/distribute.mjs.
The launch account is created by the keyless factory with the pinned launch code and no keys: nobody, including you and the platform, can change it afterwards.
Network: testnet. The call carries the 64-note genesis (~24 KB of arguments); a redirect wallet may refuse arguments that large, an extension wallet will not.