The local Anvil contracts enforce the buying window. Registration collection,
social login, wallet linking and proof delivery are not connected to the app.
From registration to an open market
1
Collect registrations
People express interest without paying for tokens. A future service must
verify buying wallets and define a list deadline. Starting with a social
account is a product idea, not an implemented authentication service.
2
Freeze the list before deployment
Build the Merkle root from eligible wallet addresses. The local factory
receives this root with opening and public timestamps. The registry cannot
replace an existing pool’s root or schedule.
3
Create the token and market
The factory creates a fixed-supply token, registers its pool, initializes
Uniswap v4 and funds initial liquidity atomically. There is no bonding curve
or graduation stage. Supply is allocated explicitly between liquidity and
the creator.
4
Enforce the buying window
Before opening, all swaps are blocked. During the exclusive window, buying
requires a proof for the authenticated caller. Selling is allowed after
opening locally; this is not a final product policy.
5
Open buying to everyone
At the public timestamp, the Merkle buying gate expires. Trades still use
the authenticated GRAPL router so protocol fee and reward rules remain
enforced.
Local schedule rules
An instant launch has no exclusive interval: its opening and public timestamps are equal. The scheduled fixture opens the day after deployment, then has a one-hour exclusive interval. These are test settings, not universal launch rules.