Markets with the rulebook on the outside: every swap rule readable on chain before the first trade clears. A v4 hook launchpad on Robinhood Chain. $OZYCAH
$OZYCAH is live on Robinhood Chain.
CA: 0x371ff2ca6499517ad7fb60af6579bc7eb39a7b3d
A marketplace for Uniswap v4 hooks with a launchpad inside. Five audited blocks, one hook, your market. Every rule readable on chain before the first trade.
Is the Nth-buy pot random?
No. A public counter advances at most once per pool per block. Every qualifying buy adds an ETH cut to the pot. When the counter hits the advertised N, that buy takes it.
No keeper, no oracle, no randomness beacon. Arithmetic you can recompute from public state.
Last year's ugliest hook exploit started in bespoke callback logic no shared audit had seen. We refuse the category: five audited blocks, parameters only.
Luck, minus trust.
Why there are no custom callbacks here.
The $11M Cork Protocol exploit in 2025 began in a v4 hook's beforeSwap that never checked who was calling it. Bespoke logic, no shared audit, one missing access check.
A stack here is five audited blocks and their parameters. Every reachable configuration lives inside paths audited once, for everyone.
The price of borrowing a stack is printed at publication.
A blueprint's royalty is fixed then and capped at 10% by the registry contract. It draws only from the ETH-side cuts, so a burn-only stack publishes at zero.
Two copies of one stack compete on rate. The launcher takes the cheaper one.
What qualifies for the pot.
A buy of at least 0.004 ETH. A counter that advances at most one step per pool per block, so a bundle can't spin it. A real, nonzero recipient, supplied by the router, so the pot can't pay the void. A funded pot stays claim-backed for the next winner.
No randomness to audit, because there is none.
Graduation is one transaction.
The last tranche clears, the v4 pool opens, the hook attaches, the LP position locks in the launchpad. Same transaction. No removal function exists.
Immutable rules and permanent liquidity are properties of the bytecode, not policies of an operator.
Graduation is one transaction.
The last tranche clears, the v4 pool opens, the hook attaches, the LP position locks in the launchpad. Same transaction. No removal function exists.
Immutable rules and permanent liquidity are properties of the bytecode, not policies of an operator.
The curve, in numbers.
62% of a fixed one billion supply, ten tranches, each priced 70% above the one before. Tranche one pays the floor. Tranche ten pays more than a hundred times the floor, and everyone buying it can see that going in.
Clearing the last tranche is graduation. Not clearing it is fine. Nothing expires.
LP Rewards, the block.
A cut of every buy's ETH leg, 0.1 to 1.5%, is donated to in-range positions on top of the ordinary fee. Show up early, stay in range, earn it. Out of range earns nothing.
One of the two cuts that can fund an author's royalty.
Auto Burn, the block.
On every exact-input buy, 0.1 to 5% of the tokens actually received goes to the dead address. It burns what really traded, not what someone meant to trade.
Burn never touches ETH, so a burn-only stack has nothing to route and publishes at 0% royalty. Arithmetic, not policy.
Surge Fees, the block.
The LP fee is recomputed inside beforeSwap from the trade's share of pool depth. Small trades pay the base tier, 0.3 to 1%. Trades that drain the pool pay the surge tier, 2 to 8%.
The slope is a launch parameter. Not a lever anyone holds.
Anti-Snipe, the block.
For a window after the pool opens, every buy is capped and pays an extra LP fee. Window 20 to 400 blocks. Max buy 0.1 to 2%. Tax 5 to 40%, paid to LPs, never to a wallet.
Snipers wait out the window, or fund the people they tried to front-run.
How to read a launch page in ninety seconds.
The stack: every block, in order, parameters printed. The chip: pool means graduated, locked, frozen; curve with a tranche number means early, which cuts both ways. The overhead figure: a view function recomputes it with the contract's own math.
Then what's missing on purpose. No lock countdown, nothing to unlock. No team allocation field, the supply is fixed and printed.
What you read is what runs.
A v4 hook cannot lie about what it does.
Its permissions live in the low bits of its own address. Which callbacks run is readable from the address alone, and fixed at deployment.
Our five blocks run on beforeSwap and afterSwap. The address says so before you read a line.
How to read a launch page in ninety seconds.
The stack: every block, in order, parameters printed. The chip: pool means graduated, locked, frozen; curve with a tranche number means early, which cuts both ways. The overhead figure: a view function recomputes it with the contract's own math.
Then what's missing on purpose. No lock countdown, nothing to unlock. No team allocation field, the supply is fixed and printed.
What you read is what runs.