Chapter 01 · Overview

Overview

What Hookarc is, why Arc, the contracts that make a pool, and how they talk to each other.

Hookarc opens a Uniswap v4 pool for a brand-new token in one transaction on Arc mainnet, quoted in USDC or in cirBTC, at a fixed $10,000 opening valuation and with rules that are frozen before the first swap. There is no seed capital, no admin path into a live pool, and every fee accrues in the quote the pool was opened with.

Why Arc

Arc is Circle's Layer 1: an EVM chain (Osaka) whose native gas token is USDC. Blocks arrive about every 0.5 s with deterministic finality, so a launch, a buy and a claim each settle in well under a second, and a swap costs roughly $0.004 to $0.02 in gas. Both quotes Hookarc offers are Arc-native dollar and Bitcoin instruments with 24/7 Chainlink feeds: USDC through its ERC-20 view and cirBTC. There are no market hours to wait for and no bridge to cross before a pool can be priced.

What a pool is made of

A Hookarc pool is a canonical Uniswap v4 pool on Arc (chain id 5042) with three fixed properties: the LP fee is zero, the tick spacing is 60, and the hook is HookarcHook. Everything Hookarc adds (the 30 + 50 basis-point fee, the four blocks, the claims) lives in that hook. The PoolManager is Uniswap's own contract at 0x8366a39CC670B4001A1121B8F6A443A643e40951; Hookarc does not fork or wrap it.

System topologySolid arrows are calls; dashed arrows are reads or event streams. Hover a node to isolate its links.
buy / selllaunchGraphQLeventsunlock → swapisLivepriceUsd8CREATE2registerinitializemintseedmodifyLiquiditybefore / after hooksquoteHaltedlatestRoundDatapaused?sweep USDC feessweep cirBTC feesburn (AutoBurn)ownerOf gates claimsbuyback → 0xdeadWeb appNext.js · wagmiIndexerPonder · GraphQL + RESTChainlink feedsUSD · 8 dec · 24 hRouterbuy / sellLaunchFactorylaunch · with blocksQuoteRegistrypriceUsd8 · quoteHaltedLPLockerseed() onlyHookarcHookfees · blocks · claimsPoolManagerUniswap v4 · canonicalLaunchTokenfixed 1e9 · immutableCreatorFeeNFTtokenId = poolIdFlywheelBurnerUSDC sink · buybackTreasurycirBTC sinkQuote tokenspaused() flag$HARC poolUSDC pair · elsewhere

The contracts

ContractOne job
LaunchFactoryRuns the launch transaction: mint the token, initialise the pool at the opening price, register the hook state, mint the creator NFT, seed the liquidity. Holds the 1 USDC creation fee.
HookarcHookThe single hook for every pool. Takes the fee on the quote side, enforces the blocks, keeps the fee ledgers as ERC-6909 claims and pays claims.
LaunchTokenA fixed 1,000,000,000-supply ERC-20 with no owner, no mint, no pause and no transfer tax. The whole supply is minted to the LPLocker at construction.
LPLockerThe only liquidity provider. It has a seed() function and nothing else: no withdraw, no owner, no upgrade.
CreatorFeeNFTAn ERC-721 whose token id is the pool id. Whoever holds it can claim that pool's creator fees. Transferable.
QuoteRegistryThe owner-curated list of allowed quotes with their Chainlink USD feed and their decimals (6 for USDC, 8 for cirBTC). Read at launch for the price, and by Halt Guard during a pool's life.
RouterA bounded exact-input router for buys and sells. Not required, but the only caller the hook trusts for trader attribution.
FlywheelBurnerReceives the USDC protocol fee and runs owner-bounded $HARC buybacks that burn in the same transaction.

Off-chain, a Ponder indexer folds the events into tables and serves them to the web app, and the web app itself is a Next.js site that reads the chain directly for anything price- or state-sensitive.

Locked decisions

These do not change without a new deployment:

  • Chain: Arc mainnet 5042, PoolManager 0x8366a39CC670B4001A1121B8F6A443A643e40951.
  • One lane: instant launch only. Every launch seeds the pool in the same transaction.
  • Opening valuation: $10,000 fully diluted, for every pool, in either quote.
  • Fees: 30 bps to the protocol and 50 bps to the creator, always on the quote side, on buys and on sells. Creation fee 1 USDC, paid as native value.
  • Quotes: USDC (the ERC-20 view, 6 decimals) or cirBTC (8 decimals), each registered with a Chainlink feed. Native USDC (address(0)) is not offered as a quote.
  • $HARC is launched elsewhere on Arc. Hookarc only buys it with the USDC protocol fee and burns it. cirBTC protocol fees go to the treasury.
  • No admin over live pools. Owners can pause new launches, add quotes for new launches, route fee sinks and run buybacks. None of those touch a pool that already exists.

How to read these docs

Chapters 2 to 4 follow a token from the launch form to a trade. Chapters 5 to 7 cover the rules a creator can set and where the money goes. Chapters 8 and 9 are the off-chain pieces. Chapters 10 and 11 are for whoever deploys or audits the system, and chapter 12 is the reference table. Every diagram is generated from data in the repository, so a node label matches a function or storage name you can grep for.

read the code
  • contracts/src/ all eight contracts
  • docs/superpowers/specs/2026-09-16-hookarc-design.md the locked design decisions for Arc