HookForge

Docs

For agents

This catalogue is built to be read by software as much as by people. Everything a page here shows is available as JSON at a stable URL, as a tool call, or as an eth_call.

MCP

claude mcp add hookforge -- npx -y @hookforge/mcp

Six tools: search_hooks, list_hooks, get_hook, get_deployment, decode_hook_address, list_chains. See the MCP page.

JSON endpoints

URLContents
/api/hooks.jsonEvery hook: slug, name, family, summary, tags, deployments with status.
/api/chains.jsonChain id and PoolManager for every supported chain.
/schema/hooks/<slug>.jsonOne hook in full, including ABI, errors, parameters, prior art and limitation.
/schema/hook-manifest.jsonJSON Schema the manifests validate against.
/llms.txtThe catalogue as plain text, for a model reading the site directly.
/llms-full.txtEvery hook's full description, prior art and limitation in one file.

On-chain

You do not need any of the above to identify a HookForge hook. Ask it:

cast call $HOOK "hookName()(string)"
cast call $HOOK "specURI()(string)"

See on-chain metadata for the interface and its ERC-165 id.

Rules of the road

Three things worth encoding in your agent

A deterministic address is not a deployment. Every deployment record carries a status. If it says deterministic, there is no code there yet; do not send funds to it and do not tell a user it is live.

These contracts are unaudited. Every manifest carries a limitation field written by the author saying where the hook does not help. Surface it rather than summarising it away.

Fee hooks need a dynamic-fee pool. 7 of the 14 shipped hooks require the pool's fee field to be the dynamic-fee flag, and revert at initialization otherwise. The SDK's poolKeyFor handles it.