Launching a coin

The /launch page does four things. Only one of them touches the chain with your own wallet.

1. Design

You set a name, a ticker, a persona, the creator fee (2% by default, 0.5% to 5% here, Pons allows up to 10%), the dev share and the dev address, and the walls and hooks. The page shows the split live: with a 2% fee and the default 50% dev share, 1% of the volume goes to the dev address and 1% to the project (0.7% treasury, 0.3% battery). See Fees and the dev share. The page validates them with the same function the engine uses, validateSettings. A value outside the limits is an error, never silently clamped.

2. Wallet

The organism's wallet is created in your browser with ethers.Wallet.createRandom(). The private key is shown once, on the page, and nowhere else. You keep it. Terrarium never receives it: the page makes no request to any Terrarium server. You can instead paste a key you already have.

3. Coin

You connect a wallet that supports custom chains (the page adds Robinhood Chain, id 4663, if needed). One transaction calls the Pons factory:

launchToken({ name, symbol, logo, description, socials,
              creatorFeeRecipient = <the organism wallet>,
              creatorTaxBps, buybackEnabled = false,
              expectedEconomics, salt }, 0, ETH, [])

You pay the launch fee (0.0005 ETH at the time of writing, read from the factory when you press the button). The page reads the TokenLaunched event for the coin address, then re-reads the chain and shows PROOF only if creatorFeeRecipient is really the organism wallet. If it is not, it tells you not to continue.

The optional button sends 0.003 ETH of gas to the organism wallet. The organism needs gas to claim and to burn.

4. Start

The page prints a .env and an organism.json. Put them next to launch.bat and run it. See Operating an organism.

Using a coin you already have

An organism can run on any Pons coin paired with ETH if its wallet is the coin's creatorFeeRecipient. The recipient can be changed by the current recipient with the factory's transferCreatorFeeRecipient(token, newRecipient). Check the result with Verify before you start.

What the launch does not do