submit-hook

Installation
SKILL.md

${var} - a hook address (0x...) to submit. Empty means the most recent live mainnet deploy in memory/state/hook-deploys.json.

Today is ${today}. This skill takes a hook this instance already deployed and lists it on the public registry aeonfun/univ4-hooks (the source behind the aeon hook marketplace). It does the formatting the registry expects, then opens a PR. The flags and callbacks are decoded from the address by the registry, so this skill only supplies the address, the chain, and the human-readable listing.

The mechanics (clone, write the entry, regenerate the registry, open the PR, fall back to an issue when there is no push access) live in skills/submit-hook/submit-univ4.py, so all GitHub egress stays inside that helper.

What lists, and what does not

  • Only live mainnet deploys. A dry-run or a testnet deploy is never submitted (the registry lists real, verifiable hooks). Skip with SUBMIT_HOOK_SKIP.
  • Only registry-supported chains. The registry's chains.json covers ethereum base robinhood monad bnb arbitrum unichain. A deploy on any other chain is skipped (SUBMIT_HOOK_UNSUPPORTED_CHAIN); note it and stop.
  • Idempotent. The helper skips if the address (any chain) or the slug is already listed, so re-running is safe.

Steps

  1. Pick the deploy. Read memory/state/hook-deploys.json (a list of deploy records). If ${var} is a 0x... address, select the record whose hookAddress matches it; else select the most recent record with network: "mainnet". No matching record means notify and exit SUBMIT_HOOK_NONE.

  2. Gate it. If the record's network is not mainnet, exit SUBMIT_HOOK_SKIP. If its chain is not one of ethereum base robinhood monad bnb arbitrum unichain, exit SUBMIT_HOOK_UNSUPPORTED_CHAIN (the registry cannot list it yet). Confirm int(hookAddress,16) & 0x3FFF == int(flags,16); if not, the record is inconsistent, so notify and exit SUBMIT_HOOK_BAD_RECORD.

  3. Name it. Derive a PascalCase contract-style name from the record's brief/feature (a market-hours gate becomes MarketHoursGate). This is the marketplace title and the hooks/<slug>.json filename.

Installs
4
Repository
aeonfun/aeon
GitHub Stars
785
First Seen
Sep 18, 2026