Hookify is a token launch infrastructure protocol built entirely on top of Uniswap v4's hook system. It enables creators to launch ERC-20 tokens with programmable lifecycle management — from the first trade to permanent liquidity — enforced fully on-chain with no admin keys, no upgradeable contracts, and no external keepers.
| Metric | Value |
|---|---|
| Protocol | Uniswap v4 Hooks (Custom Accounting) |
| Live Network | Ethereum Mainnet (chainId 1) |
| Token Supply | Fixed 1,000,000,000 (1B) per launch |
| Protocol Fee | Hard-capped at 0.15% (immutable) |
| Creator Fee | Creator-configurable (up to ~3%) |
| LP Lock | Permanent (no admin override possible) |
| Anti-Sniper | Static on-chain, zero off-chain keepers |
What makes Hookify different:
- Tokens trade inside a Uniswap v4 pool from block one — no separate pre-DEX bonding curve phase
- Liquidity lock is enforced by contract immutability, not a timer or trusted multisig
- The hook manages the entire token lifecycle (BC mode → AMM mode) atomically without any external calls
- Creators earn trading fees and can claim them permissionlessly from their own vault
Hookify is designed as a Protocol Operating System for Uniswap v4 Hooks — not a token launchpad template.
The product philosophy:
"The protocol is the product. The user should feel they are operating protocol infrastructure, not filling out forms on a website."
Core design rules:
- Launch flow works even if the API/indexer is offline — frontend builds calldata directly from ABIs
- All state that matters lives on-chain; databases are rebuildable caches
- No contract can be paused, upgraded, or admin-controlled — immutability is the product
- Fees are transparent and fixed at the time of launch — no setter functions
flowchart TB
subgraph CLIENTS["Client Layer"]
WEB["Web3 DApp\napp.hookify.io\nReact + Vite"]
MKT["Marketing Site\nhookify.io\nStatic"]
end
subgraph EDGE["Edge / API Layer"]
API["API Server\nFastify + Node.js\nPort: ENV-assigned"]
AUTH["Auth\nSIWE / JWT"]
end
subgraph DATA["Data Layer"]
IDX["Event Indexer\nNode.js Workers"]
DB[("PostgreSQL\nRebuildable Cache")]
end
subgraph CHAIN["Ethereum Mainnet (chainId 1)"]
PM["Uniswap v4\nPoolManager\n0x000000000004444c..."]
HOOK["EthCreatorFeeHookV3\n0xC5C72B770396..."]
LAUNCHER["ClassicLauncher\n0xE3faC65ce486..."]
VAULT["FeeSplitVaultV1\nper-token"]
FACTORY["FeeSplitVaultFactoryV1\n0x4a178da4a496..."]
end
WEB -->|REST / SSE| API
WEB -->|wagmi + viem direct RPC| CHAIN
MKT -->|Static| EDGE
API --> DB
IDX --> DB
IDX -->|eth_getLogs polling| CHAIN
API -->|RPC reads| CHAIN
API --> AUTH
LAUNCHER -->|initialize pool| PM
PM -->|beforeSwap / afterSwap| HOOK
HOOK -->|NativeSwapFeesAccrued| IDX
HOOK -->|fees flush| VAULT
FACTORY -->|deploy| VAULT
LAUNCHER -->|register| VAULT