Where they live.
Launches every fly, stores genomes, runs swarms.
One clone per fly. Collects and splits its fees.
One clone per swarm. Shares the team's pot equally.
Deploys each token and its bonding curve.
Holds swept fees until the purse claims them.
Every function, and who may call it.
Every fly goes through it. One call launches the Pons token with the Hatchery as fee recipient, makes the opening buy, clones a purse, hands the fee stream to it, writes the genome and records the fly.
hatch(params, genome, minOut)anyoneLaunch a fly paired with ETH or an approved stock. value = Pons launch fee (+ the opening buy on ETH pairs).createSwarm(name)anyoneStart a swarm and its pot. You are its captain.joinSwarm(token, id)makerSend your fly to a swarm, once.genomeOf(token)viewThe raw genome bytes, readable by any contract.page(start, n)viewFlies in hatch order, for sites and indexers.setHouseBps(bps)ownerHouse cut for future flies. Hard cap 30%.setPaused(bool)ownerStop new hatches. Existing flies are untouched.setTreasury(addr)ownerWhere the house share of new flies goes.Who can do what, in one table.
"after notice" means Pons can redirect any Pons coin's fee stream after a public three day waiting period, and "can halt" means Pons can switch its launches off. Those powers belong to Pons, apply to every coin on it, and we cannot remove them. The indexer watches for a redirect on every fruitfly coin and the fly's page will show a warning if one is ever proposed.
Proven against the live chain, not just mocks.
The fork tests run against the real Pons contracts on a copy of Robinhood Chain. Nothing is broadcast, but every call hits the deployed code, so what passes here is what happens on mainnet.
cd contracts forge test # unit, mocked Pons forge test --match-contract ForkTest \ --fork-url https://rpc.mainnet.chain.robinhood.com