Skip to content

hook: GlueHook (soneium) #4920

Description

@lalilulel0x

Chain

soneium

Hook Address

0x03D482cB3Ff339C2d29736818D0F72c66dD6A040

Hook Name

GlueHook

Description

GlueHook V3 — a free, keyless, general-purpose Uniswap V4 hook any project can attach to its own pool permissionlessly. Each pool gets a buyback pot (a per-pool treasury in the paired asset, fillable by anyone) that buys the pool's main asset behind every swap, in both directions — behind a buyer it adds to the buy, behind a seller it buys the dip — sized by the pool's own fee × depth, paced by a spend bucket tied to the fees the pool earns, and gated on a ten-minute time-weighted reference tick. No oracle, no keeper: traffic is the trigger. What the pot buys is delivered to the pot's recipient; address(0) means burn through the Glue Protocol. Each pool may also run a self-compounding LP program: one hook-held position whose fees are auto-harvested inside swaps and split between autocompound, pot refuel, burn and a recipient. Permission bits 0x2040 (beforeInitialize + afterSwap only): the hook never touches the swapper's amounts, quotes are exact vanilla V4 math, and every hook action runs in a try/catch self-call so a swap can never be blocked. Not upgradeable, no owner or admin keys, 0% protocol fee, static-fee pools only, pools route with empty hookData. Same address on 14 mainnets and 5 testnets.

Deployer Address

0xe9009763480C401174Eed353256C242Dd2D3F60D

Audit URL

https://github.com/glue-finance/glueHook/tree/main/audit

Addresses and generations

Generation Hook Bits Status
V3 (this submission) 0x03D482cB3Ff339C2d29736818D0F72c66dD6A040 0x2040 live — the hook new pools use; landed 2026-09-16
V2 (registered earlier for some chains) 0x0F41715dc432692b66A5aDF8dCfef6Ac407b20c8 0x20C8 superseded; still deployed for its own pools
V1 (registered earlier for some chains) 0xb216070c3509047ea597E2E626A29cea427a60C8 0x20C8 superseded; still deployed for its own pools

V3 replaces the V1/V2 entries as the live GlueHook. Every generation was deployed with plain CREATE from a nonce-0 deployer (library at nonce 0, hook at nonce 1), which is why one address holds the same code on every network. Linked library GlueLiquidity 0x01f739de084e7Cd3554dd4fABA970D346d3DD8Bb; compile-time GLUE_STICK 0xBe99cB426fDf30F95784337d4e8CC460AC8e8608. Source-verified on this chain's explorer: https://soneium.blockscout.com/address/0x03D482cB3Ff339C2d29736818D0F72c66dD6A040

Why V3 (what changed vs V1/V2)

Launch write-up with the full numbers: https://x.com/glue_fi/status/2100237021264450020

  • The pot can no longer empty itself in one transaction. V1/V2 ran two modes — buying on buys and defending on sells — and the defence could spend 100% of the pot at whatever price was on screen. V3 turns the defence into a buy and puts a TWAP underneath it: the most it spends behind any one swap is 0.8·f·R (0.8% of pool depth at a 1% pool), measured against its own ten-minute time-weighted reference. It buys in slices — hard into dips, pulling back as a rally runs ahead of the reference.
  • One mechanism, behind every swap, in both directions. The pump runs inside the swapper's own transaction — nothing in the mempool to front-run.
  • 20× to 67× harder to play. The sandwich was already closed in V2 (−40% of fees). V3 closes the other two doors: unlocking the pot costs 50% of it in fees instead of 2.5%, round-trip farming needs a bag of ~16% of pool depth instead of ~1.25%, a pushed premium d shrinks the pump to f/d, and the reference rises at most 3% a minute. Spend = 0.8 · min(f·R, f·R·bucket, s(d)·B, pot).
  • The before-swap path is gone. 0x2040 = beforeInitialize + afterSwap only; no beforeSwap, no return delta. Quotes are exact, swaps cannot be blocked, the surface shrank.
  • Cheaper Glue integration. Burns go through the Glue Protocol directly (wrapper-aware); native programs stream live harvest data to Glue's staking/locking engines.

Live pool on Soneium

Pair ETH / ASTR 0x2CAE…9441
PoolKey fee = 10000, tickSpacing = 200, hooks = 0x03d482cb3ff339c2d29736818d0f72c66dd6a040
PoolId 0x902f1156c5344f46576ff7ca92793a7b91ac70d897c9e9f302c9955fbccddf98
Activity launched via launchPool, swapped both ways through the Universal Router, LP added, 50% removed (2026-09-16)

Properties (for the registry)

  • dynamicFee: false — dynamic-fee keys are refused at beforeInitialize
  • upgradeable: false — no proxy, no admin, no pause
  • requiresCustomSwapData: false — empty hookData
  • flags: beforeInitialize, afterSwap; no *ReturnsDelta

References

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions