hook it docs

Everything about hook it, in one place.

How to launch, trade, and stay safe on Ink. Plain language — no custody, no hidden steps.

Overview

hook it is a launchpad: anyone can create a token and start trading it on Ink, powered by Uniswap v4. You browse tokens on the marketplace, open a token page for charts and holders, and buy or sell directly from your wallet.

hook it is only an interface. We never hold your ETH, tokens, or stablecoins. Every launch and every trade is a transaction you review and sign in your wallet.

What you can do

  • Explore — browse all launches, filter by modules, and see live stats.
  • Launch — create your own token in one or two wallet confirmations.
  • Trade — swap on the token page with instant or Pro mode.
  • Portfolio — see tokens you created or hold, linked to your connected wallet.

Two paths in the app

Classic (/launch/classic)
Bonding curve first, then graduation to a Uniswap pool. Similar to pump.fun-style launches. Steady fee is the base 1% only (70% creator / 30% protocol).
Custom (/launch/custom)
Master launch: token + Uniswap v4 pool + locked LP in one tx via MasterLaunchHook. Optional hook tax funds modules (anti-snipe, floor, auto-burn, airdrop…) or paste your own hook code.

Both paths mint 1 billion tokens with fixed supply. The launch fee is the same; only the trading setup differs.

How launches work

Launching creates a new ERC-20 token and its trading setup on-chain. What happens depends on whether you pick Master or Classic.

Step by step (creator)

  1. 01

    Connect your wallet

    Make sure you are on Ink and have a little ETH for gas plus the launch fee (0.0005 ETH).

  2. 02

    Fill in token info

    Name, ticker, description, image, and optional social links. This metadata is stored on-chain. Images can be pinned to IPFS when the server is configured.

  3. 03

    Pick Classic or Custom

    Classic opens a bonding curve. Custom deploys a Master launch — modules, quote asset (ETH or stable), or your own hook code.

  4. 04

    Sign the transaction

    Your wallet sends the launch. Master deploys token + pool + locked LP in one go. Classic opens the bonding curve. You can optionally buy tokens in the same flow (dev buy).

  5. 05

    Token goes live

    Your token appears on Explore and gets its own page with chart, holders, and swap widget.

Custom launch (Master on-chain)

In the app this is /launch/custom. On-chain it uses LaunchFactory + MasterLaunchHook — a single Uniswap v4 hook shared by every Master pool.

  • 1 billion tokens are minted (fixed supply, 18 decimals).
  • Starting price targets roughly $4,000 fully diluted market cap at launch (converted to ETH or your chosen quote using the chain price feed / Quotrons pool price for wStocks).
  • A Uniswap v4 pool is created with LP fee tier 0%. Trading fees are charged by the hook instead (quote-only).
  • Liquidity is seeded in a locked price range — the creator cannot remove that LP (anti-rug).
  • Trading starts in the same transaction. Buyers and sellers move price like any AMM.
  • You pick optional modules at launch (anti-snipe, floor, airdrop, burns…). They are packed into a bitmask and cannot be changed later.
  • Quote asset can be ETH, USDG, or a Quotrons wrapped xStock (e.g. wNVDAx) when those markets are seeded on Ink.

What MasterLaunchHook does on every swap

  1. 01

    Before swap

    Applies anti-MEV / max-tx / max-wallet checks when enabled. Computes the quote-notional fee (base 1% + hook tax + temporary anti-snipe on buys).

  2. 02

    Take fee in quote

    The hook pulls the fee from the quote leg only — never from the memecoin amount as a token tax.

  3. 03

    Route the fee pool

    Hook tax (if any) funds Master modules (floor, auto-burn, LP donate, airdrop); leftover hook tax goes to protocol. Base 1% (+ anti-snipe share) always splits 70% creator / 30% protocol — modules never touch that split.

  4. 04

    After swap

    Runs pending auto-burn (buy + burn launch token) and LP donate if those modules left a balance to process.

Classic launch — what actually happens

  • Same 1 billion supply, but 80% is sold on a bonding curve first; 20% is reserved for liquidity at graduation.
  • Early buyers pay increasing prices as the curve fills. Sells are allowed on the curve with fees applied.
  • When real quote collected hits ~4.2 ETH (or the stable equivalent), the token graduates automatically.
  • After graduation, remaining tokens and collected quote seed a full Uniswap v4 pool with GraduatedFeeHook (same quote-only fee idea as Master).

Trading and pricing

When you buy or sell on a token page, you swap against either the live Uniswap pool (Master or graduated Classic) or the bonding curve (Classic pre-graduation). The price shown is the current on-chain price — not a quote from hook it.

What the numbers on screen mean

Price
How much quote (ETH or stable) one token costs right now. Updates every time someone trades.
Market cap
Price × total supply, shown in USD when an ETH/USD feed is available. It is a snapshot, not a guarantee you can sell that amount.
Liquidity
Roughly how much value sits in the pool near the current price (TVL in USD). Higher usually means smaller price jumps per trade — but thin pools still exist.
24h volume
How much was traded in the last day, from the indexer. Requires the indexer to be running and synced.
Slippage
Your tolerance: if the price moves more than this % before your transaction lands, it reverts instead of filling at a worse price.
Price impact
How much your specific trade size moves the pool price. Large buys on small pools = high impact.

How to trade

  • Connect wallet on the token page.
  • Choose buy or sell and enter an amount.
  • Instant mode — quick swap with default slippage.
  • Pro mode — pick slippage, see estimated receive amount, optionally pay with ETH or a supported stable.
  • Every swap pays a trading fee on the quote side (see Fees). Fees are taken in ETH/USDC/etc., never in the memecoin itself.

Limit and stop tabs (Pro mode)

These are price alerts in your browser, not real orders on the blockchain. You set a target price; when spot crosses it, you get a toast notification. You still need to place a market swap yourself. Alerts are stored locally — they do not work if you close the tab or use another device.

Graduation

Graduation only applies to Classic launches. Master launches skip this — they have a pool from day one.

The bonding phase

While a Classic token is on the curve, buys increase the price along a fixed formula. Part of each trade is kept as fees; the rest grows the quote reserve. The progress bar on the token page shows how close the launch is to graduating.

When does it graduate?

Automatically when the curve collects about 4.2 ETH worth of real quote (or the same USD value if you launched against USDC/USDG). No button to press — the next trade that crosses the threshold triggers graduation in the same flow.

What changes after graduation

  • Trading moves from the bonding contract to a normal Uniswap v4 pool.
  • Leftover tokens (20% of supply) plus collected quote become locked liquidity in that pool.
  • Fees switch to the graduated fee hook — same base 1% quote-only fee, 70/30 creator/protocol (no hook tax on Classic).
  • The token page chart and swap widget automatically use the new pool.

Fees and flywheel

Every buy and sell pays a trading fee. Fees are always taken from the quote asset (ETH, USDC, USDG, wStock, etc.) — you never pay fees in the launched memecoin itself.

Steady fee (every Master / graduated swap)

Base fee (1%)
Always on. Always splits 70% creator / 30% protocol. Creators can optionally route their 70% into the hook pot (“Creator → hook”).
Hook tax (optional, Master)
Extra permanent fee (0–9% so base + tax ≤ 10%). Replaces the old creator tax: this cut funds Master modules (floor / burn / donate / airdrop). Unallocated → protocol.
Anti-snipe (optional, Master)
Temporary extra fee on buys only, decaying to 0 over the launch window. Stacked on top of base + hook tax at open; its share follows the base 70/30 split.

How MasterLaunchHook splits the fee

  1. 01

    Peel hook tax

    If hook tax is set, that fraction of the fee pot goes into the hook pot for modules (leftover → protocol).

  2. 02

    Optional: creator → hook

    If enabled, the creator’s 70% of the base also joins the hook pot instead of FeeEscrow. Protocol still keeps its 30% of the base.

  3. 03

    Module cuts

    Of the hook pot (hook tax ± creator share), optional % go to floor, auto-burn, LP donate, and/or holder airdrop. Together ≤ 100%. Needs hook tax and/or creator→hook when any sink is on.

  4. 04

    Base → creator / protocol

    Unless creator→hook is on, the base (+ anti-snipe) portion splits 70% creator / 30% protocol as usual.

  • Creator share (70% of base only) → FeeEscrow (claim on the token page), or BuybackVault if buyback-vesting is on, or HKIT buyback pot for the protocol native token.
  • Protocol share → ProtocolRevenueDistributor: 20% ops / 80% flywheel, plus any unallocated hook tax.
  • Classic launches: base 1% only (no hook tax / Master modules).
  • wStock protocol fees can be converted to USDG via Quotrons pools before buyback routing.

Example

Trade pays 1% base + 2% hook tax. Creator sets auto-burn 50% and floor 50% of the hook tax. Then 2% of the trade funds those sinks 50/50. The 1% base still splits 70/30 creator/protocol.

Launch fee

Creating a token costs 0.0005 ETH (plus gas) paid to the factory. Separate from trading fees; not refundable.

Stats page honesty

Protocol stats show live launch count, TVL, and indexer volume where available. Buyback and burn history only appear when those events are actually indexed — we do not fabricate lists.

Master hook modules

MasterLaunchHook is the shared Uniswap v4 hook for every Custom/Master launch. Modules are optional rules packed into a uint256 bitmask at creation. You pick them in Launch Custom or Builder. Once the token is live, the bitmask cannot change.

Anti-snipe

Adds a high extra fee on buys right after launch. You set duration (seconds) and initial tax %. The tax decays linearly to zero over that window. Goal: make same-block snipes and instant dumps expensive for bots.

Anti-MEV cooldown

One swap per wallet origin (tx.origin) per pool per block. A second swap from the same origin in the same block reverts. Reduces classic sandwich legs; not a private mempool.

Max trade / max wallet

Max trade caps how large a single swap can be as a % of total supply. Max wallet caps how many tokens one address can hold after a buy. Both are optional and set at launch.

Hook tax

Permanent extra quote fee on every swap. That slice funds Master modules (floor, auto-burn, LP donate, holder airdrop). Unallocated hook tax goes to the protocol. The creator’s take stays the 70% of the separate 1% base fee.

Backed floor

Routes a % of the hook-tax pot into FloorVault as quote collateral. Holders can redeem launch tokens for quote at the floor price. The floor ratchets up and never decreases. See the Backed floor section for redeem details.

Auto-burn

Routes a % of the hook-tax pot to buy the launched token from its own pool, then burns those tokens (LaunchToken.burn). The quote is spent; the memecoin supply shrinks. If the nested buy fails, the cut falls back to the floor vault.

LP donate

Routes a % of the hook-tax pot as a Uniswap v4 donate into the pool (extra quote for in-range LPs). If the pool has no in-range liquidity yet, or donate fails, the cut falls back to the floor vault.

Holder airdrop

Routes a % of the hook pot into HolderAirdropVault (still in quote — ETH, USDG, or wStock). Fees accumulate there. Every 15 minutes, once the window is open, a swap on the token can push the pot pro-rata to holders.

  • Pro-rata uses each holder’s balance of the launched token.
  • System addresses (pool, hook, vaults) are excluded automatically.
  • The holder list must cover all circulating balances or the call reverts (keeps the airdrop fair).
  • Token page shows pending pot and countdown when the module is on.
  • No dedicated keeper bot — the Hookit swap path supplies the holder set from the indexer when the epoch is ready.

Buyback vesting (optional)

When enabled, the creator’s escrowed fee share (70% of base) goes to BuybackVault and vests linearly over the duration you pick (7 days to 5 years). Claim unlocks gradually on the token page.

Custom hooks (advanced)

Instead of MasterLaunchHook modules, developers can paste their own Uniswap v4 hook Solidity. hook it compiles it, mines a CREATE2 address with the required permission flags, and deploys from your wallet. Custom hooks are not reviewed by hook it — read the code or treat the token as high risk.

Explore lists which modules each token uses and live usage counts — popularity is not a safety signal.

Backed floor

Backed floor is a MasterLaunchHook module. A percentage of each swap’s hook-tax pot (set at launch) is deposited into FloorVault for that token only.

Floor price

Floor price = vault quote balance ÷ token total supply. It is the redeem rate: how much quote you get per token if you redeem through the vault. New fee deposits can raise the floor. Redemptions use rounding that never lets the floor decrease for remaining holders.

Redeeming

On the token page (when the module is on and the vault has reserves), holders send launch tokens to the vault. Tokens are burned; you receive quote at the current floor. This is separate from selling on the open market. Redeeming large amounts lowers vault reserves for everyone left.

Floor vs market price

  • Market price can trade above or below the floor.
  • Low volume → slow floor growth.
  • Empty vault → redeem is useless until fees refill it.
  • Failed auto-burn / LP donate cuts can also land in the floor vault as fallback.
  • Classic launches do not include backed floor unless you use a custom setup after graduation.

Reference

For developers and integrators

Everything hook it displays can be rebuilt from public blockchain data. The app uses factory contracts, Uniswap v4 pools, and an optional indexer for charts and history.

  • Launches — read TokenLaunched events from LaunchFactory (Master) or BondingLaunchFactory (Classic).
  • Trades — read Swap events from the Uniswap v4 PoolManager for each pool.
  • Live price — read pool state via StateView (sqrtPriceX96) or simulate swaps via the V4 Quoter.
  • Metadata — each LaunchToken exposes metadataURI (JSON with name, image, links).
  • Indexer — optional HTTP API for candles, recent trades, and holder lists (see INDEXER_URL in env).

On-chain events are the source of truth. The indexer is a convenience layer and may lag or be offline on testnet.

Network

hook it deploys on Ink today. Production targets Ink (chain ID 57073); integration and testing use Base Sepolia (84532). Your wallet must match the chain the app is configured for.

Active network
Ink
Chain ID
57073
Gas token
ETH
Public RPC
https://rpc-gel.inkonchain.com
Token supply
1,000,000,000 (1 billion) on both Master and Classic
Starting mcap target (Master)
~$4,000 at launch
Graduation target (Classic)
~4.2 ETH equivalent
Quote assets
ETH, USDG, and supported Quotrons

Contracts

Hook-specific addresses (LaunchFactory, BondingLaunchFactory, swap router) come from your environment variables. Below are the shared Uniswap v4 core contracts on the active chain — the same infrastructure every v4 pool uses.

PoolManagerAll v4 pools live here
0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32
StateViewRead pool prices and liquidity
0x76Fd297e2D437cd7f76d50F01AfE6160f86e9990
V4 QuoterSimulate swap outputs off-chain
0x3972C00f7ed4885e145823eb7C655375d275A1C5
Universal Router
0x112908daC86e20e7241B0927479Ea3Bf935d1fa0
Stable quoteUSDG on Ink
0xe343167631d89B6Ffc58B88d6b7fB0228795491D
ETH/USD feedUsed for USD display and launch pricing
0xe5867B1d421f0b52697F16e2ac437e87d66D5fbF

Onchain events

To build your own explorer or bot, index these events from the deployment block forward. Wide getLogs ranges on public RPCs often timeout — paginate in chunks.

  • LaunchFactory.TokenLaunched — new Master (or custom hook) launch.
  • BondingLaunchFactory.TokenLaunched / Bought / Sold / Graduated — Classic lifecycle.
  • PoolManager.Swap — every pool trade after graduation or on Master.
Example: list Master launches (viem)
import { createPublicClient, http, parseAbiItem } from "viem";

