uniswap v4 hooks · robinhood chain
Pair any asset. Reward in any asset.
Etherwood launches coins that pay their holders out of every trade. Each one ships with its own Uniswap v4 hook, and the hook is the whole product: it taxes each swap, splits the tax, and pays holders from inside the same transaction.
Because a hook runs in the trade rather than watching it, rewards do not need a bot, a claim portal or a snapshot, and the fee cannot be routed around. Choose what yours trades against: ETH, USDG, or any of twenty-one tokenized equities. Then choose what it pays out, as a separate decision. A TSLA-paired coin can pay its holders NVDA.
That is 529 pair-and-reward combinations, and a second factory adds 78 more that pay out in PONS, AI or CASHCAT. Every route between them is fixed in the hook's bytecode before it ships, not discovered at runtime, and nothing about a launch can be changed once it is made.
-
01
pick the pair
What your coin trades against, and the side the tax is taken on. Any of twenty-three assets.
-
02
pick the reward
What holders are paid in, chosen independently of the pair. Any of the same twenty-three.
-
03
set the tax and split it
One to twenty percent, divided between holder rewards, permanent liquidity and you.
-
04
your hook is mined
Your browser searches for an address carrying the five v4 permission bits, then deploys your hook to it.
what a hook is
Uniswap v4 calls your coin during the swap.
A v4 pool can name a contract that the pool manager calls at fixed points while a trade executes, and that contract can take a share of the amounts moving through. That is a hook. Every coin launched here gets its own, and everything the coin does is one of its callbacks.
-
01
beforeSwap
Takes the tax in the pair currency and returns it as a delta the pool honours. The trader bears it; the AMM prices the rest.
-
02
afterSwap
Pays holders, converts the reward leg and grows liquidity, after the trader's price is already settled.
-
03
beforeRemoveLiquidity
Refuses. Liquidity here is permanent because a callback declines it, not because of a timelock that expires.
-
04
beforeInitialize
Checks the pool is the one this hook was built for, at the price it was built for. One hook, one pool.
A hook's permissions live in the low bits of its own address, so the pool manager reads from the address which callbacks to make. A hook cannot gain a permission later without becoming a different contract at a different address, and your terms are part of what that address commits to. The hook, in full.