Quickstart
You need a wallet with a little ETH on Robinhood Chain (chain id 4663). Replace $FLOCK with the deployed address (published in the docs and on the Open page once deployed).
With the site
Go to Open. Fill in the token, the size and the deadline, press Read from chain for the economics hash and the launch fee, and the page shows the price the flock will pay and the exact calldata. When a contract address is configured, Open with my wallet sends it.
With Foundry
Build the calldata on the Open page, or in JavaScript with the engine (see The engine), then:
RPC=https://rpc.mainnet.chain.robinhood.com
# 1. open: send the Pons launch fee as a reserve (0.0005 ETH today)
cast send $FLOCK <open-calldata> --value 0.0005ether --rpc-url $RPC --private-key $KEY
# 2. join, any number of wallets, before the deadline
cast send $FLOCK "join(uint256)" 1 --value 0.05ether --rpc-url $RPC --private-key $KEY
# changed your mind? full refund until the deadline
cast send $FLOCK "leave(uint256)" 1 --rpc-url $RPC --private-key $KEY
# 3. after the deadline, anyone launches (the params come from the Opened event or the saved JSON)
cast send $FLOCK <launch-calldata> --rpc-url $RPC --private-key $KEY
# 4. claim your tokens and the unfilled part of your deposit
cast send $FLOCK "claim(uint256)" 1 --rpc-url $RPC --private-key $KEY
Reading a flock
cast call $FLOCK "count()(uint256)" --rpc-url $RPC
cast call $FLOCK "flocks(uint256)" 1 --rpc-url $RPC # 16 fields, see Contract
cast call $FLOCK "shareOf(uint256,address)(uint256,uint256)" 1 $ME --rpc-url $RPC
cast call $FLOCK "failed(uint256)(bool)" 1 --rpc-url $RPC
A worked example
A flock of 0.1 ETH at a 2% creator tax. The curve keeps a 1% fee and the creator takes 2%, so 0.097 ETH reaches the curve and buys 54,586,382 tokens, 5.5% of the supply, at an average price +9.0% above the very first price (fees included). Right after, the price stands +11.9% above the start. If every member sold back at once, they would get 94.1% of the 0.1 ETH.