const client = createPublicClient({
  chain: { id: 57073, name: "Ink", nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }, rpcUrls: { default: { http: ["https://rpc-gel.inkonchain.com"] } } },
  transport: http(),
});

const launches = await client.getLogs({
  address: process.env.NEXT_PUBLIC_LAUNCH_FACTORY,
  event: parseAbiItem(
    "event TokenLaunched(uint256 indexed launchId, address indexed token, address indexed creator, bytes32 poolId, address hooks, bool customHook)",
  ),
  fromBlock: "earliest",
  toBlock: "latest",
});

Reading token state

Each launch gets a numeric launchId on the factory. From there you can load the token address, pool, creator, module bitmask, and quote asset — all on-chain.

Paginate launches from the factory
import { parseAbi } from "viem";

const factoryAbi = parseAbi([
  "function getLaunchPage(uint256 startId, uint256 limit) view returns ((address token, address creator, address hooks, bool customHook, bytes32 poolId, int24 tickLower, int24 tickUpper, uint128 liquidity)[], uint256[] bitmasks, uint64[] timestamps, uint256 total)",
  "function launchQuote(uint256 launchId) view returns (address)",
  "function launchedAt(uint256 launchId) view returns (uint64)",
]);

const [page, bitmasks, timestamps, total] = await client.readContract({
  address: factory,
  abi: factoryAbi,
  functionName: "getLaunchPage",
  args: [1n, 50n],
});

The bitmask unpacks into human-readable modules (anti-snipe, floor, etc.). Token metadata lives in metadataURI on the ERC-20. Charts and holder rankings need the indexer unless you compute them yourself from Transfer events.

Pricing and floor

Spot price on Master or graduated pools comes from the pool's sqrtPriceX96 (Uniswap v4 math). Classic bonding price comes from the curve reserves. USD values multiply by the chain ETH/USD oracle when available.

Read pool price from StateView
const [sqrtPriceX96] = await client.readContract({
  address: stateView,
  abi: parseAbi(["function getSlot0(bytes32 poolId) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)"]),
  functionName: "getSlot0",
  args: [poolId],
});

const ratio = Number(sqrtPriceX96) / 2 ** 96;
const priceQuotePerToken = tokenIsCurrency0 ? ratio * ratio : 1 / (ratio * ratio);

Backed floor: call FloorVault.floorPriceX18(token) for the redeem price. UI liquidity is TVL in USD (both sides of the pool), which is easier to interpret than raw Uniswap liquidity units.

Risk disclosures

Tokens on hook it are created by users, not vetted by us. Treat every launch as high risk until you have done your own research.

  • You can lose all money you spend — prices are volatile and many tokens go to zero.
  • Copycat names, logos, and social links are common. Verify the contract address every time.
  • Smart contracts may contain bugs. hook it and Uniswap v4 code are not fully audited for all configurations.
  • Custom hooks can include malicious logic (honeypots, hidden taxes, blocked sells).
  • Low liquidity means you may not be able to sell at the price shown.
  • RPC, wallet, and indexer outages can break the UI or show stale data.
  • Limit/stop alerts are not guaranteed — they depend on your browser staying open.
  • Testnet tokens have no real value; mainnet launches involve real funds.

hook it provides software tools only. We do not endorse any token, creator, or module combination.

Support

hook it is early-stage software. The fastest way to report bugs or ask integration questions is GitHub Issues on the public repository.

Repository: https://github.com/deadpouule/hookit

Include your chain, token address, transaction hash, and wallet type when reporting swap or launch failures — it speeds up debugging.

Terms and attribution

Onchain data is public and free to read. You are responsible for how you use it. hook it is provided as is, without warranties.

  • Write the name in lowercase: hook it.
  • Do not imply partnership, endorsement, or audited status without written agreement.
  • Do not present third-party services as operated by hook it.
  • Availability of interfaces and public infrastructure is not guaranteed.
Checking…