From 88f34968d3c81fa1ef7c1b93d3749d8669e495f7 Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:03:07 -0400 Subject: [PATCH 1/7] feat: add vanillaSwap and swapAccess to site types and PropertyFilter Add vanillaSwap (boolean) and swapAccess (string enum) to HookProperties. Decouple PropertyName from keyof HookProperties to keep toggle filters boolean-only. Add vanillaSwap toggle with emerald green color. Co-Authored-By: Claude Opus 4.6 (1M context) --- schema.json | 6 ++-- scripts/aggregate.py | 7 ++--- scripts/test_aggregate.py | 41 +++++++++++++++++++++++--- site/src/components/PropertyFilter.tsx | 2 ++ site/src/types.ts | 5 +++- 5 files changed, 49 insertions(+), 12 deletions(-) diff --git a/schema.json b/schema.json index 8028e1ab..d55a93aa 100644 --- a/schema.json +++ b/schema.json @@ -51,12 +51,14 @@ }, "properties": { "type": "object", - "required": ["dynamicFee", "upgradeable", "requiresCustomSwapData"], + "required": ["dynamicFee", "upgradeable", "requiresCustomSwapData", "vanillaSwap", "swapAccess"], "additionalProperties": false, "properties": { "dynamicFee": { "type": "boolean" }, "upgradeable": { "type": "boolean" }, - "requiresCustomSwapData": { "type": "boolean" } + "requiresCustomSwapData": { "type": "boolean" }, + "vanillaSwap": { "type": "boolean" }, + "swapAccess": { "type": "string", "enum": ["none", "temporal", "allowlist", "governance", "other"] } } } } diff --git a/scripts/aggregate.py b/scripts/aggregate.py index 990ec260..f85ecc6f 100644 --- a/scripts/aggregate.py +++ b/scripts/aggregate.py @@ -32,12 +32,9 @@ def aggregate_hooks(hooks_dir: str, schema: dict | None = None) -> list[dict]: return hooks -SWAP_FLAGS = ("beforeSwap", "afterSwap", "beforeSwapReturnsDelta", "afterSwapReturnsDelta") - - def filter_vanilla_swap(hooks: list[dict]) -> list[dict]: - """Return hooks that have no swap-related flags enabled.""" - return [h for h in hooks if not any(h["flags"][f] for f in SWAP_FLAGS)] + """Return hooks whose vanillaSwap property is true.""" + return [h for h in hooks if h["properties"]["vanillaSwap"]] def main(): diff --git a/scripts/test_aggregate.py b/scripts/test_aggregate.py index 65a98376..0d1f585a 100644 --- a/scripts/test_aggregate.py +++ b/scripts/test_aggregate.py @@ -55,11 +55,13 @@ }, "properties": { "type": "object", - "required": ["dynamicFee", "upgradeable", "requiresCustomSwapData"], + "required": ["dynamicFee", "upgradeable", "requiresCustomSwapData", "vanillaSwap", "swapAccess"], "properties": { "dynamicFee": {"type": "boolean"}, "upgradeable": {"type": "boolean"}, "requiresCustomSwapData": {"type": "boolean"}, + "vanillaSwap": {"type": "boolean"}, + "swapAccess": {"type": "string", "enum": ["none", "temporal", "allowlist", "governance", "other"]}, }, }, }, @@ -98,6 +100,8 @@ def _valid_hook(chain="ethereum", address="0x00000000000000000000000000000000000 "dynamicFee": False, "upgradeable": False, "requiresCustomSwapData": False, + "vanillaSwap": False, + "swapAccess": "none", }, } @@ -173,10 +177,9 @@ def test_aggregate_with_schema_missing_flag(): def test_filter_vanilla_swap_excludes_swap_hooks(): - swap_hook = _valid_hook() # has beforeSwap=True + swap_hook = _valid_hook() # has beforeSwap=True, vanillaSwap=False vanilla_hook = _valid_hook(address="0x00000000000000000000000000000000000000A0") - vanilla_hook["flags"]["beforeSwap"] = False - vanilla_hook["flags"]["beforeInitialize"] = False + vanilla_hook["properties"]["vanillaSwap"] = True result = filter_vanilla_swap([swap_hook, vanilla_hook]) assert len(result) == 1 assert result[0]["hook"]["address"] == vanilla_hook["hook"]["address"] @@ -204,3 +207,33 @@ def test_aggregate_with_schema_wrong_type(): json.dump(hook, f) with pytest.raises(ValueError, match="Schema validation failed"): aggregate_hooks(tmpdir, schema=SCHEMA) + + +def test_filter_vanilla_swap_includes_beforeSwap_with_vanillaSwap(): + """A hook with beforeSwap=True but vanillaSwap=True IS included.""" + hook = _valid_hook() # has beforeSwap=True by default + hook["properties"]["vanillaSwap"] = True + result = filter_vanilla_swap([hook]) + assert len(result) == 1 + assert result[0]["hook"]["address"] == hook["hook"]["address"] + + +def test_filter_vanilla_swap_includes_governance_access_with_vanillaSwap(): + """Access control doesn't affect vanilla status.""" + hook = _valid_hook() + hook["properties"]["vanillaSwap"] = True + hook["properties"]["swapAccess"] = "governance" + result = filter_vanilla_swap([hook]) + assert len(result) == 1 + + +def test_schema_rejects_invalid_swapAccess(): + """Schema validation rejects an invalid swapAccess value.""" + with tempfile.TemporaryDirectory() as tmpdir: + hook = _valid_hook() + hook["properties"]["swapAccess"] = "invalid" + os.makedirs(os.path.join(tmpdir, "ethereum")) + with open(os.path.join(tmpdir, "ethereum", "bad.json"), "w") as f: + json.dump(hook, f) + with pytest.raises(ValueError, match="Schema validation failed"): + aggregate_hooks(tmpdir, schema=SCHEMA) diff --git a/site/src/components/PropertyFilter.tsx b/site/src/components/PropertyFilter.tsx index 5a37af08..973be2db 100644 --- a/site/src/components/PropertyFilter.tsx +++ b/site/src/components/PropertyFilter.tsx @@ -9,12 +9,14 @@ const LABELS: Record = { dynamicFee: "Dynamic Fee", upgradeable: "Upgradeable", requiresCustomSwapData: "Custom Swap Data", + vanillaSwap: "Vanilla Swap", }; const COLORS: Record = { dynamicFee: { bg: "#3b82f6", shadow: "rgba(59, 130, 246, 0.35)" }, upgradeable: { bg: "#f59e0b", shadow: "rgba(245, 158, 11, 0.35)" }, requiresCustomSwapData: { bg: "#8b5cf6", shadow: "rgba(139, 92, 246, 0.35)" }, + vanillaSwap: { bg: "#10b981", shadow: "rgba(16, 185, 129, 0.35)" }, }; export function PropertyFilter({ selected, onChange }: Props) { diff --git a/site/src/types.ts b/site/src/types.ts index 876304f8..b4f54879 100644 --- a/site/src/types.ts +++ b/site/src/types.ts @@ -19,6 +19,8 @@ export interface HookProperties { dynamicFee: boolean; upgradeable: boolean; requiresCustomSwapData: boolean; + vanillaSwap: boolean; + swapAccess: "none" | "temporal" | "allowlist" | "governance" | "other"; } export interface HookMeta { @@ -39,7 +41,7 @@ export interface HookEntry { } export type FlagName = keyof HookFlags; -export type PropertyName = keyof HookProperties; +export type PropertyName = "dynamicFee" | "upgradeable" | "requiresCustomSwapData" | "vanillaSwap"; export const FLAG_NAMES: FlagName[] = [ "beforeInitialize", @@ -62,4 +64,5 @@ export const PROPERTY_NAMES: PropertyName[] = [ "dynamicFee", "upgradeable", "requiresCustomSwapData", + "vanillaSwap", ]; From 41f249f2a807d91289e1e185169baa6a9c27951d Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:04:01 -0400 Subject: [PATCH 2/7] Update CI prompts with vanillaSwap and swapAccess property guidance Add detection instructions for vanillaSwap and swapAccess to the analyze-hook prompt (Step 5 items 5-6, renumber existing 5-6 to 7-8), add both properties to the PR body template, and add verification guidance for both in the review-hook prompt (Step 2c items 4-5). Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/prompts/analyze-hook.md | 15 ++++++- .claude/prompts/review-hook.md | 75 +++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 .claude/prompts/review-hook.md diff --git a/.claude/prompts/analyze-hook.md b/.claude/prompts/analyze-hook.md index 4ee928e6..7ce1567f 100644 --- a/.claude/prompts/analyze-hook.md +++ b/.claude/prompts/analyze-hook.md @@ -118,9 +118,18 @@ Cross-reference the address-derived flags with the source code: 4. **Detect `requiresCustomSwapData`**: This is `true` if a normal swap (sending empty `hookData`) would **fail, revert, or produce materially incorrect behavior** because the hook requires specific encoded data (signatures, parameters, routing info, etc.) in `hookData`. If the hook merely inspects `hookData` for optional/ancillary features (e.g. an optional trade referrer via `if (hookData.length > 0)`) but swaps work correctly without it, this is `false`. In short: would an unsuspecting router or user sending no `hookData` have a bad experience? -5. **Generate name**: Use `ContractName` from the Etherscan response if the submitter didn't provide one. +5. **Detect `vanillaSwap`**: This is `true` if the hook's `beforeSwap`/`afterSwap` implementations do NOT modify swap pricing, amounts, or deltas. Hooks that only perform access control (allow/deny), logging, oracle updates, or observation are vanilla. Hooks that execute trades, modify fees, return deltas, or alter swap mechanics are NOT vanilla. If the hook has no swap flags enabled at all, `vanillaSwap` is always `true`. -6. **Generate description**: Write a 1-2 sentence summary of what the hook does, based on your analysis of the source code. +6. **Detect `swapAccess`**: Classify the hook's swap access control mechanism: + - `"none"` — No restrictions on who can swap or when (default for most hooks) + - `"temporal"` — Swaps gated by a timestamp or block number + - `"allowlist"` — Only approved addresses can swap (KYC, whitelist) + - `"governance"` — An admin/governance address must enable swaps (e.g., migration gates) + - `"other"` — Some other access restriction mechanism + +7. **Generate name**: Use `ContractName` from the Etherscan response if the submitter didn't provide one. + +8. **Generate description**: Write a 1-2 sentence summary of what the hook does, based on your analysis of the source code. ## Step 6: Generate the Hook JSON @@ -184,6 +193,8 @@ The PR body should contain: | dynamicFee | true/false | | upgradeable | true/false | | requiresCustomSwapData | true/false | +| vanillaSwap | true/false | +| swapAccess | none/temporal/allowlist/governance/other | ## Warnings diff --git a/.claude/prompts/review-hook.md b/.claude/prompts/review-hook.md new file mode 100644 index 00000000..c877b0e8 --- /dev/null +++ b/.claude/prompts/review-hook.md @@ -0,0 +1,75 @@ +# Hooklist — PR Review Instructions + +You are reviewing a PR that adds or modifies a Uniswap v4 hook file. Your job is to verify the hook metadata is correct by fetching the on-chain source code and cross-referencing it. + +## Step 1: Identify Changed Hook Files + +Find which `hooks//
.json` files were added or modified in this PR. + +## Step 2: For Each Hook File + +### 2a: Verify the Address Flags + +Decode the lowest 14 bits of the hook address and confirm the `flags` section matches. The `validate.yml` workflow already checks this, but confirm it in your review. + +| Bit | Flag | +|-----|------| +| 13 | beforeInitialize | +| 12 | afterInitialize | +| 11 | beforeAddLiquidity | +| 10 | afterAddLiquidity | +| 9 | beforeRemoveLiquidity | +| 8 | afterRemoveLiquidity | +| 7 | beforeSwap | +| 6 | afterSwap | +| 5 | beforeDonate | +| 4 | afterDonate | +| 3 | beforeSwapReturnsDelta | +| 2 | afterSwapReturnsDelta | +| 1 | afterAddLiquidityReturnsDelta | +| 0 | afterRemoveLiquidityReturnsDelta | + +### 2b: Fetch and Analyze Source Code + +Look up the chain in `chains.json` to get the `chainId`. Fetch verified source: + +```bash +curl -s "https://api.etherscan.io/v2/api?chainid=CHAIN_ID&module=contract&action=getsourcecode&address=ADDRESS&apikey=$ETHERSCAN_API_KEY" -o etherscan_response.json +``` + +For Blockscout chains (zora, ink, soneium) and Routescan chains (avalanche), use the `explorerUrl` from `chains.json` instead (no API key needed). + +Parse the response: +```bash +python3 scripts/parse_etherscan.py etherscan_response.json +``` + +Then use `Grep` to search `.sources/` for relevant patterns. + +### 2c: Verify Properties + +Cross-reference the `properties` section against the source code: + +1. **dynamicFee**: Should be `true` if `beforeSwap` returns a fee override via `lpFeeOverride`, or if the hook calls `poolManager.updateDynamicLPFee()`. + +2. **upgradeable**: Should be `true` if the contract uses proxy patterns, `delegatecall`, mutable implementation storage, or `SELFDESTRUCT`. + +3. **requiresCustomSwapData**: Should be `true` if a normal swap with empty `hookData` would **fail, revert, or produce materially incorrect behavior** — i.e. the hook requires specific encoded data (signatures, parameters, routing info, etc.) to function. Should be `false` if swaps work correctly without `hookData`, even if the hook optionally inspects it for ancillary features (e.g. an optional trade referrer). + +4. **vanillaSwap**: Should be `true` if the hook's beforeSwap/afterSwap do not modify swap pricing, amounts, or deltas — only access control, logging, or observation. Should be `true` if the hook has no swap flags. Should be `false` if the hook executes trades, modifies fees, returns deltas, or alters swap mechanics in any way. + +5. **swapAccess**: Should accurately classify the hook's swap access control: `"none"` if no restrictions, `"temporal"` for time-based gates, `"allowlist"` for address-based restrictions, `"governance"` for admin-controlled gates, `"other"` for anything else. + +### 2d: Check Metadata + +- `verifiedSource` should be `true` if Etherscan has verified source code +- `name` should match `ContractName` from Etherscan (or be a reasonable override) +- `description` should accurately describe what the hook does +- `chainId` should match the chain in `chains.json` + +## Step 3: Output Your Review + +Provide your findings as structured JSON. The workflow will post the review for you. + +- If everything checks out, set `outcome` to `"APPROVE"` and summarize your verification in `review_body`. +- If there are issues, set `outcome` to `"REQUEST_CHANGES"` and explain in `review_body` what's wrong and what the correct values should be. From b93d8d820fcaaa5ee6f081deb657827e24d2674c Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:08:33 -0400 Subject: [PATCH 3/7] feat: backfill vanillaSwap and swapAccess properties on all hooks Co-Authored-By: Claude Opus 4.6 (1M context) --- .../0x2097d7329389264a1542ad50802bb0de84a650c4.json | 4 +++- .../0x2a4adf825bd96598487dbb6b2d8d882a4eb86888.json | 4 +++- .../0x9b21e1cdd975e58f714fd1bd5a803198d5520088.json | 4 +++- .../0xc4bf39a096a1b610dd6186935f3ad99c66239080.json | 4 +++- .../0xd73339564ac99f3e09b0ebc80603ff8b796500c0.json | 4 +++- .../0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc.json | 4 +++- .../0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc.json | 4 +++- .../0x3b48f794a1d67febe95f66b6dff38c0a7e934044.json | 4 +++- hooks/base/0x0469a4Bd3724DC86C9542F4694c976DA13C450c0.json | 4 +++- hooks/base/0x04e08a08bab77b389e970a65d91fba8bf4ef6080.json | 4 +++- hooks/base/0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080.json | 4 +++- hooks/base/0x121f94835dab08ebaf084809a97e525b69e400cc.json | 4 +++- hooks/base/0x1258e5f3c71ca9dce95ce734ba5759532e46d040.json | 4 +++- hooks/base/0x167f77c0d015414f65bf3dde7198922c399e2080.json | 4 +++- hooks/base/0x1e0c810a30fb82391df936602c1161421381b0c8.json | 4 +++- hooks/base/0x23321f11a6d44fd1ab790044fdfde5758c902fdc.json | 4 +++- hooks/base/0x2934140dcf6ca98eed60e8e31d3816d038f92080.json | 4 +++- hooks/base/0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC.json | 4 +++- hooks/base/0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc.json | 4 +++- hooks/base/0x2b15a16b3ef024005ba899bb51764fcd58cf9040.json | 4 +++- hooks/base/0x2c56c1302b6224b2bb1906c46f554622e12f10c4.json | 4 +++- hooks/base/0x34a45c6b61876d739400bd71228cbcbd4f53e8cc.json | 4 +++- hooks/base/0x35b9b5b023897da8c7375ba6141245b8416460cc.json | 4 +++- hooks/base/0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8.json | 4 +++- hooks/base/0x4ab61d774b170d0610fdcc5559aae2c356c600c8.json | 4 +++- hooks/base/0x51bba15255406cfe7099a42183302640ba7dafdc.json | 4 +++- hooks/base/0x570a48f96035c2874de1c0f13c5075a05683b0cc.json | 4 +++- hooks/base/0x5798a5e371346c8e4af1dbc166549d360e008044.json | 4 +++- hooks/base/0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8.json | 4 +++- hooks/base/0x5b409184204b86f708d3aebb3cad3f02835f68cc.json | 4 +++- hooks/base/0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040.json | 4 +++- hooks/base/0x5ca33d75df69c4f46093b7eb7f0f6dacace62080.json | 4 +++- hooks/base/0x5cd525c621afca515bf58631d4733fba7b72aae4.json | 4 +++- hooks/base/0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040.json | 4 +++- hooks/base/0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF.json | 4 +++- hooks/base/0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8.json | 4 +++- hooks/base/0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc.json | 4 +++- hooks/base/0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec.json | 4 +++- hooks/base/0x704268ac7043aeef50f47b6a03ae68ccf808e044.json | 4 +++- hooks/base/0x755776c51399f7ee15d47ddaf47347d26f5ca840.json | 4 +++- hooks/base/0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC.json | 4 +++- hooks/base/0x81542dc43aff247eff4a0ecefc286a2973ae1040.json | 4 +++- hooks/base/0x8218fa8d7922e22aed3556a09d5a715f16ad5040.json | 4 +++- hooks/base/0x854f820475b229b7805a386f758cfb285023d040.json | 4 +++- hooks/base/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json | 4 +++- hooks/base/0x8dc3b85e1dc1c846ebf3971179a751896842e5dc.json | 4 +++- hooks/base/0x9301690be9ac901de52c5ebff883862bbfc99040.json | 4 +++- hooks/base/0x95afbc0fccf974b41380f24e562f15b6dd90fac8.json | 4 +++- hooks/base/0x9811f10Cd549c754Fa9E5785989c422A762c28cc.json | 4 +++- hooks/base/0x98Aa253a44497dfa77ec1170e69f851cB17C2000.json | 4 +++- hooks/base/0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0.json | 4 +++- hooks/base/0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888.json | 4 +++- hooks/base/0x9ea932730a7787000042e34390b8e435dd839040.json | 4 +++- hooks/base/0xE0E522e5888e398d9E5d4D90A48c489425cb2888.json | 6 ++++-- hooks/base/0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0.json | 4 +++- hooks/base/0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888.json | 4 +++- hooks/base/0xa1ebdd5ca6470bbd67114331387f2dda7bfad040.json | 4 +++- hooks/base/0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040.json | 4 +++- hooks/base/0xb08211d57032dd10b1974d4b876851a7f7596888.json | 4 +++- hooks/base/0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc.json | 4 +++- hooks/base/0xb476c448da4453208df4e371fee26f4e630d3044.json | 4 +++- hooks/base/0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc.json | 6 ++++-- hooks/base/0xbb7784a4d481184283ed89619a3e3ed143e1adc0.json | 4 +++- hooks/base/0xc3b8e77ac038aa260035a1911827086c34a9e844.json | 4 +++- hooks/base/0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000.json | 4 +++- hooks/base/0xc8d077444625eb300a427a6dfb2b1dbf9b159040.json | 6 ++++-- hooks/base/0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8.json | 4 +++- hooks/base/0xca975b9daf772c71161f3648437c3616e5be0088.json | 4 +++- hooks/base/0xced494a8cc54d593dbc7bdc6f4c61a948c932080.json | 4 +++- hooks/base/0xd3c1f2174f37f88811f99b1b1b4c1356c0246000.json | 4 +++- hooks/base/0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4.json | 4 +++- hooks/base/0xd60d6b218116cfd801e28f78d011a203d2b068cc.json | 4 +++- hooks/base/0xd61a675f8a0c67a73dc3b54fb7318b4d91409040.json | 4 +++- hooks/base/0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc.json | 4 +++- hooks/base/0xe2b4100de1cd284bd364f738d1354715515c90c0.json | 4 +++- hooks/base/0xe61bdf0c9e665f02df20fede6dcef379cb751040.json | 4 +++- hooks/base/0xeA9346e83952840E69Beb36Df365C4e68DE0E080.json | 4 +++- hooks/base/0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80.json | 4 +++- hooks/base/0xf785bb58059fab6fb19bdda2cb9078d9e546efdc.json | 4 +++- hooks/base/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json | 4 +++- hooks/base/0xfbce3d80c659c765bc6c55e29e87d839c7609040.json | 4 +++- hooks/base/0xff74be9d3596ea7a33bb4983dd7906fb34135040.json | 4 +++- hooks/bnb/0x011a8ed40095f2d7e9c19125b8254b19678d68cc.json | 4 +++- hooks/bnb/0x0fcb2c049786054fd35330db361a75a88903a8cc.json | 4 +++- hooks/bnb/0x65ba941cdfec82af6686784ecaf4bc1b45f328cc.json | 4 +++- hooks/bnb/0x8a36d8408f5285c3f81509947bc187b3c0efd0c4.json | 4 +++- hooks/bnb/0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc.json | 4 +++- hooks/bnb/0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc.json | 4 +++- .../0x0000000aa232009084Bd71A5797d089AA4Edfad4.json | 4 +++- .../0x00001f3b9712708127b1fcad61cb892535951888.json | 4 +++- .../0x000b70f7cd351f7479d1aa6f1354d32ed8821080.json | 6 ++++-- .../0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc.json | 4 +++- .../0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888.json | 4 +++- .../0x0fe942afdb2f51e25cbf892aad175c6a574f2888.json | 4 +++- .../0x10865f8301d46a61Badc726DE44d9D4F00F68440.json | 4 +++- .../0x3a3a9a072ab438335a52E0cF064F7ec91D824080.json | 4 +++- .../0x3ba779bad405d9b68a7a7a86ff6916c806a200cc.json | 6 ++++-- .../0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888.json | 4 +++- .../0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888.json | 4 +++- .../0x5287E8915445aee78e10190559D8Dd21E0E9Ea88.json | 4 +++- .../0x5725dF570e0008997daCef46bC179bbFc4D125cc.json | 6 ++++-- .../0x57991106cb7aa27e2771beda0d6522f68524a888.json | 4 +++- .../0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4.json | 4 +++- .../0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc.json | 4 +++- .../0x6e1babe41d708f6d46a89cda1ae46de95458e444.json | 4 +++- .../0x6fb14025194d3921942B269ba49c988fbD3fC0Cc.json | 4 +++- .../0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc.json | 4 +++- .../0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888.json | 4 +++- .../0x8347b7a3807c681513d2b51b8223e59aa16a2888.json | 4 +++- .../0x85b648a64aed6307d5d5ce26e6ae086c17bde888.json | 4 +++- .../0x877323adbf747f85eb8d182d42f01f34a5492888.json | 4 +++- .../0xA312884b73862377317f0071eC6eB5404025A8C4.json | 4 +++- .../0xC804Af6EaA8269C71848e114571f2Dd5314C4044.json | 4 +++- .../0xa88aacf73df2bccfabcfd1e7b597185cac9f2888.json | 4 +++- .../0xaf53cb78035a8e0acce38441793e2648b15b88a0.json | 4 +++- .../0xbadf77d50478b4432ef1f243b9c0bc7869486888.json | 4 +++- .../0xbd15e4d324f8d02479a5ff53b52ef4048a79e444.json | 4 +++- .../0xd53006d1e3110fd319a79aeec4c527a0d265e080.json | 4 +++- .../0xd5770936a6678353f1b17c342b29c4416b029080.json | 4 +++- .../0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444.json | 4 +++- .../0xdad7ea85ff786b389a13f4714a56b1721b56c044.json | 4 +++- .../0xde400595199e6dae55a1bcb742b3eb249af00800.json | 4 +++- .../0xe3c63a9813ac03be0e8618b627cb8170cfa468c4.json | 4 +++- .../0xe54082DfBf044B6a8F584bdDdb90a22d5613C440.json | 4 +++- .../0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4.json | 4 +++- .../0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json | 4 +++- .../0xf9ced7d0f5292af02385410eda5b7570b10b50c4.json | 4 +++- hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json | 4 +++- .../0x480dafdb4d6092ef3217595b75784ec54b52e888.json | 4 +++- .../0xb35297543d357ef62df204d8c3bd0e96038cf440.json | 4 +++- .../polygon/0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc.json | 4 +++- .../0x09dea99d714a3a19378e3d80d1ad22ca46085080.json | 4 +++- .../0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0.json | 4 +++- .../0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc.json | 4 +++- .../0x730b109bad65152c67ecc94eb8b0968603dba888.json | 6 ++++-- .../0x79330fe369c32a03e3b8516aff35b44706e39080.json | 4 +++- .../0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json | 4 +++- .../0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc.json | 4 +++- .../0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc.json | 4 +++- .../0xb9a17e66db950e00822c2b833d6bb304c9b86080.json | 4 +++- .../0xbc6e5abda425309c2534bc2bc92562f5419ce8cc.json | 4 +++- .../0xcc2efb167503f2d7df0eae906600066aec9e8444.json | 4 +++- .../0xcdfcab084b2d29025772141d3bf473bd9673aaa8.json | 4 +++- 143 files changed, 436 insertions(+), 150 deletions(-) diff --git a/hooks/arbitrum/0x2097d7329389264a1542ad50802bb0de84a650c4.json b/hooks/arbitrum/0x2097d7329389264a1542ad50802bb0de84a650c4.json index 3c0ffa1e..a23a39c6 100644 --- a/hooks/arbitrum/0x2097d7329389264a1542ad50802bb0de84a650c4.json +++ b/hooks/arbitrum/0x2097d7329389264a1542ad50802bb0de84a650c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0x2a4adf825bd96598487dbb6b2d8d882a4eb86888.json b/hooks/arbitrum/0x2a4adf825bd96598487dbb6b2d8d882a4eb86888.json index c0cffa95..7fbc4b23 100644 --- a/hooks/arbitrum/0x2a4adf825bd96598487dbb6b2d8d882a4eb86888.json +++ b/hooks/arbitrum/0x2a4adf825bd96598487dbb6b2d8d882a4eb86888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0x9b21e1cdd975e58f714fd1bd5a803198d5520088.json b/hooks/arbitrum/0x9b21e1cdd975e58f714fd1bd5a803198d5520088.json index 8ca1e763..f8d6f046 100644 --- a/hooks/arbitrum/0x9b21e1cdd975e58f714fd1bd5a803198d5520088.json +++ b/hooks/arbitrum/0x9b21e1cdd975e58f714fd1bd5a803198d5520088.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0xc4bf39a096a1b610dd6186935f3ad99c66239080.json b/hooks/arbitrum/0xc4bf39a096a1b610dd6186935f3ad99c66239080.json index 54b34997..edb770ba 100644 --- a/hooks/arbitrum/0xc4bf39a096a1b610dd6186935f3ad99c66239080.json +++ b/hooks/arbitrum/0xc4bf39a096a1b610dd6186935f3ad99c66239080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0xd73339564ac99f3e09b0ebc80603ff8b796500c0.json b/hooks/arbitrum/0xd73339564ac99f3e09b0ebc80603ff8b796500c0.json index f785b7c5..21b4182f 100644 --- a/hooks/arbitrum/0xd73339564ac99f3e09b0ebc80603ff8b796500c0.json +++ b/hooks/arbitrum/0xd73339564ac99f3e09b0ebc80603ff8b796500c0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc.json b/hooks/arbitrum/0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc.json index 178c10f4..6fdef6be 100644 --- a/hooks/arbitrum/0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc.json +++ b/hooks/arbitrum/0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/arbitrum/0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc.json b/hooks/arbitrum/0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc.json index 0c3c0b12..4ecefd8d 100644 --- a/hooks/arbitrum/0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc.json +++ b/hooks/arbitrum/0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/avalanche/0x3b48f794a1d67febe95f66b6dff38c0a7e934044.json b/hooks/avalanche/0x3b48f794a1d67febe95f66b6dff38c0a7e934044.json index 4e49b899..f3f3283a 100644 --- a/hooks/avalanche/0x3b48f794a1d67febe95f66b6dff38c0a7e934044.json +++ b/hooks/avalanche/0x3b48f794a1d67febe95f66b6dff38c0a7e934044.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x0469a4Bd3724DC86C9542F4694c976DA13C450c0.json b/hooks/base/0x0469a4Bd3724DC86C9542F4694c976DA13C450c0.json index ae178b0d..482fdd6a 100644 --- a/hooks/base/0x0469a4Bd3724DC86C9542F4694c976DA13C450c0.json +++ b/hooks/base/0x0469a4Bd3724DC86C9542F4694c976DA13C450c0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x04e08a08bab77b389e970a65d91fba8bf4ef6080.json b/hooks/base/0x04e08a08bab77b389e970a65d91fba8bf4ef6080.json index 80fac248..f229ad34 100644 --- a/hooks/base/0x04e08a08bab77b389e970a65d91fba8bf4ef6080.json +++ b/hooks/base/0x04e08a08bab77b389e970a65d91fba8bf4ef6080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080.json b/hooks/base/0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080.json index 272340ea..8a54986a 100644 --- a/hooks/base/0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080.json +++ b/hooks/base/0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0x121f94835dab08ebaf084809a97e525b69e400cc.json b/hooks/base/0x121f94835dab08ebaf084809a97e525b69e400cc.json index b56f4521..799f545e 100644 --- a/hooks/base/0x121f94835dab08ebaf084809a97e525b69e400cc.json +++ b/hooks/base/0x121f94835dab08ebaf084809a97e525b69e400cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x1258e5f3c71ca9dce95ce734ba5759532e46d040.json b/hooks/base/0x1258e5f3c71ca9dce95ce734ba5759532e46d040.json index 22107cbf..c8f6ad29 100644 --- a/hooks/base/0x1258e5f3c71ca9dce95ce734ba5759532e46d040.json +++ b/hooks/base/0x1258e5f3c71ca9dce95ce734ba5759532e46d040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x167f77c0d015414f65bf3dde7198922c399e2080.json b/hooks/base/0x167f77c0d015414f65bf3dde7198922c399e2080.json index cd1c2a74..371e2cce 100644 --- a/hooks/base/0x167f77c0d015414f65bf3dde7198922c399e2080.json +++ b/hooks/base/0x167f77c0d015414f65bf3dde7198922c399e2080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0x1e0c810a30fb82391df936602c1161421381b0c8.json b/hooks/base/0x1e0c810a30fb82391df936602c1161421381b0c8.json index 87e39f74..5221e950 100644 --- a/hooks/base/0x1e0c810a30fb82391df936602c1161421381b0c8.json +++ b/hooks/base/0x1e0c810a30fb82391df936602c1161421381b0c8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x23321f11a6d44fd1ab790044fdfde5758c902fdc.json b/hooks/base/0x23321f11a6d44fd1ab790044fdfde5758c902fdc.json index a1de1d24..a71fc9a2 100644 --- a/hooks/base/0x23321f11a6d44fd1ab790044fdfde5758c902fdc.json +++ b/hooks/base/0x23321f11a6d44fd1ab790044fdfde5758c902fdc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x2934140dcf6ca98eed60e8e31d3816d038f92080.json b/hooks/base/0x2934140dcf6ca98eed60e8e31d3816d038f92080.json index ad1cfb05..d90582d5 100644 --- a/hooks/base/0x2934140dcf6ca98eed60e8e31d3816d038f92080.json +++ b/hooks/base/0x2934140dcf6ca98eed60e8e31d3816d038f92080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC.json b/hooks/base/0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC.json index 0acccf20..42649a5f 100644 --- a/hooks/base/0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC.json +++ b/hooks/base/0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc.json b/hooks/base/0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc.json index 25a984bb..669e6af8 100644 --- a/hooks/base/0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc.json +++ b/hooks/base/0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x2b15a16b3ef024005ba899bb51764fcd58cf9040.json b/hooks/base/0x2b15a16b3ef024005ba899bb51764fcd58cf9040.json index b6bbb075..472ef52d 100644 --- a/hooks/base/0x2b15a16b3ef024005ba899bb51764fcd58cf9040.json +++ b/hooks/base/0x2b15a16b3ef024005ba899bb51764fcd58cf9040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x2c56c1302b6224b2bb1906c46f554622e12f10c4.json b/hooks/base/0x2c56c1302b6224b2bb1906c46f554622e12f10c4.json index a5675b0d..e4f312f3 100644 --- a/hooks/base/0x2c56c1302b6224b2bb1906c46f554622e12f10c4.json +++ b/hooks/base/0x2c56c1302b6224b2bb1906c46f554622e12f10c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x34a45c6b61876d739400bd71228cbcbd4f53e8cc.json b/hooks/base/0x34a45c6b61876d739400bd71228cbcbd4f53e8cc.json index 6b5e9f28..01a1568c 100644 --- a/hooks/base/0x34a45c6b61876d739400bd71228cbcbd4f53e8cc.json +++ b/hooks/base/0x34a45c6b61876d739400bd71228cbcbd4f53e8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x35b9b5b023897da8c7375ba6141245b8416460cc.json b/hooks/base/0x35b9b5b023897da8c7375ba6141245b8416460cc.json index 1d26de9e..cec86bfc 100644 --- a/hooks/base/0x35b9b5b023897da8c7375ba6141245b8416460cc.json +++ b/hooks/base/0x35b9b5b023897da8c7375ba6141245b8416460cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8.json b/hooks/base/0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8.json index 5b6c9098..417816db 100644 --- a/hooks/base/0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8.json +++ b/hooks/base/0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x4ab61d774b170d0610fdcc5559aae2c356c600c8.json b/hooks/base/0x4ab61d774b170d0610fdcc5559aae2c356c600c8.json index 683cebd3..992059f1 100644 --- a/hooks/base/0x4ab61d774b170d0610fdcc5559aae2c356c600c8.json +++ b/hooks/base/0x4ab61d774b170d0610fdcc5559aae2c356c600c8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x51bba15255406cfe7099a42183302640ba7dafdc.json b/hooks/base/0x51bba15255406cfe7099a42183302640ba7dafdc.json index fe208e69..471f9607 100644 --- a/hooks/base/0x51bba15255406cfe7099a42183302640ba7dafdc.json +++ b/hooks/base/0x51bba15255406cfe7099a42183302640ba7dafdc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x570a48f96035c2874de1c0f13c5075a05683b0cc.json b/hooks/base/0x570a48f96035c2874de1c0f13c5075a05683b0cc.json index 79dbb3f6..177edc0c 100644 --- a/hooks/base/0x570a48f96035c2874de1c0f13c5075a05683b0cc.json +++ b/hooks/base/0x570a48f96035c2874de1c0f13c5075a05683b0cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5798a5e371346c8e4af1dbc166549d360e008044.json b/hooks/base/0x5798a5e371346c8e4af1dbc166549d360e008044.json index 1c0ff969..d16ee5ad 100644 --- a/hooks/base/0x5798a5e371346c8e4af1dbc166549d360e008044.json +++ b/hooks/base/0x5798a5e371346c8e4af1dbc166549d360e008044.json @@ -26,6 +26,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8.json b/hooks/base/0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8.json index bd06e829..e6e3813f 100644 --- a/hooks/base/0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8.json +++ b/hooks/base/0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5b409184204b86f708d3aebb3cad3f02835f68cc.json b/hooks/base/0x5b409184204b86f708d3aebb3cad3f02835f68cc.json index 1da722c7..80f95040 100644 --- a/hooks/base/0x5b409184204b86f708d3aebb3cad3f02835f68cc.json +++ b/hooks/base/0x5b409184204b86f708d3aebb3cad3f02835f68cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040.json b/hooks/base/0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040.json index 4493c9ed..d74af7fe 100644 --- a/hooks/base/0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040.json +++ b/hooks/base/0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5ca33d75df69c4f46093b7eb7f0f6dacace62080.json b/hooks/base/0x5ca33d75df69c4f46093b7eb7f0f6dacace62080.json index c091e637..1a6894ca 100644 --- a/hooks/base/0x5ca33d75df69c4f46093b7eb7f0f6dacace62080.json +++ b/hooks/base/0x5ca33d75df69c4f46093b7eb7f0f6dacace62080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0x5cd525c621afca515bf58631d4733fba7b72aae4.json b/hooks/base/0x5cd525c621afca515bf58631d4733fba7b72aae4.json index eb2d00d8..077788fd 100644 --- a/hooks/base/0x5cd525c621afca515bf58631d4733fba7b72aae4.json +++ b/hooks/base/0x5cd525c621afca515bf58631d4733fba7b72aae4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040.json b/hooks/base/0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040.json index 3c2603f9..a7a58ab3 100644 --- a/hooks/base/0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040.json +++ b/hooks/base/0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF.json b/hooks/base/0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF.json index 0bddea31..76e3072d 100644 --- a/hooks/base/0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF.json +++ b/hooks/base/0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8.json b/hooks/base/0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8.json index 61a4eb24..f0c1d03d 100644 --- a/hooks/base/0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8.json +++ b/hooks/base/0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc.json b/hooks/base/0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc.json index c0f523b1..ee4bd7a2 100644 --- a/hooks/base/0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc.json +++ b/hooks/base/0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec.json b/hooks/base/0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec.json index dd3b8c36..a27e4a34 100644 --- a/hooks/base/0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec.json +++ b/hooks/base/0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x704268ac7043aeef50f47b6a03ae68ccf808e044.json b/hooks/base/0x704268ac7043aeef50f47b6a03ae68ccf808e044.json index b6f4a3bc..9a40c5f5 100644 --- a/hooks/base/0x704268ac7043aeef50f47b6a03ae68ccf808e044.json +++ b/hooks/base/0x704268ac7043aeef50f47b6a03ae68ccf808e044.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x755776c51399f7ee15d47ddaf47347d26f5ca840.json b/hooks/base/0x755776c51399f7ee15d47ddaf47347d26f5ca840.json index b3d4427a..ec1ac09a 100644 --- a/hooks/base/0x755776c51399f7ee15d47ddaf47347d26f5ca840.json +++ b/hooks/base/0x755776c51399f7ee15d47ddaf47347d26f5ca840.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC.json b/hooks/base/0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC.json index 555679cb..0e86b10c 100644 --- a/hooks/base/0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC.json +++ b/hooks/base/0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x81542dc43aff247eff4a0ecefc286a2973ae1040.json b/hooks/base/0x81542dc43aff247eff4a0ecefc286a2973ae1040.json index a4de633e..d829eec8 100644 --- a/hooks/base/0x81542dc43aff247eff4a0ecefc286a2973ae1040.json +++ b/hooks/base/0x81542dc43aff247eff4a0ecefc286a2973ae1040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x8218fa8d7922e22aed3556a09d5a715f16ad5040.json b/hooks/base/0x8218fa8d7922e22aed3556a09d5a715f16ad5040.json index ac30b784..24706bba 100644 --- a/hooks/base/0x8218fa8d7922e22aed3556a09d5a715f16ad5040.json +++ b/hooks/base/0x8218fa8d7922e22aed3556a09d5a715f16ad5040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x854f820475b229b7805a386f758cfb285023d040.json b/hooks/base/0x854f820475b229b7805a386f758cfb285023d040.json index 801553dd..6cb402f1 100644 --- a/hooks/base/0x854f820475b229b7805a386f758cfb285023d040.json +++ b/hooks/base/0x854f820475b229b7805a386f758cfb285023d040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json b/hooks/base/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json index 0c0e9042..2590660f 100644 --- a/hooks/base/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json +++ b/hooks/base/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x8dc3b85e1dc1c846ebf3971179a751896842e5dc.json b/hooks/base/0x8dc3b85e1dc1c846ebf3971179a751896842e5dc.json index 44d21b71..5898cca1 100644 --- a/hooks/base/0x8dc3b85e1dc1c846ebf3971179a751896842e5dc.json +++ b/hooks/base/0x8dc3b85e1dc1c846ebf3971179a751896842e5dc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x9301690be9ac901de52c5ebff883862bbfc99040.json b/hooks/base/0x9301690be9ac901de52c5ebff883862bbfc99040.json index b44ababc..2da78c14 100644 --- a/hooks/base/0x9301690be9ac901de52c5ebff883862bbfc99040.json +++ b/hooks/base/0x9301690be9ac901de52c5ebff883862bbfc99040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x95afbc0fccf974b41380f24e562f15b6dd90fac8.json b/hooks/base/0x95afbc0fccf974b41380f24e562f15b6dd90fac8.json index e3fc5978..e5b2b0a4 100644 --- a/hooks/base/0x95afbc0fccf974b41380f24e562f15b6dd90fac8.json +++ b/hooks/base/0x95afbc0fccf974b41380f24e562f15b6dd90fac8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x9811f10Cd549c754Fa9E5785989c422A762c28cc.json b/hooks/base/0x9811f10Cd549c754Fa9E5785989c422A762c28cc.json index c7d050ec..04187385 100644 --- a/hooks/base/0x9811f10Cd549c754Fa9E5785989c422A762c28cc.json +++ b/hooks/base/0x9811f10Cd549c754Fa9E5785989c422A762c28cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x98Aa253a44497dfa77ec1170e69f851cB17C2000.json b/hooks/base/0x98Aa253a44497dfa77ec1170e69f851cB17C2000.json index 8bc12868..88b496f0 100644 --- a/hooks/base/0x98Aa253a44497dfa77ec1170e69f851cB17C2000.json +++ b/hooks/base/0x98Aa253a44497dfa77ec1170e69f851cB17C2000.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } diff --git a/hooks/base/0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0.json b/hooks/base/0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0.json index 1a04b170..9de4e1ee 100644 --- a/hooks/base/0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0.json +++ b/hooks/base/0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888.json b/hooks/base/0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888.json index 284d6960..d3285d2c 100644 --- a/hooks/base/0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888.json +++ b/hooks/base/0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0x9ea932730a7787000042e34390b8e435dd839040.json b/hooks/base/0x9ea932730a7787000042e34390b8e435dd839040.json index 64b515ca..36c7764b 100644 --- a/hooks/base/0x9ea932730a7787000042e34390b8e435dd839040.json +++ b/hooks/base/0x9ea932730a7787000042e34390b8e435dd839040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xE0E522e5888e398d9E5d4D90A48c489425cb2888.json b/hooks/base/0xE0E522e5888e398d9E5d4D90A48c489425cb2888.json index 802b6bdd..5a152aa8 100644 --- a/hooks/base/0xE0E522e5888e398d9E5d4D90A48c489425cb2888.json +++ b/hooks/base/0xE0E522e5888e398d9E5d4D90A48c489425cb2888.json @@ -4,7 +4,7 @@ "chain": "base", "chainId": 8453, "name": "SETHHook", - "description": "A Uniswap v4 hook that enables 1:1 wrapping and unwrapping of Superfluid's Native Asset SuperToken (ETHx/SETH) within a pool. It intercepts swaps to handle ETH → ETHx deposits via the SETH upgradeByETH mechanism and ETHx → ETH withdrawals via downgradeToETH, with no liquidity allowed in the pool.", + "description": "A Uniswap v4 hook that enables 1:1 wrapping and unwrapping of Superfluid's Native Asset SuperToken (ETHx/SETH) within a pool. It intercepts swaps to handle ETH \u2192 ETHx deposits via the SETH upgradeByETH mechanism and ETHx \u2192 ETH withdrawals via downgradeToETH, with no liquidity allowed in the pool.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0.json b/hooks/base/0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0.json index b82df30f..18edcd92 100644 --- a/hooks/base/0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0.json +++ b/hooks/base/0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888.json b/hooks/base/0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888.json index 2a80ed14..de18ac63 100644 --- a/hooks/base/0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888.json +++ b/hooks/base/0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xa1ebdd5ca6470bbd67114331387f2dda7bfad040.json b/hooks/base/0xa1ebdd5ca6470bbd67114331387f2dda7bfad040.json index 2b5385cc..3a643a2b 100644 --- a/hooks/base/0xa1ebdd5ca6470bbd67114331387f2dda7bfad040.json +++ b/hooks/base/0xa1ebdd5ca6470bbd67114331387f2dda7bfad040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040.json b/hooks/base/0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040.json index a95415ff..03d3ca95 100644 --- a/hooks/base/0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040.json +++ b/hooks/base/0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xb08211d57032dd10b1974d4b876851a7f7596888.json b/hooks/base/0xb08211d57032dd10b1974d4b876851a7f7596888.json index 3a5d4284..b1fd722b 100644 --- a/hooks/base/0xb08211d57032dd10b1974d4b876851a7f7596888.json +++ b/hooks/base/0xb08211d57032dd10b1974d4b876851a7f7596888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc.json b/hooks/base/0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc.json index 9f8acafd..4be8594c 100644 --- a/hooks/base/0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc.json +++ b/hooks/base/0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xb476c448da4453208df4e371fee26f4e630d3044.json b/hooks/base/0xb476c448da4453208df4e371fee26f4e630d3044.json index 8e7cd795..d683dfa9 100644 --- a/hooks/base/0xb476c448da4453208df4e371fee26f4e630d3044.json +++ b/hooks/base/0xb476c448da4453208df4e371fee26f4e630d3044.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc.json b/hooks/base/0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc.json index 2eeb855b..916abcc3 100644 --- a/hooks/base/0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc.json +++ b/hooks/base/0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc.json @@ -4,7 +4,7 @@ "chain": "base", "chainId": 8453, "name": "Flaunch POSM v3 (Base)", - "description": "A Uniswap v4 hook that manages the full lifecycle of memecoin token launches (\"flaunches\") — including a fair launch window, an internal swap pool for fee recycling, a BidWall for ETH liquidity concentration, and configurable fee distribution to creators and referrers.", + "description": "A Uniswap v4 hook that manages the full lifecycle of memecoin token launches (\"flaunches\") \u2014 including a fair launch window, an internal swap pool for fee recycling, a BidWall for ETH liquidity concentration, and configurable fee distribution to creators and referrers.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xbb7784a4d481184283ed89619a3e3ed143e1adc0.json b/hooks/base/0xbb7784a4d481184283ed89619a3e3ed143e1adc0.json index c88bbc06..96654f2a 100644 --- a/hooks/base/0xbb7784a4d481184283ed89619a3e3ed143e1adc0.json +++ b/hooks/base/0xbb7784a4d481184283ed89619a3e3ed143e1adc0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xc3b8e77ac038aa260035a1911827086c34a9e844.json b/hooks/base/0xc3b8e77ac038aa260035a1911827086c34a9e844.json index 741c800d..972bd3be 100644 --- a/hooks/base/0xc3b8e77ac038aa260035a1911827086c34a9e844.json +++ b/hooks/base/0xc3b8e77ac038aa260035a1911827086c34a9e844.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000.json b/hooks/base/0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000.json index d0e44e16..50292323 100644 --- a/hooks/base/0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000.json +++ b/hooks/base/0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } diff --git a/hooks/base/0xc8d077444625eb300a427a6dfb2b1dbf9b159040.json b/hooks/base/0xc8d077444625eb300a427a6dfb2b1dbf9b159040.json index 13620c43..0f014364 100644 --- a/hooks/base/0xc8d077444625eb300a427a6dfb2b1dbf9b159040.json +++ b/hooks/base/0xc8d077444625eb300a427a6dfb2b1dbf9b159040.json @@ -4,7 +4,7 @@ "chain": "base", "chainId": 8453, "name": "Zora Post Hook v2.3.0 (Base)", - "description": "Uniswap v4 hook for Zora Coins that automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards — with optional trade referral support via hookData and hook migration managed through a registered upgrade gate.", + "description": "Uniswap v4 hook for Zora Coins that automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards \u2014 with optional trade referral support via hookData and hook migration managed through a registered upgrade gate.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8.json b/hooks/base/0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8.json index 0ecf0288..689407c9 100644 --- a/hooks/base/0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8.json +++ b/hooks/base/0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xca975b9daf772c71161f3648437c3616e5be0088.json b/hooks/base/0xca975b9daf772c71161f3648437c3616e5be0088.json index 73e16772..75582b75 100644 --- a/hooks/base/0xca975b9daf772c71161f3648437c3616e5be0088.json +++ b/hooks/base/0xca975b9daf772c71161f3648437c3616e5be0088.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xced494a8cc54d593dbc7bdc6f4c61a948c932080.json b/hooks/base/0xced494a8cc54d593dbc7bdc6f4c61a948c932080.json index e79cf512..3fcc569c 100644 --- a/hooks/base/0xced494a8cc54d593dbc7bdc6f4c61a948c932080.json +++ b/hooks/base/0xced494a8cc54d593dbc7bdc6f4c61a948c932080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/base/0xd3c1f2174f37f88811f99b1b1b4c1356c0246000.json b/hooks/base/0xd3c1f2174f37f88811f99b1b1b4c1356c0246000.json index 0ac7342e..768150ac 100644 --- a/hooks/base/0xd3c1f2174f37f88811f99b1b1b4c1356c0246000.json +++ b/hooks/base/0xd3c1f2174f37f88811f99b1b1b4c1356c0246000.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } diff --git a/hooks/base/0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4.json b/hooks/base/0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4.json index 5f750a9e..7a2e180c 100644 --- a/hooks/base/0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4.json +++ b/hooks/base/0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xd60d6b218116cfd801e28f78d011a203d2b068cc.json b/hooks/base/0xd60d6b218116cfd801e28f78d011a203d2b068cc.json index 9247434c..a7dd2b12 100644 --- a/hooks/base/0xd60d6b218116cfd801e28f78d011a203d2b068cc.json +++ b/hooks/base/0xd60d6b218116cfd801e28f78d011a203d2b068cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xd61a675f8a0c67a73dc3b54fb7318b4d91409040.json b/hooks/base/0xd61a675f8a0c67a73dc3b54fb7318b4d91409040.json index 060fc2ad..ac7784f7 100644 --- a/hooks/base/0xd61a675f8a0c67a73dc3b54fb7318b4d91409040.json +++ b/hooks/base/0xd61a675f8a0c67a73dc3b54fb7318b4d91409040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc.json b/hooks/base/0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc.json index 2a587f9d..5395ad82 100644 --- a/hooks/base/0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc.json +++ b/hooks/base/0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xe2b4100de1cd284bd364f738d1354715515c90c0.json b/hooks/base/0xe2b4100de1cd284bd364f738d1354715515c90c0.json index b0afe43e..3b2b6d08 100644 --- a/hooks/base/0xe2b4100de1cd284bd364f738d1354715515c90c0.json +++ b/hooks/base/0xe2b4100de1cd284bd364f738d1354715515c90c0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xe61bdf0c9e665f02df20fede6dcef379cb751040.json b/hooks/base/0xe61bdf0c9e665f02df20fede6dcef379cb751040.json index 01dfed4e..62e6208d 100644 --- a/hooks/base/0xe61bdf0c9e665f02df20fede6dcef379cb751040.json +++ b/hooks/base/0xe61bdf0c9e665f02df20fede6dcef379cb751040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xeA9346e83952840E69Beb36Df365C4e68DE0E080.json b/hooks/base/0xeA9346e83952840E69Beb36Df365C4e68DE0E080.json index f7b91fbb..1c75b02e 100644 --- a/hooks/base/0xeA9346e83952840E69Beb36Df365C4e68DE0E080.json +++ b/hooks/base/0xeA9346e83952840E69Beb36Df365C4e68DE0E080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80.json b/hooks/base/0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80.json index c228490b..f34a557f 100644 --- a/hooks/base/0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80.json +++ b/hooks/base/0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xf785bb58059fab6fb19bdda2cb9078d9e546efdc.json b/hooks/base/0xf785bb58059fab6fb19bdda2cb9078d9e546efdc.json index 61e60de3..cd106e20 100644 --- a/hooks/base/0xf785bb58059fab6fb19bdda2cb9078d9e546efdc.json +++ b/hooks/base/0xf785bb58059fab6fb19bdda2cb9078d9e546efdc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json b/hooks/base/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json index 0392a29d..a7775501 100644 --- a/hooks/base/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json +++ b/hooks/base/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xfbce3d80c659c765bc6c55e29e87d839c7609040.json b/hooks/base/0xfbce3d80c659c765bc6c55e29e87d839c7609040.json index e6f579c6..685fc485 100644 --- a/hooks/base/0xfbce3d80c659c765bc6c55e29e87d839c7609040.json +++ b/hooks/base/0xfbce3d80c659c765bc6c55e29e87d839c7609040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/base/0xff74be9d3596ea7a33bb4983dd7906fb34135040.json b/hooks/base/0xff74be9d3596ea7a33bb4983dd7906fb34135040.json index 1babf933..f4539359 100644 --- a/hooks/base/0xff74be9d3596ea7a33bb4983dd7906fb34135040.json +++ b/hooks/base/0xff74be9d3596ea7a33bb4983dd7906fb34135040.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0x011a8ed40095f2d7e9c19125b8254b19678d68cc.json b/hooks/bnb/0x011a8ed40095f2d7e9c19125b8254b19678d68cc.json index 0d81cd83..ba405c88 100644 --- a/hooks/bnb/0x011a8ed40095f2d7e9c19125b8254b19678d68cc.json +++ b/hooks/bnb/0x011a8ed40095f2d7e9c19125b8254b19678d68cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0x0fcb2c049786054fd35330db361a75a88903a8cc.json b/hooks/bnb/0x0fcb2c049786054fd35330db361a75a88903a8cc.json index f080c6f4..02c0d4c6 100644 --- a/hooks/bnb/0x0fcb2c049786054fd35330db361a75a88903a8cc.json +++ b/hooks/bnb/0x0fcb2c049786054fd35330db361a75a88903a8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0x65ba941cdfec82af6686784ecaf4bc1b45f328cc.json b/hooks/bnb/0x65ba941cdfec82af6686784ecaf4bc1b45f328cc.json index f5afcb9c..be471ab5 100644 --- a/hooks/bnb/0x65ba941cdfec82af6686784ecaf4bc1b45f328cc.json +++ b/hooks/bnb/0x65ba941cdfec82af6686784ecaf4bc1b45f328cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0x8a36d8408f5285c3f81509947bc187b3c0efd0c4.json b/hooks/bnb/0x8a36d8408f5285c3f81509947bc187b3c0efd0c4.json index edf08ee5..d342e857 100644 --- a/hooks/bnb/0x8a36d8408f5285c3f81509947bc187b3c0efd0c4.json +++ b/hooks/bnb/0x8a36d8408f5285c3f81509947bc187b3c0efd0c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc.json b/hooks/bnb/0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc.json index 067b50f6..8f75e2c3 100644 --- a/hooks/bnb/0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc.json +++ b/hooks/bnb/0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/bnb/0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc.json b/hooks/bnb/0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc.json index 827b5212..16bf3fba 100644 --- a/hooks/bnb/0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc.json +++ b/hooks/bnb/0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x0000000aa232009084Bd71A5797d089AA4Edfad4.json b/hooks/ethereum/0x0000000aa232009084Bd71A5797d089AA4Edfad4.json index ef17b308..c49a3c6e 100644 --- a/hooks/ethereum/0x0000000aa232009084Bd71A5797d089AA4Edfad4.json +++ b/hooks/ethereum/0x0000000aa232009084Bd71A5797d089AA4Edfad4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x00001f3b9712708127b1fcad61cb892535951888.json b/hooks/ethereum/0x00001f3b9712708127b1fcad61cb892535951888.json index ae96d5a1..e657e173 100644 --- a/hooks/ethereum/0x00001f3b9712708127b1fcad61cb892535951888.json +++ b/hooks/ethereum/0x00001f3b9712708127b1fcad61cb892535951888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x000b70f7cd351f7479d1aa6f1354d32ed8821080.json b/hooks/ethereum/0x000b70f7cd351f7479d1aa6f1354d32ed8821080.json index 3957ad52..7efdbe04 100644 --- a/hooks/ethereum/0x000b70f7cd351f7479d1aa6f1354d32ed8821080.json +++ b/hooks/ethereum/0x000b70f7cd351f7479d1aa6f1354d32ed8821080.json @@ -4,7 +4,7 @@ "chain": "ethereum", "chainId": 1, "name": "Nuclear Man's Pool Trader Hook", - "description": "A dynamic fee hook that adjusts LP fees based on volatility by comparing spot price from a Uniswap V2 pair against an exponential moving average filter — keeping fees low during calm markets and raising them up to 25% during high-volatility periods. It also collects a configurable developer fee on each swap.", + "description": "A dynamic fee hook that adjusts LP fees based on volatility by comparing spot price from a Uniswap V2 pair against an exponential moving average filter \u2014 keeping fees low during calm markets and raising them up to 25% during high-volatility periods. It also collects a configurable developer fee on each swap.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc.json b/hooks/ethereum/0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc.json index c52397fb..d2e17335 100644 --- a/hooks/ethereum/0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc.json +++ b/hooks/ethereum/0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888.json b/hooks/ethereum/0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888.json index 11002ed1..9656447a 100644 --- a/hooks/ethereum/0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888.json +++ b/hooks/ethereum/0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x0fe942afdb2f51e25cbf892aad175c6a574f2888.json b/hooks/ethereum/0x0fe942afdb2f51e25cbf892aad175c6a574f2888.json index 3f87df6a..97712770 100644 --- a/hooks/ethereum/0x0fe942afdb2f51e25cbf892aad175c6a574f2888.json +++ b/hooks/ethereum/0x0fe942afdb2f51e25cbf892aad175c6a574f2888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x10865f8301d46a61Badc726DE44d9D4F00F68440.json b/hooks/ethereum/0x10865f8301d46a61Badc726DE44d9D4F00F68440.json index dfdd631b..6fb6f496 100644 --- a/hooks/ethereum/0x10865f8301d46a61Badc726DE44d9D4F00F68440.json +++ b/hooks/ethereum/0x10865f8301d46a61Badc726DE44d9D4F00F68440.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x3a3a9a072ab438335a52E0cF064F7ec91D824080.json b/hooks/ethereum/0x3a3a9a072ab438335a52E0cF064F7ec91D824080.json index 8ec962ea..831d5aa6 100644 --- a/hooks/ethereum/0x3a3a9a072ab438335a52E0cF064F7ec91D824080.json +++ b/hooks/ethereum/0x3a3a9a072ab438335a52E0cF064F7ec91D824080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x3ba779bad405d9b68a7a7a86ff6916c806a200cc.json b/hooks/ethereum/0x3ba779bad405d9b68a7a7a86ff6916c806a200cc.json index 2a21fd97..5c6bf3af 100644 --- a/hooks/ethereum/0x3ba779bad405d9b68a7a7a86ff6916c806a200cc.json +++ b/hooks/ethereum/0x3ba779bad405d9b68a7a7a86ff6916c806a200cc.json @@ -4,7 +4,7 @@ "chain": "ethereum", "chainId": 1, "name": "Meme Strategy Hook (Ethereum)", - "description": "A Uniswap v4 hook for the MEMS meme token that collects dynamic asymmetric swap fees (Phase 1: 50%, Phase 2: 10–90%) on ETH\u2194MEMS swaps, splitting proceeds 80/20 between a strategy contract and treasury. Includes anti-snipe protection that blocks public swaps until trading is activated by the strategy.", + "description": "A Uniswap v4 hook for the MEMS meme token that collects dynamic asymmetric swap fees (Phase 1: 50%, Phase 2: 10\u201390%) on ETH\u2194MEMS swaps, splitting proceeds 80/20 between a strategy contract and treasury. Includes anti-snipe protection that blocks public swaps until trading is activated by the strategy.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888.json b/hooks/ethereum/0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888.json index c5838d1a..5555ca8c 100644 --- a/hooks/ethereum/0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888.json +++ b/hooks/ethereum/0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888.json b/hooks/ethereum/0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888.json index 9f9316de..b1099197 100644 --- a/hooks/ethereum/0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888.json +++ b/hooks/ethereum/0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x5287E8915445aee78e10190559D8Dd21E0E9Ea88.json b/hooks/ethereum/0x5287E8915445aee78e10190559D8Dd21E0E9Ea88.json index dfac73c8..a7793836 100644 --- a/hooks/ethereum/0x5287E8915445aee78e10190559D8Dd21E0E9Ea88.json +++ b/hooks/ethereum/0x5287E8915445aee78e10190559D8Dd21E0E9Ea88.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x5725dF570e0008997daCef46bC179bbFc4D125cc.json b/hooks/ethereum/0x5725dF570e0008997daCef46bC179bbFc4D125cc.json index a4f25c70..b0a0c3ac 100644 --- a/hooks/ethereum/0x5725dF570e0008997daCef46bC179bbFc4D125cc.json +++ b/hooks/ethereum/0x5725dF570e0008997daCef46bC179bbFc4D125cc.json @@ -4,7 +4,7 @@ "chain": "ethereum", "chainId": 1, "name": "Auto Liquidity Generator", - "description": "Collects configurable buy and sell taxes (in WETH) on every swap. Once accumulated fees reach a configurable threshold, deducts a platform fee (20–50% of the accumulated amount) sent to a designated collector, then uses the remainder to buy the paired token and add full-range protocol-owned liquidity. Residual tokens after liquidity addition are burned.", + "description": "Collects configurable buy and sell taxes (in WETH) on every swap. Once accumulated fees reach a configurable threshold, deducts a platform fee (20\u201350% of the accumulated amount) sent to a designated collector, then uses the remainder to buy the paired token and add full-range protocol-owned liquidity. Residual tokens after liquidity addition are burned.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x57991106cb7aa27e2771beda0d6522f68524a888.json b/hooks/ethereum/0x57991106cb7aa27e2771beda0d6522f68524a888.json index 11e17027..0b797d78 100644 --- a/hooks/ethereum/0x57991106cb7aa27e2771beda0d6522f68524a888.json +++ b/hooks/ethereum/0x57991106cb7aa27e2771beda0d6522f68524a888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4.json b/hooks/ethereum/0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4.json index babff767..d27b6dc6 100644 --- a/hooks/ethereum/0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4.json +++ b/hooks/ethereum/0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc.json b/hooks/ethereum/0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc.json index e5f0f3c2..c2a79028 100644 --- a/hooks/ethereum/0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc.json +++ b/hooks/ethereum/0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x6e1babe41d708f6d46a89cda1ae46de95458e444.json b/hooks/ethereum/0x6e1babe41d708f6d46a89cda1ae46de95458e444.json index 1bcc2694..dad19a17 100644 --- a/hooks/ethereum/0x6e1babe41d708f6d46a89cda1ae46de95458e444.json +++ b/hooks/ethereum/0x6e1babe41d708f6d46a89cda1ae46de95458e444.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x6fb14025194d3921942B269ba49c988fbD3fC0Cc.json b/hooks/ethereum/0x6fb14025194d3921942B269ba49c988fbD3fC0Cc.json index 8a314670..cf92bc3e 100644 --- a/hooks/ethereum/0x6fb14025194d3921942B269ba49c988fbD3fC0Cc.json +++ b/hooks/ethereum/0x6fb14025194d3921942B269ba49c988fbD3fC0Cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc.json b/hooks/ethereum/0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc.json index 52ca17b8..a24b4b67 100644 --- a/hooks/ethereum/0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc.json +++ b/hooks/ethereum/0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888.json b/hooks/ethereum/0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888.json index 83276e72..b134e88f 100644 --- a/hooks/ethereum/0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888.json +++ b/hooks/ethereum/0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x8347b7a3807c681513d2b51b8223e59aa16a2888.json b/hooks/ethereum/0x8347b7a3807c681513d2b51b8223e59aa16a2888.json index 079a0553..e7c45d8c 100644 --- a/hooks/ethereum/0x8347b7a3807c681513d2b51b8223e59aa16a2888.json +++ b/hooks/ethereum/0x8347b7a3807c681513d2b51b8223e59aa16a2888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x85b648a64aed6307d5d5ce26e6ae086c17bde888.json b/hooks/ethereum/0x85b648a64aed6307d5d5ce26e6ae086c17bde888.json index dd1a67be..f66f211b 100644 --- a/hooks/ethereum/0x85b648a64aed6307d5d5ce26e6ae086c17bde888.json +++ b/hooks/ethereum/0x85b648a64aed6307d5d5ce26e6ae086c17bde888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0x877323adbf747f85eb8d182d42f01f34a5492888.json b/hooks/ethereum/0x877323adbf747f85eb8d182d42f01f34a5492888.json index 9a5d449a..98624969 100644 --- a/hooks/ethereum/0x877323adbf747f85eb8d182d42f01f34a5492888.json +++ b/hooks/ethereum/0x877323adbf747f85eb8d182d42f01f34a5492888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xA312884b73862377317f0071eC6eB5404025A8C4.json b/hooks/ethereum/0xA312884b73862377317f0071eC6eB5404025A8C4.json index fb70e9d0..09493928 100644 --- a/hooks/ethereum/0xA312884b73862377317f0071eC6eB5404025A8C4.json +++ b/hooks/ethereum/0xA312884b73862377317f0071eC6eB5404025A8C4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xC804Af6EaA8269C71848e114571f2Dd5314C4044.json b/hooks/ethereum/0xC804Af6EaA8269C71848e114571f2Dd5314C4044.json index 970296b3..0bff7af5 100644 --- a/hooks/ethereum/0xC804Af6EaA8269C71848e114571f2Dd5314C4044.json +++ b/hooks/ethereum/0xC804Af6EaA8269C71848e114571f2Dd5314C4044.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xa88aacf73df2bccfabcfd1e7b597185cac9f2888.json b/hooks/ethereum/0xa88aacf73df2bccfabcfd1e7b597185cac9f2888.json index 1c4bb3de..da6d78d7 100644 --- a/hooks/ethereum/0xa88aacf73df2bccfabcfd1e7b597185cac9f2888.json +++ b/hooks/ethereum/0xa88aacf73df2bccfabcfd1e7b597185cac9f2888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json b/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json index bae49439..1ce0a7cb 100644 --- a/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json +++ b/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xbadf77d50478b4432ef1f243b9c0bc7869486888.json b/hooks/ethereum/0xbadf77d50478b4432ef1f243b9c0bc7869486888.json index 11c62cec..c50f5396 100644 --- a/hooks/ethereum/0xbadf77d50478b4432ef1f243b9c0bc7869486888.json +++ b/hooks/ethereum/0xbadf77d50478b4432ef1f243b9c0bc7869486888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xbd15e4d324f8d02479a5ff53b52ef4048a79e444.json b/hooks/ethereum/0xbd15e4d324f8d02479a5ff53b52ef4048a79e444.json index 3332616b..c8d0d7c4 100644 --- a/hooks/ethereum/0xbd15e4d324f8d02479a5ff53b52ef4048a79e444.json +++ b/hooks/ethereum/0xbd15e4d324f8d02479a5ff53b52ef4048a79e444.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xd53006d1e3110fd319a79aeec4c527a0d265e080.json b/hooks/ethereum/0xd53006d1e3110fd319a79aeec4c527a0d265e080.json index 88af89b0..0b38d459 100644 --- a/hooks/ethereum/0xd53006d1e3110fd319a79aeec4c527a0d265e080.json +++ b/hooks/ethereum/0xd53006d1e3110fd319a79aeec4c527a0d265e080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } } diff --git a/hooks/ethereum/0xd5770936a6678353f1b17c342b29c4416b029080.json b/hooks/ethereum/0xd5770936a6678353f1b17c342b29c4416b029080.json index c924a984..6b4bf328 100644 --- a/hooks/ethereum/0xd5770936a6678353f1b17c342b29c4416b029080.json +++ b/hooks/ethereum/0xd5770936a6678353f1b17c342b29c4416b029080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444.json b/hooks/ethereum/0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444.json index 88fc182a..ce4f401d 100644 --- a/hooks/ethereum/0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444.json +++ b/hooks/ethereum/0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xdad7ea85ff786b389a13f4714a56b1721b56c044.json b/hooks/ethereum/0xdad7ea85ff786b389a13f4714a56b1721b56c044.json index 9a277fd8..005162f2 100644 --- a/hooks/ethereum/0xdad7ea85ff786b389a13f4714a56b1721b56c044.json +++ b/hooks/ethereum/0xdad7ea85ff786b389a13f4714a56b1721b56c044.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xde400595199e6dae55a1bcb742b3eb249af00800.json b/hooks/ethereum/0xde400595199e6dae55a1bcb742b3eb249af00800.json index 4e91851c..ac59088b 100644 --- a/hooks/ethereum/0xde400595199e6dae55a1bcb742b3eb249af00800.json +++ b/hooks/ethereum/0xde400595199e6dae55a1bcb742b3eb249af00800.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xe3c63a9813ac03be0e8618b627cb8170cfa468c4.json b/hooks/ethereum/0xe3c63a9813ac03be0e8618b627cb8170cfa468c4.json index 4b2d5f96..9e35a85e 100644 --- a/hooks/ethereum/0xe3c63a9813ac03be0e8618b627cb8170cfa468c4.json +++ b/hooks/ethereum/0xe3c63a9813ac03be0e8618b627cb8170cfa468c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xe54082DfBf044B6a8F584bdDdb90a22d5613C440.json b/hooks/ethereum/0xe54082DfBf044B6a8F584bdDdb90a22d5613C440.json index 4ea87d3d..9b12c4b9 100644 --- a/hooks/ethereum/0xe54082DfBf044B6a8F584bdDdb90a22d5613C440.json +++ b/hooks/ethereum/0xe54082DfBf044B6a8F584bdDdb90a22d5613C440.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4.json b/hooks/ethereum/0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4.json index 06b36991..66553b6a 100644 --- a/hooks/ethereum/0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4.json +++ b/hooks/ethereum/0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json b/hooks/ethereum/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json index 4501cb53..e38936d6 100644 --- a/hooks/ethereum/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json +++ b/hooks/ethereum/0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/ethereum/0xf9ced7d0f5292af02385410eda5b7570b10b50c4.json b/hooks/ethereum/0xf9ced7d0f5292af02385410eda5b7570b10b50c4.json index d85232c5..5dd04afd 100644 --- a/hooks/ethereum/0xf9ced7d0f5292af02385410eda5b7570b10b50c4.json +++ b/hooks/ethereum/0xf9ced7d0f5292af02385410eda5b7570b10b50c4.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json b/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json index d05477f4..9a83bec7 100644 --- a/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json +++ b/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/optimism/0x480dafdb4d6092ef3217595b75784ec54b52e888.json b/hooks/optimism/0x480dafdb4d6092ef3217595b75784ec54b52e888.json index 0c77e3d7..43388325 100644 --- a/hooks/optimism/0x480dafdb4d6092ef3217595b75784ec54b52e888.json +++ b/hooks/optimism/0x480dafdb4d6092ef3217595b75784ec54b52e888.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/optimism/0xb35297543d357ef62df204d8c3bd0e96038cf440.json b/hooks/optimism/0xb35297543d357ef62df204d8c3bd0e96038cf440.json index 7823d38d..8a0d4804 100644 --- a/hooks/optimism/0xb35297543d357ef62df204d8c3bd0e96038cf440.json +++ b/hooks/optimism/0xb35297543d357ef62df204d8c3bd0e96038cf440.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/polygon/0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc.json b/hooks/polygon/0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc.json index 13b0751b..09263b8d 100644 --- a/hooks/polygon/0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc.json +++ b/hooks/polygon/0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json b/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json index d898f131..b4273f32 100644 --- a/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json +++ b/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0.json b/hooks/unichain/0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0.json index 7996a0fc..5242673c 100644 --- a/hooks/unichain/0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0.json +++ b/hooks/unichain/0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc.json b/hooks/unichain/0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc.json index f5b55bb1..02b25f79 100644 --- a/hooks/unichain/0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc.json +++ b/hooks/unichain/0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x730b109bad65152c67ecc94eb8b0968603dba888.json b/hooks/unichain/0x730b109bad65152c67ecc94eb8b0968603dba888.json index 55be90a9..c4767e26 100644 --- a/hooks/unichain/0x730b109bad65152c67ecc94eb8b0968603dba888.json +++ b/hooks/unichain/0x730b109bad65152c67ecc94eb8b0968603dba888.json @@ -4,7 +4,7 @@ "chain": "unichain", "chainId": 130, "name": "WETH Hook (Unichain)", - "description": "A 1:1 ETH/WETH wrapper hook that intercepts swaps in beforeSwap to wrap ETH into WETH or unwrap WETH into ETH, bypassing the pool's AMM math via BeforeSwapDelta. Liquidity additions are blocked — the hook itself manages liquidity.", + "description": "A 1:1 ETH/WETH wrapper hook that intercepts swaps in beforeSwap to wrap ETH into WETH or unwrap WETH into ETH, bypassing the pool's AMM math via BeforeSwapDelta. Liquidity additions are blocked \u2014 the hook itself manages liquidity.", "deployer": "", "verifiedSource": true, "auditUrl": "" @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json b/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json index 8cfcb324..12767a8b 100644 --- a/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json +++ b/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json b/hooks/unichain/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json index ad57e687..303835e1 100644 --- a/hooks/unichain/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json +++ b/hooks/unichain/0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc.json b/hooks/unichain/0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc.json index 4626732c..824ebf34 100644 --- a/hooks/unichain/0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc.json +++ b/hooks/unichain/0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc.json b/hooks/unichain/0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc.json index 22732bf2..a9b69b9a 100644 --- a/hooks/unichain/0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc.json +++ b/hooks/unichain/0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0xb9a17e66db950e00822c2b833d6bb304c9b86080.json b/hooks/unichain/0xb9a17e66db950e00822c2b833d6bb304c9b86080.json index d5485dcb..89c6c68e 100644 --- a/hooks/unichain/0xb9a17e66db950e00822c2b833d6bb304c9b86080.json +++ b/hooks/unichain/0xb9a17e66db950e00822c2b833d6bb304c9b86080.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0xbc6e5abda425309c2534bc2bc92562f5419ce8cc.json b/hooks/unichain/0xbc6e5abda425309c2534bc2bc92562f5419ce8cc.json index 6a923bcc..b5caa8eb 100644 --- a/hooks/unichain/0xbc6e5abda425309c2534bc2bc92562f5419ce8cc.json +++ b/hooks/unichain/0xbc6e5abda425309c2534bc2bc92562f5419ce8cc.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0xcc2efb167503f2d7df0eae906600066aec9e8444.json b/hooks/unichain/0xcc2efb167503f2d7df0eae906600066aec9e8444.json index 4dff482f..ddb3be2e 100644 --- a/hooks/unichain/0xcc2efb167503f2d7df0eae906600066aec9e8444.json +++ b/hooks/unichain/0xcc2efb167503f2d7df0eae906600066aec9e8444.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } } diff --git a/hooks/unichain/0xcdfcab084b2d29025772141d3bf473bd9673aaa8.json b/hooks/unichain/0xcdfcab084b2d29025772141d3bf473bd9673aaa8.json index 7794764e..10261211 100644 --- a/hooks/unichain/0xcdfcab084b2d29025772141d3bf473bd9673aaa8.json +++ b/hooks/unichain/0xcdfcab084b2d29025772141d3bf473bd9673aaa8.json @@ -28,6 +28,8 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } From 978b19d2693070583704cd12496ab01049814e53 Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:11:26 -0400 Subject: [PATCH 4/7] fix: correct vanillaSwap classification for Panoptic Oracle and Renzo Hook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Panoptic Oracle (0x7933...) only records price observations — should be vanillaSwap: true. Renzo Hook (0x09de...) has dynamicFee and modifies swap pricing — should be vanillaSwap: false. Regenerate hooklist files. Co-Authored-By: Claude Opus 4.6 (1M context) --- hooklist-vanilla-swap.json | 296 ++++++++- hooklist.json | 572 +++++++++++++----- ...ea99d714a3a19378e3d80d1ad22ca46085080.json | 2 +- ...30fe369c32a03e3b8516aff35b44706e39080.json | 2 +- 4 files changed, 723 insertions(+), 149 deletions(-) diff --git a/hooklist-vanilla-swap.json b/hooklist-vanilla-swap.json index 0741e59a..0191f0b9 100644 --- a/hooklist-vanilla-swap.json +++ b/hooklist-vanilla-swap.json @@ -1,4 +1,179 @@ [ + { + "hook": { + "address": "0x04e08a08bab77b389e970a65d91fba8bf4ef6080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration. After approval, it deploys full-range liquidity from a completed token distribution phase.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x167f77c0d015414f65bf3dde7198922c399e2080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that gates pool initialization to the strategy contract itself and blocks all swaps until a designated governance address approves migration, then migrates raised funds into a full-range Uniswap v4 liquidity position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x2934140dcf6ca98eed60e8e31d3816d038f92080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the hook contract itself and gates all swaps behind a governance-approved migration flag.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x5ca33d75df69c4f46093b7eb7f0f6dacace62080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-gated Liquidity Bootstrapping Pool (LBP) strategy hook that blocks swaps until a designated governance address approves migration, then migrates token distribution from a bootstrapping phase to a full-range Uniswap v4 pool position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, { "hook": { "address": "0x98Aa253a44497dfa77ec1170e69f851cB17C2000", @@ -29,7 +204,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -62,7 +239,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xced494a8cc54d593dbc7bdc6f4c61a948c932080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that restricts pool initialization to the contract itself and gates swaps behind a governance-controlled approval, ensuring the migration from an initial token distribution phase to a full-range Uniswap v4 position is authorized before trading begins.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -95,7 +309,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xd53006d1e3110fd319a79aeec4c527a0d265e080", + "chain": "ethereum", + "chainId": 1, + "name": "VirtualLBPStrategyBasic", + "description": "A hook implementing a Virtual Liquidity Bootstrapping Pool (LBP) strategy for token launches. It restricts pool initialization to the contract itself and gates all swaps on a migration approval flag, enabling controlled token distribution.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -128,7 +379,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x79330fe369c32a03e3b8516aff35b44706e39080", + "chain": "unichain", + "chainId": 130, + "name": "Panoptic Oracle Hook (Unichain)", + "description": "Records price observations on each swap and initializes oracle state on pool initialization, exposing a Uniswap V3-compatible oracle interface with both standard and truncated tick adapters deployed per pool.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } } ] diff --git a/hooklist.json b/hooklist.json index 61e5fae9..f83d885a 100644 --- a/hooklist.json +++ b/hooklist.json @@ -29,7 +29,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -62,7 +64,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -95,7 +99,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -128,7 +134,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -161,7 +169,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -194,7 +204,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -227,7 +239,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -260,7 +274,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -293,7 +309,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -326,7 +344,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -359,7 +379,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -392,7 +414,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -425,7 +449,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -458,7 +484,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -491,7 +519,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -524,7 +554,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -557,7 +589,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -590,7 +624,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -623,7 +659,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -656,7 +694,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -689,7 +729,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -722,7 +764,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -755,7 +799,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -788,7 +834,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -821,7 +869,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -854,7 +904,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -887,7 +939,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -918,7 +972,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -951,7 +1007,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -984,7 +1042,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1017,7 +1077,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1050,7 +1112,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -1083,7 +1147,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1116,7 +1182,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1149,7 +1217,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1182,7 +1252,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1215,7 +1287,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1248,7 +1322,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1281,7 +1357,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1314,7 +1392,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1347,7 +1427,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1380,7 +1462,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1413,7 +1497,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1446,7 +1532,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1479,7 +1567,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1512,7 +1602,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1545,7 +1637,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1578,7 +1672,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1611,7 +1707,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1644,7 +1742,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -1677,7 +1777,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1710,7 +1812,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1743,7 +1847,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1776,7 +1882,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1809,7 +1917,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1842,7 +1952,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1875,7 +1987,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1908,7 +2022,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1941,7 +2057,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1974,7 +2092,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2007,7 +2127,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2040,7 +2162,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2073,7 +2197,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -2106,7 +2232,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2139,7 +2267,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2172,7 +2302,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2205,7 +2337,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -2238,7 +2372,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -2271,7 +2407,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2304,7 +2442,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2337,7 +2477,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2370,7 +2512,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2403,7 +2547,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2436,7 +2582,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2469,7 +2617,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2502,7 +2652,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2535,7 +2687,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2568,7 +2722,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2601,7 +2757,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2634,7 +2792,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2667,7 +2827,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2700,7 +2862,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2733,7 +2897,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2766,7 +2932,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2799,7 +2967,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2832,7 +3002,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2865,7 +3037,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2898,7 +3072,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2931,7 +3107,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2964,7 +3142,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2997,7 +3177,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3030,7 +3212,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3063,7 +3247,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3096,7 +3282,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3129,7 +3317,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3162,7 +3352,9 @@ "properties": { "dynamicFee": true, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3195,7 +3387,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3228,7 +3422,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3261,7 +3457,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3294,7 +3492,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3327,7 +3527,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3360,7 +3562,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3393,7 +3597,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3426,7 +3632,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3459,7 +3667,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3492,7 +3702,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3525,7 +3737,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3558,7 +3772,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3591,7 +3807,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3624,7 +3842,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3657,7 +3877,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3690,7 +3912,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3723,7 +3947,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3756,7 +3982,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3789,7 +4017,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3822,7 +4052,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3855,7 +4087,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3888,7 +4122,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -3921,7 +4157,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3954,7 +4192,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3987,7 +4227,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4020,7 +4262,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -4053,7 +4297,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4086,7 +4332,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4119,7 +4367,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4152,7 +4402,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4185,7 +4437,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4218,7 +4472,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4251,7 +4507,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4284,7 +4542,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4317,7 +4577,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4350,7 +4612,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4383,7 +4647,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4416,7 +4682,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4449,7 +4717,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4482,7 +4752,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -4515,7 +4787,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4548,7 +4822,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4581,7 +4857,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4614,7 +4892,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4647,7 +4927,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4680,7 +4962,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -4713,7 +4997,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } ] diff --git a/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json b/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json index b4273f32..6e0d85dd 100644 --- a/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json +++ b/hooks/unichain/0x09dea99d714a3a19378e3d80d1ad22ca46085080.json @@ -29,7 +29,7 @@ "dynamicFee": true, "upgradeable": false, "requiresCustomSwapData": false, - "vanillaSwap": true, + "vanillaSwap": false, "swapAccess": "none" } } diff --git a/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json b/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json index 12767a8b..264fc5b7 100644 --- a/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json +++ b/hooks/unichain/0x79330fe369c32a03e3b8516aff35b44706e39080.json @@ -29,7 +29,7 @@ "dynamicFee": false, "upgradeable": false, "requiresCustomSwapData": false, - "vanillaSwap": false, + "vanillaSwap": true, "swapAccess": "none" } } From d62d88cccba102d45041b9326fadf0260d4d30ef Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:21:44 -0400 Subject: [PATCH 5/7] fix: audit vanillaSwap/swapAccess classifications and improve CI prompts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - M0 Allowlist Hook: swapAccess "none" → "allowlist" (uses Predicate auth) - Doppler hook: swapAccess "none" → "temporal" (configurable start time) - Rewrite vanillaSwap detection guidance with explicit decision process: always-false conditions, always-true conditions, and key distinction (blocking vs changing swaps) - Rewrite swapAccess guidance with concrete code patterns to search for (storage mappings, timestamp checks, owner flags, etc.) - Clarify orthogonality: vanillaSwap and swapAccess are independent Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/prompts/analyze-hook.md | 36 ++++++++++++++----- .claude/prompts/review-hook.md | 19 ++++++++-- hooklist.json | 4 +-- ...3cb78035a8e0acce38441793e2648b15b88a0.json | 2 +- ...ca49389d83b019d07E17e99454f2F218e2dc0.json | 2 +- 5 files changed, 49 insertions(+), 14 deletions(-) diff --git a/.claude/prompts/analyze-hook.md b/.claude/prompts/analyze-hook.md index 7ce1567f..bab10ce4 100644 --- a/.claude/prompts/analyze-hook.md +++ b/.claude/prompts/analyze-hook.md @@ -118,14 +118,34 @@ Cross-reference the address-derived flags with the source code: 4. **Detect `requiresCustomSwapData`**: This is `true` if a normal swap (sending empty `hookData`) would **fail, revert, or produce materially incorrect behavior** because the hook requires specific encoded data (signatures, parameters, routing info, etc.) in `hookData`. If the hook merely inspects `hookData` for optional/ancillary features (e.g. an optional trade referrer via `if (hookData.length > 0)`) but swaps work correctly without it, this is `false`. In short: would an unsuspecting router or user sending no `hookData` have a bad experience? -5. **Detect `vanillaSwap`**: This is `true` if the hook's `beforeSwap`/`afterSwap` implementations do NOT modify swap pricing, amounts, or deltas. Hooks that only perform access control (allow/deny), logging, oracle updates, or observation are vanilla. Hooks that execute trades, modify fees, return deltas, or alter swap mechanics are NOT vanilla. If the hook has no swap flags enabled at all, `vanillaSwap` is always `true`. - -6. **Detect `swapAccess`**: Classify the hook's swap access control mechanism: - - `"none"` — No restrictions on who can swap or when (default for most hooks) - - `"temporal"` — Swaps gated by a timestamp or block number - - `"allowlist"` — Only approved addresses can swap (KYC, whitelist) - - `"governance"` — An admin/governance address must enable swaps (e.g., migration gates) - - `"other"` — Some other access restriction mechanism +5. **Detect `vanillaSwap`**: Determines whether, once a swap is allowed to execute, it behaves identically to a standard Uniswap v4 pool with no hook. Use this decision process: + + **Always `true` if:** the hook has no swap flags at all (`beforeSwap`, `afterSwap`, `beforeSwapReturnsDelta`, `afterSwapReturnsDelta` are all `false`). + + **Always `false` if ANY of these are true:** + - `dynamicFee` is `true` (hook modifies fees) + - `requiresCustomSwapData` is `true` (standard swap with empty hookData would fail) + - `beforeSwapReturnsDelta` or `afterSwapReturnsDelta` is `true` (hook modifies swap amounts) + - The hook executes nested swaps, transfers tokens, or calls `poolManager.swap()` inside `beforeSwap`/`afterSwap` + - The hook modifies pool state in ways that change subsequent swap behavior (e.g., adjusting tick spacing, moving liquidity) + + **`true` if the hook has `beforeSwap`/`afterSwap` but they ONLY do:** + - Access control: revert if caller/timing/state doesn't meet criteria (allow/deny gating) + - Observation: recording prices, ticks, volumes, or timestamps for oracle/analytics purposes + - Event emission: emitting events for off-chain indexing + - Reading state without modifying it + + **Key distinction:** A hook that *blocks* a swap (reverts in beforeSwap) is vanilla — the swap either doesn't happen or happens normally. A hook that *changes* how the swap executes is NOT vanilla. + +6. **Detect `swapAccess`**: Classify the hook's swap access control mechanism by searching the `beforeSwap` implementation: + + - `"none"` — No access control logic in beforeSwap. The hook either has no beforeSwap, or beforeSwap never reverts based on caller identity, timing, or external state. Default for most hooks. + - `"temporal"` — Swaps gated by time. Look for: `block.timestamp` or `block.number` comparisons, `require(block.timestamp >= startTime)`, configurable start/end times, or phase-based timing logic. + - `"allowlist"` — Only approved addresses can swap. Look for: `mapping(address => bool)` checks against `tx.origin` or `sender`, calls to external allowlist/registry contracts, Merkle proof verification, or KYC/Predicate authorization checks. + - `"governance"` — An admin/owner must flip a flag to enable swaps. Look for: boolean storage like `migrated`, `tradingEnabled`, or `launched` that is set by an owner/admin function, with beforeSwap checking `require(migrated)` or similar. Includes single-owner gates, multi-sig gates, and role-based access control. + - `"other"` — Some other mechanism not covered above (e.g., NFT-gated, token-balance-gated, signature-based). + + **Important:** A hook can be `vanillaSwap: true` with any `swapAccess` value — these are orthogonal. Access control determines *if* you can swap; vanillaSwap determines *how* the swap behaves once allowed. If the hook has no swap flags, `swapAccess` must be `"none"`. 7. **Generate name**: Use `ContractName` from the Etherscan response if the submitter didn't provide one. diff --git a/.claude/prompts/review-hook.md b/.claude/prompts/review-hook.md index c877b0e8..2b4f076f 100644 --- a/.claude/prompts/review-hook.md +++ b/.claude/prompts/review-hook.md @@ -56,9 +56,24 @@ Cross-reference the `properties` section against the source code: 3. **requiresCustomSwapData**: Should be `true` if a normal swap with empty `hookData` would **fail, revert, or produce materially incorrect behavior** — i.e. the hook requires specific encoded data (signatures, parameters, routing info, etc.) to function. Should be `false` if swaps work correctly without `hookData`, even if the hook optionally inspects it for ancillary features (e.g. an optional trade referrer). -4. **vanillaSwap**: Should be `true` if the hook's beforeSwap/afterSwap do not modify swap pricing, amounts, or deltas — only access control, logging, or observation. Should be `true` if the hook has no swap flags. Should be `false` if the hook executes trades, modifies fees, returns deltas, or alters swap mechanics in any way. +4. **vanillaSwap**: Verify this answers: "Once a swap is allowed to execute, does it behave identically to a standard v4 pool?" -5. **swapAccess**: Should accurately classify the hook's swap access control: `"none"` if no restrictions, `"temporal"` for time-based gates, `"allowlist"` for address-based restrictions, `"governance"` for admin-controlled gates, `"other"` for anything else. + **Must be `false` if ANY of:** `dynamicFee` is true, `requiresCustomSwapData` is true, `beforeSwapReturnsDelta` or `afterSwapReturnsDelta` is true, the hook executes nested swaps or transfers tokens inside beforeSwap/afterSwap, or the hook modifies pool state that changes swap behavior. + + **Must be `true` if:** the hook has no swap flags at all. + + **Can be `true` if:** the hook has beforeSwap/afterSwap but they only perform access control (revert-based gating), observation (recording prices/ticks/volumes), or event emission — without modifying how the swap executes. + + A hook that *blocks* swaps (reverts) is vanilla. A hook that *changes* how swaps execute is not. + +5. **swapAccess**: Verify the classification matches the actual access control mechanism in beforeSwap: + - `"none"` — beforeSwap has no access control, or the hook has no swap flags + - `"temporal"` — gates on `block.timestamp` or `block.number` (configurable start/end times) + - `"allowlist"` — checks caller against an approved address set, registry, or Merkle proof + - `"governance"` — checks a boolean flag (e.g., `migrated`, `tradingEnabled`) set by an owner/admin + - `"other"` — any other gating mechanism + + These are orthogonal to `vanillaSwap` — a hook can be vanilla with restricted access. ### 2d: Check Metadata diff --git a/hooklist.json b/hooklist.json index f83d885a..26eb8bcf 100644 --- a/hooklist.json +++ b/hooklist.json @@ -3984,7 +3984,7 @@ "upgradeable": false, "requiresCustomSwapData": true, "vanillaSwap": false, - "swapAccess": "none" + "swapAccess": "allowlist" } }, { @@ -4474,7 +4474,7 @@ "upgradeable": false, "requiresCustomSwapData": false, "vanillaSwap": false, - "swapAccess": "none" + "swapAccess": "temporal" } }, { diff --git a/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json b/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json index 1ce0a7cb..f835a3ca 100644 --- a/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json +++ b/hooks/ethereum/0xaf53cb78035a8e0acce38441793e2648b15b88a0.json @@ -30,6 +30,6 @@ "upgradeable": false, "requiresCustomSwapData": true, "vanillaSwap": false, - "swapAccess": "none" + "swapAccess": "allowlist" } } diff --git a/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json b/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json index 9a83bec7..1bd4f97b 100644 --- a/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json +++ b/hooks/monad/0x580ca49389d83b019d07E17e99454f2F218e2dc0.json @@ -30,6 +30,6 @@ "upgradeable": false, "requiresCustomSwapData": false, "vanillaSwap": false, - "swapAccess": "none" + "swapAccess": "temporal" } } From 5766d9c92f26cde4e0fa926f3221191e67a5e7b8 Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:27:25 -0400 Subject: [PATCH 6/7] fix: sync site/public hooklist files and update regenerate workflow site/public/hooklist.json was stale (121 hooks, missing vanillaSwap and swapAccess properties). Now synced with root (143 hooks). Also add hooklist-vanilla-swap.json to site/public/ so the frontend can serve it. Update regenerate workflow to copy both files to site/public/ on each regeneration, preventing future staleness. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/regenerate.yml | 7 +- site/public/hooklist-vanilla-swap.json | 422 ++++++++ site/public/hooklist.json | 1310 +++++++++++++++++++++--- 3 files changed, 1588 insertions(+), 151 deletions(-) create mode 100644 site/public/hooklist-vanilla-swap.json diff --git a/.github/workflows/regenerate.yml b/.github/workflows/regenerate.yml index 5d0fccd9..1e89f1d0 100644 --- a/.github/workflows/regenerate.yml +++ b/.github/workflows/regenerate.yml @@ -37,6 +37,11 @@ jobs: - name: Regenerate hooklist.json run: python scripts/aggregate.py + - name: Copy to site public + run: | + cp hooklist.json site/public/hooklist.json + cp hooklist-vanilla-swap.json site/public/hooklist-vanilla-swap.json + - name: Commit and push env: APP_TOKEN: ${{ steps.app-token.outputs.token }} @@ -44,6 +49,6 @@ jobs: git config user.name "hook-registry-bot[bot]" git config user.email "hook-registry-bot[bot]@users.noreply.github.com" git remote set-url origin "https://x-access-token:${APP_TOKEN}@github.com/${{ github.repository }}.git" - git add hooklist.json hooklist-vanilla-swap.json + git add hooklist.json hooklist-vanilla-swap.json site/public/hooklist.json site/public/hooklist-vanilla-swap.json git diff --staged --quiet || git commit -m "chore: regenerate hooklist.json" git push diff --git a/site/public/hooklist-vanilla-swap.json b/site/public/hooklist-vanilla-swap.json new file mode 100644 index 00000000..0191f0b9 --- /dev/null +++ b/site/public/hooklist-vanilla-swap.json @@ -0,0 +1,422 @@ +[ + { + "hook": { + "address": "0x04e08a08bab77b389e970a65d91fba8bf4ef6080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration. After approval, it deploys full-range liquidity from a completed token distribution phase.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x167f77c0d015414f65bf3dde7198922c399e2080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that gates pool initialization to the strategy contract itself and blocks all swaps until a designated governance address approves migration, then migrates raised funds into a full-range Uniswap v4 liquidity position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x2934140dcf6ca98eed60e8e31d3816d038f92080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the hook contract itself and gates all swaps behind a governance-approved migration flag.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x5ca33d75df69c4f46093b7eb7f0f6dacace62080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-gated Liquidity Bootstrapping Pool (LBP) strategy hook that blocks swaps until a designated governance address approves migration, then migrates token distribution from a bootstrapping phase to a full-range Uniswap v4 pool position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x98Aa253a44497dfa77ec1170e69f851cB17C2000", + "chain": "base", + "chainId": 8453, + "name": "AquinasPoolHook", + "description": "A Uniswap v4 hook for Aquinas DAOs that restricts pool initialization to factory-authorized Safe addresses, preventing frontrunning by requiring pre-approval before a specific pool can be initialized.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000", + "chain": "base", + "chainId": 8453, + "name": "Graduation Hook (Base)", + "description": "Restricts pool initialization to a designated Moxie bonding curve address, ensuring Uniswap v4 pools can only be initialized through the authorized bonding curve as part of a token graduation process.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xced494a8cc54d593dbc7bdc6f4c61a948c932080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that restricts pool initialization to the contract itself and gates swaps behind a governance-controlled approval, ensuring the migration from an initial token distribution phase to a full-range Uniswap v4 position is authorized before trading begins.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0xd3c1f2174f37f88811f99b1b1b4c1356c0246000", + "chain": "base", + "chainId": 8453, + "name": "Aquinas Hook (Base)", + "description": "Restricts Uniswap v4 pool initialization to factory-authorized Safe addresses for Aquinas DAOs, preventing frontrunning of LP initialization by requiring the caller to be pre-approved by the Aquinas factory.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xd53006d1e3110fd319a79aeec4c527a0d265e080", + "chain": "ethereum", + "chainId": 1, + "name": "VirtualLBPStrategyBasic", + "description": "A hook implementing a Virtual Liquidity Bootstrapping Pool (LBP) strategy for token launches. It restricts pool initialization to the contract itself and gates all swaps on a migration approval flag, enabling controlled token distribution.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0xde400595199e6dae55a1bcb742b3eb249af00800", + "chain": "ethereum", + "chainId": 1, + "name": "M0 Tick Range Hook", + "description": "Restricts liquidity provision to a configurable tick range by reverting in beforeAddLiquidity if the position's ticks fall outside the allowed bounds. An authorized manager role can update the tick range.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x79330fe369c32a03e3b8516aff35b44706e39080", + "chain": "unichain", + "chainId": 130, + "name": "Panoptic Oracle Hook (Unichain)", + "description": "Records price observations on each swap and initializes oracle state on pool initialization, exposing a Uniswap V3-compatible oracle interface with both standard and truncated tick adapters deployed per pool.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" + } + } +] diff --git a/site/public/hooklist.json b/site/public/hooklist.json index 9a912572..26eb8bcf 100644 --- a/site/public/hooklist.json +++ b/site/public/hooklist.json @@ -29,7 +29,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -62,7 +64,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -95,7 +99,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -128,7 +134,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -161,7 +169,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -194,7 +204,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -227,7 +239,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -260,7 +274,114 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x0469a4Bd3724DC86C9542F4694c976DA13C450c0", + "chain": "base", + "chainId": 8453, + "name": "Zora Hook", + "description": "Zora's Uniswap v4 hook for their Coins protocol on Base, which applies a dynamic launch fee that decays from 99% to 1% over the 10 seconds after coin creation. On every swap it collects LP fees, converts them to a backing currency, and distributes rewards to creators and trade referrers.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x04e08a08bab77b389e970a65d91fba8bf4ef6080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration. After approval, it deploys full-range liquidity from a completed token distribution phase.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" + } + }, + { + "hook": { + "address": "0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -293,7 +414,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -326,7 +449,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x167f77c0d015414f65bf3dde7198922c399e2080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that gates pool initialization to the strategy contract itself and blocks all swaps until a designated governance address approves migration, then migrates raised funds into a full-range Uniswap v4 liquidity position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -359,7 +519,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -392,7 +554,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x2934140dcf6ca98eed60e8e31d3816d038f92080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the hook contract itself and gates all swaps behind a governance-approved migration flag.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -425,7 +624,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -458,7 +659,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -491,7 +694,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -524,7 +729,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -557,7 +764,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -590,7 +799,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -623,7 +834,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -656,7 +869,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -689,7 +904,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -722,7 +939,42 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x5798a5e371346c8e4af1dbc166549d360e008044", + "chain": "base", + "chainId": 8453, + "name": "Adaptive Burn Hook", + "description": "Automatically burns a configurable percentage of PR token output on buys and captures ETH into a vault on sells. Burn and capture rates are admin-adjustable within bounds, capped at a maximum of 5%.", + "verifiedSource": true + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -755,7 +1007,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -788,7 +1042,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -821,7 +1077,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x5ca33d75df69c4f46093b7eb7f0f6dacace62080", + "chain": "base", + "chainId": 8453, + "name": "GovernedLBPStrategy", + "description": "A governance-gated Liquidity Bootstrapping Pool (LBP) strategy hook that blocks swaps until a designated governance address approves migration, then migrates token distribution from a bootstrapping phase to a full-range Uniswap v4 pool position.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -854,7 +1147,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -887,7 +1182,44 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF", + "chain": "base", + "chainId": 8453, + "name": "AngstromL2", + "description": "MEV-aware hook that taxes top-of-block swaps based on priority fees and charges configurable fees on swaps and JIT liquidity additions/removals, distributing LP compensation rewards proportional to liquidity across affected ticks.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": true, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": true, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": true, + "afterRemoveLiquidityReturnsDelta": true + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -920,7 +1252,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc", + "chain": "base", + "chainId": 8453, + "name": "XDHook", + "description": "A launchpad hook that gates pool initialization, liquidity management, and swaps to authorized actors pre-graduation, collecting WETH-denominated fees as ERC-6909 claims. After graduation, access restrictions are lifted and the swap fee is capped at 0.15%.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": true, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -953,7 +1322,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -986,7 +1357,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1019,7 +1392,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC", + "chain": "base", + "chainId": 8453, + "name": "Liquid Dynamic Fee Hook V2", + "description": "Uniswap V4 hook with volatility-responsive dynamic LP fees (0.5%-5%), MEV protection via descending fee modules, per-swap pool extensions, and protocol fee collection. Powers Liquid Protocol token pools on Base.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1052,7 +1462,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1085,7 +1497,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1118,7 +1532,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1151,7 +1567,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1184,7 +1602,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1217,7 +1637,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1250,7 +1672,79 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x9811f10Cd549c754Fa9E5785989c422A762c28cc", + "chain": "base", + "chainId": 8453, + "name": "Liquid Static Fee Hook V2", + "description": "Uniswap V4 hook with fixed LP fee configuration, MEV protection via descending fee modules, per-swap pool extensions, and protocol fee collection. Alternative to the Dynamic Fee hook for Liquid Protocol pools preferring stable fees.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x98Aa253a44497dfa77ec1170e69f851cB17C2000", + "chain": "base", + "chainId": 8453, + "name": "AquinasPoolHook", + "description": "A Uniswap v4 hook for Aquinas DAOs that restricts pool initialization to factory-authorized Safe addresses, preventing frontrunning by requiring pre-approval before a specific pool can be initialized.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -1283,7 +1777,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1316,7 +1812,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1349,7 +1847,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1382,7 +1882,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1415,7 +1917,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1448,7 +1952,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1481,7 +1987,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1514,7 +2022,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1547,7 +2057,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1580,24 +2092,131 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xbb7784a4d481184283ed89619a3e3ed143e1adc0", + "chain": "base", + "chainId": 8453, + "name": "DecayMulticurveInitializerHook", + "description": "A Uniswap v4 hook by Whetstone Research (Doppler v2) that implements time-based linear LP fee decay, lowering fees from a configurable start rate to an end rate over a set duration. Liquidity additions are gated to a designated initializer contract.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": true, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": true, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xc3b8e77ac038aa260035a1911827086c34a9e844", + "chain": "base", + "chainId": 8453, + "name": "Farstr Hook (Base)", + "description": "Collects swap fees via the afterSwapReturnsDelta mechanism with graduated anti-MEV fee tiers (up to 90%) during a cooldown window following NFT sales, distributing collected ETH to a strategy contract and an optional fee-split address. Pool initialization is restricted to a specific strategy token, and liquidity is permanently locked after the first addition.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000", + "chain": "base", + "chainId": 8453, + "name": "Graduation Hook (Base)", + "description": "Restricts pool initialization to a designated Moxie bonding curve address, ensuring Uniswap v4 pools can only be initialized through the authorized bonding curve as part of a token graduation process.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": false, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { "hook": { - "address": "0xc3b8e77ac038aa260035a1911827086c34a9e844", + "address": "0xc8d077444625eb300a427a6dfb2b1dbf9b159040", "chain": "base", "chainId": 8453, - "name": "Farstr Hook (Base)", - "description": "Collects swap fees via the afterSwapReturnsDelta mechanism with graduated anti-MEV fee tiers (up to 90%) during a cooldown window following NFT sales, distributing collected ETH to a strategy contract and an optional fee-split address. Pool initialization is restricted to a specific strategy token, and liquidity is permanently locked after the first addition.", + "name": "Zora Post Hook v2.3.0 (Base)", + "description": "Uniswap v4 hook for Zora Coins that automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards \u2014 with optional trade referral support via hookData and hook migration managed through a registered upgrade gate.", "deployer": "", "verifiedSource": true, "auditUrl": "" }, "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, + "beforeInitialize": false, + "afterInitialize": true, + "beforeAddLiquidity": false, "afterAddLiquidity": false, "beforeRemoveLiquidity": false, "afterRemoveLiquidity": false, @@ -1606,39 +2225,41 @@ "beforeDonate": false, "afterDonate": false, "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, + "afterSwapReturnsDelta": false, "afterAddLiquidityReturnsDelta": false, "afterRemoveLiquidityReturnsDelta": false }, "properties": { "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false + "upgradeable": true, + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { "hook": { - "address": "0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000", + "address": "0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8", "chain": "base", "chainId": 8453, - "name": "Graduation Hook (Base)", - "description": "Restricts pool initialization to a designated Moxie bonding curve address, ensuring Uniswap v4 pools can only be initialized through the authorized bonding curve as part of a token graduation process.", + "name": "Super Strategy", + "description": "An automated liquidity management hook that intercepts a portion of each swap (2% hook fees + 0.3% protocol fees) via beforeSwapReturnsDelta and periodically compounds accumulated fees back into the pool's full-range LP position.", "deployer": "", "verifiedSource": true, "auditUrl": "" }, "flags": { - "beforeInitialize": false, + "beforeInitialize": true, "afterInitialize": true, "beforeAddLiquidity": false, "afterAddLiquidity": false, "beforeRemoveLiquidity": false, "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, + "beforeSwap": true, + "afterSwap": true, "beforeDonate": false, "afterDonate": false, - "beforeSwapReturnsDelta": false, + "beforeSwapReturnsDelta": true, "afterSwapReturnsDelta": false, "afterAddLiquidityReturnsDelta": false, "afterRemoveLiquidityReturnsDelta": false @@ -1646,55 +2267,59 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { "hook": { - "address": "0xc8d077444625eb300a427a6dfb2b1dbf9b159040", + "address": "0xca975b9daf772c71161f3648437c3616e5be0088", "chain": "base", "chainId": 8453, - "name": "Zora Post Hook v2.3.0 (Base)", - "description": "Uniswap v4 hook for Zora Coins that automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards \u2014 with optional trade referral support via hookData and hook migration managed through a registered upgrade gate.", + "name": "Simple Sell Tax Hook", + "description": "Applies a configurable basis-point sell tax when tokens are swapped against ETH or wrapped native assets. The fee is taken from the pool in beforeSwap and sent to a recipient address configured per-token by the token owner.", "deployer": "", "verifiedSource": true, "auditUrl": "" }, "flags": { "beforeInitialize": false, - "afterInitialize": true, + "afterInitialize": false, "beforeAddLiquidity": false, "afterAddLiquidity": false, "beforeRemoveLiquidity": false, "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, + "beforeSwap": true, + "afterSwap": false, "beforeDonate": false, "afterDonate": false, - "beforeSwapReturnsDelta": false, + "beforeSwapReturnsDelta": true, "afterSwapReturnsDelta": false, "afterAddLiquidityReturnsDelta": false, "afterRemoveLiquidityReturnsDelta": false }, "properties": { "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { "hook": { - "address": "0xca975b9daf772c71161f3648437c3616e5be0088", + "address": "0xced494a8cc54d593dbc7bdc6f4c61a948c932080", "chain": "base", "chainId": 8453, - "name": "Simple Sell Tax Hook", - "description": "Applies a configurable basis-point sell tax when tokens are swapped against ETH or wrapped native assets. The fee is taken from the pool in beforeSwap and sent to a recipient address configured per-token by the token owner.", - "deployer": "", + "name": "GovernedLBPStrategy", + "description": "A Liquidity Bootstrapping Pool (LBP) hook that restricts pool initialization to the contract itself and gates swaps behind a governance-controlled approval, ensuring the migration from an initial token distribution phase to a full-range Uniswap v4 position is authorized before trading begins.", + "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", "verifiedSource": true, "auditUrl": "" }, "flags": { - "beforeInitialize": false, + "beforeInitialize": true, "afterInitialize": false, "beforeAddLiquidity": false, "afterAddLiquidity": false, @@ -1704,7 +2329,7 @@ "afterSwap": false, "beforeDonate": false, "afterDonate": false, - "beforeSwapReturnsDelta": true, + "beforeSwapReturnsDelta": false, "afterSwapReturnsDelta": false, "afterAddLiquidityReturnsDelta": false, "afterRemoveLiquidityReturnsDelta": false @@ -1712,7 +2337,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -1745,7 +2372,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -1778,7 +2407,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1811,7 +2442,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1844,7 +2477,9 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1877,7 +2512,44 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xE0E522e5888e398d9E5d4D90A48c489425cb2888", + "chain": "base", + "chainId": 8453, + "name": "SETHHook", + "description": "A Uniswap v4 hook that enables 1:1 wrapping and unwrapping of Superfluid's Native Asset SuperToken (ETHx/SETH) within a pool. It intercepts swaps to handle ETH \u2192 ETHx deposits via the SETH upgradeByETH mechanism and ETHx \u2192 ETH withdrawals via downgradeToETH, with no liquidity allowed in the pool.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1910,7 +2582,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1943,7 +2617,44 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xeA9346e83952840E69Beb36Df365C4e68DE0E080", + "chain": "base", + "chainId": 8453, + "name": "LiquidLaunchHook", + "description": "A liquid launch hook that restricts pool initialization to authorized strategies via a factory registry, and automatically converts accumulated fees to a preferred token currency during swaps using nested pool swaps.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -1976,7 +2687,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2009,7 +2722,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2042,7 +2757,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2075,7 +2792,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2108,7 +2827,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2141,7 +2862,44 @@ "properties": { "dynamicFee": false, "upgradeable": true, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x011a8ed40095f2d7e9c19125b8254b19678d68cc", + "chain": "bnb", + "chainId": 56, + "name": "ClankerHookDynamicFeeV2", + "description": "Clanker's v2 dynamic fee hook that adjusts LP fees based on a tick-difference volatility accumulator, collecting a 20% protocol fee on each swap. Supports optional MEV protection and pool extension modules.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2174,7 +2932,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2207,7 +2967,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2240,7 +3002,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2273,7 +3037,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2306,7 +3072,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2339,7 +3107,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2372,7 +3142,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2405,7 +3177,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2438,7 +3212,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2471,7 +3247,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2504,7 +3282,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2537,7 +3317,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2570,7 +3352,9 @@ "properties": { "dynamicFee": true, "upgradeable": true, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2603,7 +3387,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2636,7 +3422,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2669,7 +3457,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2702,7 +3492,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x5725dF570e0008997daCef46bC179bbFc4D125cc", + "chain": "ethereum", + "chainId": 1, + "name": "Auto Liquidity Generator", + "description": "Collects configurable buy and sell taxes (in WETH) on every swap. Once accumulated fees reach a configurable threshold, deducts a platform fee (20\u201350% of the accumulated amount) sent to a designated collector, then uses the remainder to buy the paired token and add full-range protocol-owned liquidity. Residual tokens after liquidity addition are burned.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": true, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": true, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": true, + "afterSwapReturnsDelta": true, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2735,7 +3562,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2768,7 +3597,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2801,7 +3632,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2834,7 +3667,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2867,7 +3702,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2900,7 +3737,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2933,7 +3772,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2966,7 +3807,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -2999,7 +3842,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3032,7 +3877,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3065,7 +3912,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3098,7 +3947,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3131,7 +3982,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "allowlist" } }, { @@ -3164,7 +4017,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3197,7 +4052,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3230,7 +4087,44 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xd53006d1e3110fd319a79aeec4c527a0d265e080", + "chain": "ethereum", + "chainId": 1, + "name": "VirtualLBPStrategyBasic", + "description": "A hook implementing a Virtual Liquidity Bootstrapping Pool (LBP) strategy for token launches. It restricts pool initialization to the contract itself and gates all swaps on a migration approval flag, enabling controlled token distribution.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "governance" } }, { @@ -3263,7 +4157,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3296,7 +4192,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3329,7 +4227,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3362,7 +4262,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -3395,7 +4297,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3428,7 +4332,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3461,7 +4367,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3494,7 +4402,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3527,7 +4437,44 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0x580ca49389d83b019d07E17e99454f2F218e2dc0", + "chain": "monad", + "chainId": 143, + "name": "UniswapV4ScheduledMulticurveInitializerHook", + "description": "A Doppler protocol hook (by Whetstone Research) that gates pool initialization and liquidity additions to an authorized initializer contract, and enforces a configurable start time before which swaps are blocked.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": true, + "afterAddLiquidity": true, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": true, + "beforeSwap": true, + "afterSwap": true, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": false, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "temporal" } }, { @@ -3560,7 +4507,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3593,7 +4542,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3626,7 +4577,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3659,7 +4612,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3692,7 +4647,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3725,7 +4682,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3758,7 +4717,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3791,7 +4752,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": true, + "swapAccess": "none" } }, { @@ -3824,7 +4787,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3857,7 +4822,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3890,7 +4857,44 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" + } + }, + { + "hook": { + "address": "0xb9a17e66db950e00822c2b833d6bb304c9b86080", + "chain": "unichain", + "chainId": 130, + "name": "MEVTaxTestInProd", + "description": "Implements a priority-fee-proportional MEV tax as a dynamic LP fee. On each swap, the fee is scaled proportionally to the transaction's priority fee relative to the highest priority fee observed in the previous block, with owner-configurable minimum and maximum bounds.", + "deployer": "", + "verifiedSource": true, + "auditUrl": "" + }, + "flags": { + "beforeInitialize": true, + "afterInitialize": false, + "beforeAddLiquidity": false, + "afterAddLiquidity": false, + "beforeRemoveLiquidity": false, + "afterRemoveLiquidity": false, + "beforeSwap": true, + "afterSwap": false, + "beforeDonate": false, + "afterDonate": false, + "beforeSwapReturnsDelta": false, + "afterSwapReturnsDelta": false, + "afterAddLiquidityReturnsDelta": false, + "afterRemoveLiquidityReturnsDelta": false + }, + "properties": { + "dynamicFee": true, + "upgradeable": false, + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3923,7 +4927,9 @@ "properties": { "dynamicFee": true, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3956,7 +4962,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": true + "requiresCustomSwapData": true, + "vanillaSwap": false, + "swapAccess": "none" } }, { @@ -3989,7 +4997,9 @@ "properties": { "dynamicFee": false, "upgradeable": false, - "requiresCustomSwapData": false + "requiresCustomSwapData": false, + "vanillaSwap": false, + "swapAccess": "none" } } ] From 127b6e00846c2fbfe3a3321a3429ed88a9d0913a Mon Sep 17 00:00:00 2001 From: Mark Toda Date: Fri, 20 Mar 2026 17:43:36 -0400 Subject: [PATCH 7/7] refactor: symlink site/public hooklist files to root instead of copying Replace the duplicate files in site/public/ with symlinks to the root hooklist.json and hooklist-vanilla-swap.json. Vite resolves symlinks in public/, so the site serves the same data without copies getting stale. Remove the copy step from the regenerate workflow. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/regenerate.yml | 7 +- site/public/hooklist-vanilla-swap.json | 423 +- site/public/hooklist.json | 5006 +----------------------- 3 files changed, 3 insertions(+), 5433 deletions(-) mode change 100644 => 120000 site/public/hooklist-vanilla-swap.json mode change 100644 => 120000 site/public/hooklist.json diff --git a/.github/workflows/regenerate.yml b/.github/workflows/regenerate.yml index 1e89f1d0..5d0fccd9 100644 --- a/.github/workflows/regenerate.yml +++ b/.github/workflows/regenerate.yml @@ -37,11 +37,6 @@ jobs: - name: Regenerate hooklist.json run: python scripts/aggregate.py - - name: Copy to site public - run: | - cp hooklist.json site/public/hooklist.json - cp hooklist-vanilla-swap.json site/public/hooklist-vanilla-swap.json - - name: Commit and push env: APP_TOKEN: ${{ steps.app-token.outputs.token }} @@ -49,6 +44,6 @@ jobs: git config user.name "hook-registry-bot[bot]" git config user.email "hook-registry-bot[bot]@users.noreply.github.com" git remote set-url origin "https://x-access-token:${APP_TOKEN}@github.com/${{ github.repository }}.git" - git add hooklist.json hooklist-vanilla-swap.json site/public/hooklist.json site/public/hooklist-vanilla-swap.json + git add hooklist.json hooklist-vanilla-swap.json git diff --staged --quiet || git commit -m "chore: regenerate hooklist.json" git push diff --git a/site/public/hooklist-vanilla-swap.json b/site/public/hooklist-vanilla-swap.json deleted file mode 100644 index 0191f0b9..00000000 --- a/site/public/hooklist-vanilla-swap.json +++ /dev/null @@ -1,422 +0,0 @@ -[ - { - "hook": { - "address": "0x04e08a08bab77b389e970a65d91fba8bf4ef6080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration. After approval, it deploys full-range liquidity from a completed token distribution phase.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x167f77c0d015414f65bf3dde7198922c399e2080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) hook that gates pool initialization to the strategy contract itself and blocks all swaps until a designated governance address approves migration, then migrates raised funds into a full-range Uniswap v4 liquidity position.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x2934140dcf6ca98eed60e8e31d3816d038f92080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the hook contract itself and gates all swaps behind a governance-approved migration flag.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x5ca33d75df69c4f46093b7eb7f0f6dacace62080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-gated Liquidity Bootstrapping Pool (LBP) strategy hook that blocks swaps until a designated governance address approves migration, then migrates token distribution from a bootstrapping phase to a full-range Uniswap v4 pool position.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x98Aa253a44497dfa77ec1170e69f851cB17C2000", - "chain": "base", - "chainId": 8453, - "name": "AquinasPoolHook", - "description": "A Uniswap v4 hook for Aquinas DAOs that restricts pool initialization to factory-authorized Safe addresses, preventing frontrunning by requiring pre-approval before a specific pool can be initialized.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000", - "chain": "base", - "chainId": 8453, - "name": "Graduation Hook (Base)", - "description": "Restricts pool initialization to a designated Moxie bonding curve address, ensuring Uniswap v4 pools can only be initialized through the authorized bonding curve as part of a token graduation process.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xced494a8cc54d593dbc7bdc6f4c61a948c932080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) hook that restricts pool initialization to the contract itself and gates swaps behind a governance-controlled approval, ensuring the migration from an initial token distribution phase to a full-range Uniswap v4 position is authorized before trading begins.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0xd3c1f2174f37f88811f99b1b1b4c1356c0246000", - "chain": "base", - "chainId": 8453, - "name": "Aquinas Hook (Base)", - "description": "Restricts Uniswap v4 pool initialization to factory-authorized Safe addresses for Aquinas DAOs, preventing frontrunning of LP initialization by requiring the caller to be pre-approved by the Aquinas factory.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd53006d1e3110fd319a79aeec4c527a0d265e080", - "chain": "ethereum", - "chainId": 1, - "name": "VirtualLBPStrategyBasic", - "description": "A hook implementing a Virtual Liquidity Bootstrapping Pool (LBP) strategy for token launches. It restricts pool initialization to the contract itself and gates all swaps on a migration approval flag, enabling controlled token distribution.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0xde400595199e6dae55a1bcb742b3eb249af00800", - "chain": "ethereum", - "chainId": 1, - "name": "M0 Tick Range Hook", - "description": "Restricts liquidity provision to a configurable tick range by reverting in beforeAddLiquidity if the position's ticks fall outside the allowed bounds. An authorized manager role can update the tick range.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x79330fe369c32a03e3b8516aff35b44706e39080", - "chain": "unichain", - "chainId": 130, - "name": "Panoptic Oracle Hook (Unichain)", - "description": "Records price observations on each swap and initializes oracle state on pool initialization, exposing a Uniswap V3-compatible oracle interface with both standard and truncated tick adapters deployed per pool.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - } -] diff --git a/site/public/hooklist-vanilla-swap.json b/site/public/hooklist-vanilla-swap.json new file mode 120000 index 00000000..1113cf8c --- /dev/null +++ b/site/public/hooklist-vanilla-swap.json @@ -0,0 +1 @@ +../../hooklist-vanilla-swap.json \ No newline at end of file diff --git a/site/public/hooklist.json b/site/public/hooklist.json deleted file mode 100644 index 26eb8bcf..00000000 --- a/site/public/hooklist.json +++ /dev/null @@ -1,5005 +0,0 @@ -[ - { - "hook": { - "address": "0x2097d7329389264a1542ad50802bb0de84a650c4", - "chain": "arbitrum", - "chainId": 42161, - "name": "BVCC Dynamic Fee Hook (Arbitrum)", - "description": "Dynamically adjusts LP fees per-swap based on current gas price tiers and penalizes high-frequency traders, while collecting an additional protocol fee in afterSwap from the swap output.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2a4adf825bd96598487dbb6b2d8d882a4eb86888", - "chain": "arbitrum", - "chainId": 42161, - "name": "WETH Hook (Arbitrum)", - "description": "A Uniswap v4 hook that enables seamless wrapping and unwrapping of ETH and WETH in a dedicated zero-fee pool, intercepting swaps to perform 1:1 ETH\u2194WETH conversion while blocking direct liquidity operations.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9B21E1cdD975E58F714Fd1Bd5a803198d5520088", - "chain": "arbitrum", - "chainId": 42161, - "name": "External DEX Wrapper (Arbitrum)", - "description": "Routes Uniswap v4 swaps through the Camelot (Algebra) V3 ETH/USDC pool on Arbitrum, intercepting swaps in beforeSwap and fully settling them via BeforeSwapDelta with a configurable owner-adjustable fee ratio.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xc4bf39a096a1b610dd6186935f3ad99c66239080", - "chain": "arbitrum", - "chainId": 42161, - "name": "Slippage Fee Hook (Arbitrum)", - "description": "Dynamically computes LP fees before each swap based on the simulated price impact (tick difference between current and post-swap price), charging higher fees for larger swaps to reduce impermanent loss for liquidity providers. Requires pools to use dynamic fees and reverts any swap that would cause slippage exceeding 5%.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd73339564ac99f3e09b0ebc80603ff8b796500c0", - "chain": "arbitrum", - "chainId": 42161, - "name": "Limit Order Hook (Arbitrum)", - "description": "A Uniswap v4 hook that enables limit order functionality by recording the tick before each swap and delegating to a LimitOrderManager contract after each swap to execute any limit orders whose tick range was crossed. Supports dynamic LP fee updates via a permissioned fee manager role.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf7ac669593d2d9d01026fa5b756dd5b4f7aaa8cc", - "chain": "arbitrum", - "chainId": 42161, - "name": "Clanker Static Fee Hook (Arbitrum)", - "description": "A Clanker token launch hook for Arbitrum that applies separate, configurable LP fees for buys and sells of the Clanker token (set statically at pool initialization), and collects a protocol fee on each swap via beforeSwap and afterSwap delta adjustments. It also includes a short-lived MEV protection module active in the first two minutes after pool creation.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xfd213be7883db36e1049dc42f5bd6a0ec66b68cc", - "chain": "arbitrum", - "chainId": 42161, - "name": "Clanker Dynamic Fee Hook (Arbitrum)", - "description": "Clanker V4 hook for autonomous token deployment with dynamic fees that adjust based on swap volatility using a tick-based accumulator model. Also includes MEV protection via an optional external module active for the first 2 minutes after pool creation.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x3b48f794a1d67febe95f66b6dff38c0a7e934044", - "chain": "avalanche", - "chainId": 43114, - "name": "StrategyFeeHook", - "description": "Charges a fixed 10% fee (1000 bps) on the output token of each swap in owner-allowlisted pools, then converts the collected fees to AVAX or WAVAX and forwards them to a configurable strategy manager contract.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x0469a4Bd3724DC86C9542F4694c976DA13C450c0", - "chain": "base", - "chainId": 8453, - "name": "Zora Hook", - "description": "Zora's Uniswap v4 hook for their Coins protocol on Base, which applies a dynamic launch fee that decays from 99% to 1% over the 10 seconds after coin creation. On every swap it collects LP fees, converts them to a backing currency, and distributes rewards to creators and trade referrers.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x04e08a08bab77b389e970a65d91fba8bf4ef6080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration. After approval, it deploys full-range liquidity from a completed token distribution phase.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x0b8fbfa9861af89d7d2cf2e55f61cee982a22080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-controlled Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the contract itself and blocks all swaps until a designated governance address approves migration.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x121f94835dab08ebaf084809a97e525b69e400cc", - "chain": "base", - "chainId": 8453, - "name": "AI Protocol Swap Fee Hook v1 (Base)", - "description": "A Uniswap v4 hook that charges a configurable fee on swaps involving a designated fee token. Fees are collected in beforeSwap and afterSwap based on whether the operation is a buy or sell and whether the swap is exact-in or exact-out, then forwarded to a configured fee recipient contract.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x1258e5f3c71ca9dce95ce734ba5759532e46d040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v2.2.1 (Base)", - "description": "A Uniswap V4 hook for Zora's Creator Coin protocol that automatically collects LP fees after each swap, converts them to a backing currency via multi-hop paths, and distributes rewards to creators and trade referrers. On pool initialization, it sets up multiple liquidity positions based on the coin's Doppler multi-curve configuration.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x167f77c0d015414f65bf3dde7198922c399e2080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) hook that gates pool initialization to the strategy contract itself and blocks all swaps until a designated governance address approves migration, then migrates raised funds into a full-range Uniswap v4 liquidity position.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x1e0c810a30fb82391df936602c1161421381b0c8", - "chain": "base", - "chainId": 8453, - "name": "SuperStrategy Hook (Base)", - "description": "A Uniswap v4 hook that collects a 2% fee on each swap and auto-compounds the accumulated reserves back into pool liquidity. It forwards 0.30% to a protocol fee receiver, allows admin-designated market makers to trade fee-free, and supports multi-pool liquidity management with configurable auto-compounding thresholds.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x23321f11a6d44fd1ab790044fdfde5758c902fdc", - "chain": "base", - "chainId": 8453, - "name": "Flaunch POSM v4 (Base)", - "description": "Flaunch's PositionManager is a Uniswap v4 hook that manages the full lifecycle of memecoin launches, from token creation and fair-launch phase to ongoing swaps. It incorporates an InternalSwapPool for protocol fee accumulation, a BidWall for native-token liquidity support, and a FeeDistributor that routes swap fees to creators and optional referrers encoded in hookData.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2934140dcf6ca98eed60e8e31d3816d038f92080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) strategy hook that restricts pool initialization to the hook contract itself and gates all swaps behind a governance-approved migration flag.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x2b15a16b3ef024005ba899bb51764fcd58cf9040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v2.2.1 (Base)", - "description": "Zora's content coin hook that manages multi-position liquidity for creator coins, collecting swap fees after each trade and distributing them as rewards to creators, referrers, and LPs in a backing currency. Supports liquidity migration to new hook versions via a registered upgrade gate.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2c56c1302b6224b2bb1906c46f554622e12f10c4", - "chain": "base", - "chainId": 8453, - "name": "BVCC Dynamic Fee Hook (Base)", - "description": "An advanced dynamic fee hook by BlockVenture Chain Capital that adjusts LP fees based on gas price, price volatility, and 24-hour trade volume, while applying anti-bot cooldown penalties for repeated swaps. It also collects a small protocol fee on each swap output via afterSwapReturnsDelta.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2F9354Bbb0eDEf5c2a5C4b78D0C59D73412A28CC", - "chain": "base", - "chainId": 8453, - "name": "ClawnchHookStaticFeeV2", - "description": "Token launcher hook for Base. Fork of Clanker ClankerHookV2 with security fixes: transient storage for reentrant fee safety, slippage protection on fee swaps, MEV decay boundary fix, per-direction static fees, fee preference system, VestedDevBuy extension.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2Fd54Aaf84023EDA60Bd65eDb5914c1a306850cc", - "chain": "base", - "chainId": 8453, - "name": "Seedify Fee Hook", - "description": "Collects fees on swaps involving a designated fundraising currency. Fees split between platform treasury and optional creator treasury, with launch vs post-launch fee tiers.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/Seedifyfund/base-uniswap-hook" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x34a45c6b61876d739400bd71228cbcbd4f53e8cc", - "chain": "base", - "chainId": 8453, - "name": "Clanker Dynamic Fee Hook (Base)", - "description": "A Clanker hook that dynamically adjusts LP fees based on tick volatility accumulation, updating pool fees on every swap via updateDynamicLPFee. It also applies a protocol fee by capturing a portion of swaps as EIP-6909 claims, and optionally forwards hookData to an external MEV module during a post-launch window.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x35b9b5b023897da8c7375ba6141245b8416460cc", - "chain": "base", - "chainId": 8453, - "name": "Wassblaster Hook", - "description": "A hook for wASS/memecoin pairs that charges a 1% total fee (0.3% to LPs, 0.7% to the hook) and routes a configurable portion of buys through an in-swap OTC mechanism at the actual pool rate, distributing wASS fee proceeds to stakers and accumulating memecoin fees as OTC inventory.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x4519e2b040ff1b64fa03abe2aef0bc99d7cceaa8", - "chain": "base", - "chainId": 8453, - "name": "GPX Hook (Base)", - "description": "GPXHooks manages the Uniswap V4 GPX-USDC liquidity pool, collecting 1% fees per swap and distributing them across four destinations (GoldPesa Mines, Treasury, Pawn, and GPX Owner), while blocking unauthorized liquidity changes and periodically triggering automated pool rebalancing.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": true, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x4ab61d774b170d0610fdcc5559aae2c356c600c8", - "chain": "base", - "chainId": 8453, - "name": "Pubhouse Hook", - "description": "A token launchpad hook that performs internal swaps using accumulated token fees to fill buy orders, distributes LP fees between token creators and the protocol team, and automatically buybacks and burns the protocol token when accumulated ETH exceeds a threshold.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x51bba15255406cfe7099a42183302640ba7dafdc", - "chain": "base", - "chainId": 8453, - "name": "Flaunch POSM v1", - "description": "The Flaunch PositionManager is a Uniswap v4 hook that manages the full lifecycle of memecoin creation and trading, including a fair launch window, an internal swap pool for fee reinvestment, and fee distribution to token creators and referrers.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x570a48f96035c2874de1c0f13c5075a05683b0cc", - "chain": "base", - "chainId": 8453, - "name": "Deli Hook (Base)", - "description": "Collects swap fees always in wBLT and forwards them to a FeeProcessor contract, while enforcing that all pools include wBLT as a token and use dynamic LP fees (overriding them to 0 at swap time). Syncs DailyEpochGauge and IncentiveGauge on every swap to support incentive accounting.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5798a5e371346c8e4af1dbc166549d360e008044", - "chain": "base", - "chainId": 8453, - "name": "Adaptive Burn Hook", - "description": "Automatically burns a configurable percentage of PR token output on buys and captures ETH into a vault on sells. Burn and capture rates are admin-adjustable within bounds, capped at a maximum of 5%.", - "verifiedSource": true - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5b409184204b86f708d3aebb3cad3f02835f68cc", - "chain": "base", - "chainId": 8453, - "name": "Fey Hook (Base)", - "description": "A Uniswap v4 hook for Fey Protocol that manages paired-token pools with per-direction static LP fees and a 20% protocol fee. It includes MEV protection active for 2 minutes post-launch, optional pool extensions, and LP locker integration for automatic fee collection.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5bf219b3cc11e3f6dd8dc8fc89d7d1deb0431040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1.1.1.1 (Base)", - "description": "A Zora content coin hook that mints multiple Doppler-style liquidity positions on pool initialization and, on every swap, collects LP fees, swaps them to a backing currency, and distributes rewards to coin holders and optional trade referrers encoded in hookData. It supports a governance-gated liquidity migration path to successor hook implementations.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5C062F56e7F1a5Cf25b95E626AF15176f52Fb0c8", - "chain": "base", - "chainId": 8453, - "name": "Super Strategy v2 (Base)", - "description": "A fee-compounding hook that skims a portion of each swap's input as fees, splitting the take between a per-pool hook balance and a protocol fee receiver, then allows that accumulated hook balance to be deployed as liquidity back into the pool.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5ca33d75df69c4f46093b7eb7f0f6dacace62080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A governance-gated Liquidity Bootstrapping Pool (LBP) strategy hook that blocks swaps until a designated governance address approves migration, then migrates token distribution from a bootstrapping phase to a full-range Uniswap v4 pool position.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0x5cd525c621afca515bf58631d4733fba7b72aae4", - "chain": "base", - "chainId": 8453, - "name": "Coinbase Verified Hook (Base)", - "description": "A Coinbase-authored access-control hook for Verified Pools that restricts pool initialization, liquidity operations, swaps, and donations to addresses verified by configurable on-chain policies. Also collects an optional configurable bips-based hook fee on swaps via afterSwapReturnsDelta.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": true, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5e5d19d22c85a4aef7c1fdf25fb22a5a38f71040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v1.1.1.1 (Base)", - "description": "A Uniswap v4 hook for Zora creator coins that collects LP fees on every swap, converts them to a backing currency, and distributes them as rewards. Supports optional trade referrals via hookData and gated liquidity migration to new hook versions.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x631352Aaa9d6554848aF674106bCD8Bb9E59a5CF", - "chain": "base", - "chainId": 8453, - "name": "AngstromL2", - "description": "MEV-aware hook that taxes top-of-block swaps based on priority fees and charges configurable fees on swaps and JIT liquidity additions/removals, distributing LP compensation rewards proportional to liquidity across affected ticks.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": true, - "afterRemoveLiquidityReturnsDelta": true - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x6646B048fBa0a70a692f7690ae6daD83BCACb0C8", - "chain": "base", - "chainId": 8453, - "name": "Super Strategy v3 (Base)", - "description": "A fee-collecting hook that splits each swap's input into a 2% hook reserve and 0.3% protocol fee, accumulating reserves per pool so anyone can trigger auto-compounding back into concentrated LP positions when a configurable threshold is met.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x66E51DEab56975Bb1c64413bd3AB01FA95B82acc", - "chain": "base", - "chainId": 8453, - "name": "XDHook", - "description": "A launchpad hook that gates pool initialization, liquidity management, and swaps to authorized actors pre-graduation, collecting WETH-denominated fees as ERC-6909 claims. After graduation, access restrictions are lifted and the swap fee is capped at 0.15%.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x6cabe2fd9fb60c5afcab7de732b0a224fc382eec", - "chain": "base", - "chainId": 8453, - "name": "GPO Hook (Base)", - "description": "An immutable, ownerless Uniswap v4 hook for the GoldPesa Option (GPO) token that deploys GPO, seeds a full-range liquidity position, and enforces a 10% USDC fee on every swap via BeforeSwapDelta and AfterSwapDelta. Liquidity is permanently locked after initial minting, and donations and unauthorized pool initialization are blocked.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": true, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x704268ac7043aeef50f47b6a03ae68ccf808e044", - "chain": "base", - "chainId": 8453, - "name": "BTC ACC Hook (Base)", - "description": "A hook that takes a configurable fee (1-10%) on each swap and deposits it into a Bitcoin accumulation contract, converting swap fees from ETH, WETH, USDC, or cbBTC into Bitcoin for the swapper. The beforeInitialize hook enforces that pools must pair exactly one allowed base token (ETH/WETH/USDC/cbBTC) with a non-base token.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x755776c51399f7ee15d47ddaf47347d26f5ca840", - "chain": "base", - "chainId": 8453, - "name": "Basememe Hook (Base)", - "description": "A meme token launchpad hook that restricts pool initialization and liquidity addition to a factory contract, enforcing a token graduation lifecycle. After each swap, it triggers reward collection via an LP manager and optionally tracks trade referrals passed through hookData.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC", - "chain": "base", - "chainId": 8453, - "name": "Liquid Dynamic Fee Hook V2", - "description": "Uniswap V4 hook with volatility-responsive dynamic LP fees (0.5%-5%), MEV protection via descending fee modules, per-swap pool extensions, and protocol fee collection. Powers Liquid Protocol token pools on Base.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x81542dc43aff247eff4a0ecefc286a2973ae1040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1.1.1 (Base)", - "description": "A Uniswap v4 hook for Zora content coins that sets up initial concentrated LP positions after pool initialization and collects/distributes creator rewards and trade referral fees after each swap.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x8218fa8d7922e22aed3556a09d5a715f16ad5040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v2.2 (Base)", - "description": "A Uniswap v4 hook for Zora Creator Coins that creates multiple Doppler-curve liquidity positions upon pool initialization, and on every swap automatically collects accrued LP fees, converts them to a backing currency, and distributes the proceeds as creator rewards.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x854f820475b229b7805a386f758cfb285023d040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v1.0.0.1 (Base)", - "description": "Manages Uniswap v4 liquidity positions for Zora Creator Coins, collecting LP fees after each swap and distributing them as rewards to creators, trade referrers, and liquidity providers. Supports liquidity migration to new hook versions via a permissioned on-chain upgrade gate.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc", - "chain": "base", - "chainId": 8453, - "name": "Aegis v3 Hook (Base)", - "description": "Spot is a Uniswap v4 hook that implements surge-based dynamic fees using a truncated geometric oracle, charges protocol fees (POL share) on swaps, and manages a full-range liquidity position that automatically reinvests accrued fees.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x8dc3b85e1dc1c846ebf3971179a751896842e5dc", - "chain": "base", - "chainId": 8453, - "name": "Flaunch AnyPOSM v1 (Base)", - "description": "The Flaunch AnyPositionManager hook enables any ERC20 token to use a BidWall and community fee distribution on Uniswap v4. It supports an internal swap pool, fair launch mechanics, referrer fee sharing via hookData, and emits comprehensive pool event tracking.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9301690be9ac901de52c5ebff883862bbfc99040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v1.1.1 (Base)", - "description": "A Uniswap v4 hook for Zora's creator coin ecosystem that initializes multiple liquidity positions on pool creation and automatically collects LP fees on every swap, converting them to a backing currency and distributing rewards to creators, referrers, and the protocol.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x95afbc0fccf974b41380f24e562f15b6dd90fac8", - "chain": "base", - "chainId": 8453, - "name": "Deli Constant Product Hook (Base)", - "description": "Implements a constant product (x\u00b7y=k) AMM within Uniswap v4, replacing concentrated liquidity with traditional V2-style pool mechanics and integrating epoch-based incentive gauges and a fee processor for reward distribution.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9811f10Cd549c754Fa9E5785989c422A762c28cc", - "chain": "base", - "chainId": 8453, - "name": "Liquid Static Fee Hook V2", - "description": "Uniswap V4 hook with fixed LP fee configuration, MEV protection via descending fee modules, per-swap pool extensions, and protocol fee collection. Alternative to the Dynamic Fee hook for Liquid Protocol pools preferring stable fees.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x98Aa253a44497dfa77ec1170e69f851cB17C2000", - "chain": "base", - "chainId": 8453, - "name": "AquinasPoolHook", - "description": "A Uniswap v4 hook for Aquinas DAOs that restricts pool initialization to factory-authorized Safe addresses, preventing frontrunning by requiring pre-approval before a specific pool can be initialized.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9d11f9505ca92f4b6983c1285d1ac0aaff7ec0c0", - "chain": "base", - "chainId": 8453, - "name": "Limit Order Hook (Base)", - "description": "A limit order hook that records the tick before each swap and triggers limit order execution after the swap completes by delegating to a LimitOrderManager contract. It also supports role-based dynamic LP fee management via AccessControl.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888", - "chain": "base", - "chainId": 8453, - "name": "ETH-flETH Auto Wrap Hook (Base)", - "description": "A 1:1 ETH/flETH swap hook that fully handles swaps in beforeSwap by depositing/withdrawing from the flETH contract, acting as a custom curve with zero fees. Liquidity additions are blocked, and only the ETH/flETH pair is accepted.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9ea932730a7787000042e34390b8e435dd839040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1.1.2 (Base)", - "description": "A Uniswap v4 hook for Zora content coins that automatically collects LP fees after each swap, converts them to a backing currency via multi-hop paths, and distributes rewards to coin creators and trade referrers. On pool initialization, it creates multiple liquidity positions using Doppler multi-curve configurations.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xa09FF20120D0dC9B9840C3260EA4F2be7e6cE888", - "chain": "base", - "chainId": 8453, - "name": "SuperTokenWrapperHook", - "description": "Hook for upgrading/downgrading (wrapping/unwrapping) SuperTokens (Wrapper Super Tokens) via Uniswap V4 pools. Inspired by the WETHHook from Uniswap V4 Periphery.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/0xPilou/supertoken-wrapper-hook/blob/main/src/SuperTokenWrapperHook.sol" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xa1ebdd5ca6470bbd67114331387f2dda7bfad040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1 (Base)", - "description": "A Uniswap v4 hook for Zora coin pools that sets up multi-position liquidity on pool initialization and, after each swap, collects accrued LP fees, converts them to a backing currency, and distributes rewards to creators, referrers, and the protocol.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb030fd8c2f8576f8ab05cfbbe659285e7d7a1040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1.0.0.1 (Base)", - "description": "A Zora content coin hook that automatically handles fee collection and reward distribution on every swap, converting LP fees to a backing currency and paying out rewards. On pool initialization, it creates multiple Doppler liquidity positions; supports migration to new hook implementations via a registered upgrade gate.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb08211d57032dd10b1974d4b876851a7f7596888", - "chain": "base", - "chainId": 8453, - "name": "WETH Hook", - "description": "A 1:1 ETH/WETH wrapper hook that allows users to swap between ETH and WETH within Uniswap V4 pools. It intercepts swaps to perform native wrapping and unwrapping, blocks direct liquidity operations, and requires pools to be initialized with zero fee.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb429d62f8f3bffb98cdb9569533ea23bf0ba28cc", - "chain": "base", - "chainId": 8453, - "name": "Clanker Static Fee Hook v2 (Base)", - "description": "A Uniswap v4 hook used by the Clanker token launch platform that enforces separate fixed LP fees for the clanker token and the paired token, collects a 20% protocol fee on each swap, and supports optional MEV protection modules and pool extensions.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb476c448da4453208df4e371fee26f4e630d3044", - "chain": "base", - "chainId": 8453, - "name": "SPAWN (Base)", - "description": "SpawnerHook is a Uniswap V4 hook for the SPAWN token ecosystem that takes a configurable fee on each swap and distributes it among token creators, parent token chains, and the protocol. After each swap, it also triggers automatic creation of a new \"spawn\" token via the Spawner contract.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb903b0ab7bcee8f5e4d8c9b10a71aac7135d6fdc", - "chain": "base", - "chainId": 8453, - "name": "Flaunch POSM v3 (Base)", - "description": "A Uniswap v4 hook that manages the full lifecycle of memecoin token launches (\"flaunches\") \u2014 including a fair launch window, an internal swap pool for fee recycling, a BidWall for ETH liquidity concentration, and configurable fee distribution to creators and referrers.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xbb7784a4d481184283ed89619a3e3ed143e1adc0", - "chain": "base", - "chainId": 8453, - "name": "DecayMulticurveInitializerHook", - "description": "A Uniswap v4 hook by Whetstone Research (Doppler v2) that implements time-based linear LP fee decay, lowering fees from a configurable start rate to an end rate over a set duration. Liquidity additions are gated to a designated initializer contract.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xc3b8e77ac038aa260035a1911827086c34a9e844", - "chain": "base", - "chainId": 8453, - "name": "Farstr Hook (Base)", - "description": "Collects swap fees via the afterSwapReturnsDelta mechanism with graduated anti-MEV fee tiers (up to 90%) during a cooldown window following NFT sales, distributing collected ETH to a strategy contract and an optional fee-split address. Pool initialization is restricted to a specific strategy token, and liquidity is permanently locked after the first addition.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xc5a48b447f01e9ce3ede71e4c1c2038c38bd9000", - "chain": "base", - "chainId": 8453, - "name": "Graduation Hook (Base)", - "description": "Restricts pool initialization to a designated Moxie bonding curve address, ensuring Uniswap v4 pools can only be initialized through the authorized bonding curve as part of a token graduation process.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xc8d077444625eb300a427a6dfb2b1dbf9b159040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v2.3.0 (Base)", - "description": "Uniswap v4 hook for Zora Coins that automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards \u2014 with optional trade referral support via hookData and hook migration managed through a registered upgrade gate.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xca51C787E7136dB1cbFd92a24287ea8E9363b0c8", - "chain": "base", - "chainId": 8453, - "name": "Super Strategy", - "description": "An automated liquidity management hook that intercepts a portion of each swap (2% hook fees + 0.3% protocol fees) via beforeSwapReturnsDelta and periodically compounds accumulated fees back into the pool's full-range LP position.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xca975b9daf772c71161f3648437c3616e5be0088", - "chain": "base", - "chainId": 8453, - "name": "Simple Sell Tax Hook", - "description": "Applies a configurable basis-point sell tax when tokens are swapped against ETH or wrapped native assets. The fee is taken from the pool in beforeSwap and sent to a recipient address configured per-token by the token owner.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xced494a8cc54d593dbc7bdc6f4c61a948c932080", - "chain": "base", - "chainId": 8453, - "name": "GovernedLBPStrategy", - "description": "A Liquidity Bootstrapping Pool (LBP) hook that restricts pool initialization to the contract itself and gates swaps behind a governance-controlled approval, ensuring the migration from an initial token distribution phase to a full-range Uniswap v4 position is authorized before trading begins.", - "deployer": "0xBc869216dAD02E1A95c1478a459D064b16F41B24", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0xd3c1f2174f37f88811f99b1b1b4c1356c0246000", - "chain": "base", - "chainId": 8453, - "name": "Aquinas Hook (Base)", - "description": "Restricts Uniswap v4 pool initialization to factory-authorized Safe addresses for Aquinas DAOs, preventing frontrunning of LP initialization by requiring the caller to be pre-approved by the Aquinas factory.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd577f945b6025ce1e60ac1a82f2ee8ff3fb428c4", - "chain": "base", - "chainId": 8453, - "name": "ArtacleIndexHook", - "description": "Non-upgradeable hook that enforces a time-decaying anti-snipe fee mechanism on trades. Charges dynamic fees starting at 95% decaying to 10% on buys, 50% then 10% on sells. Fees distributed: 80% to token contract for NFT acquisitions, 10% to admin, 10% to artblocks.io fund.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/artacle/public-docs/blob/main/artacle_index_hook_audit/Audit-Summary-Report.md" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd60d6b218116cfd801e28f78d011a203d2b068cc", - "chain": "base", - "chainId": 8453, - "name": "Clanker Dynamic Fee Hook v2 (Base)", - "description": "A Clanker v2 hook that dynamically adjusts LP fees based on a volatility accumulator derived from simulated tick movement. It also collects a protocol fee on Clanker token swaps and supports optional MEV protection modules and per-pool extensions via custom swap data.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd61a675f8a0c67a73dc3b54fb7318b4d91409040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v1.1.2 (Base)", - "description": "A Uniswap v4 hook for Zora Creator Coins that initializes multi-curve liquidity positions on pool creation and automatically collects LP fees after each swap, converts them to a backing currency, and distributes market rewards to creators and trade referrers. Supports governed liquidity migration to new hook implementations via an upgrade gate contract.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xdd5eeaff7bd481ad55db083062b13a3cdf0a68cc", - "chain": "base", - "chainId": 8453, - "name": "Clanker Static Fee Hook (Base)", - "description": "A Uniswap v4 hook for the Clanker token launch platform that enforces separate, pre-configured LP fees for the clanker token and its paired token by updating the dynamic LP fee on each swap. It collects a 20% protocol fee from paired-token swaps and supports an optional MEV protection module active during the first two minutes after pool creation.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xE0E522e5888e398d9E5d4D90A48c489425cb2888", - "chain": "base", - "chainId": 8453, - "name": "SETHHook", - "description": "A Uniswap v4 hook that enables 1:1 wrapping and unwrapping of Superfluid's Native Asset SuperToken (ETHx/SETH) within a pool. It intercepts swaps to handle ETH \u2192 ETHx deposits via the SETH upgradeByETH mechanism and ETHx \u2192 ETH withdrawals via downgradeToETH, with no liquidity allowed in the pool.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xe2b4100de1cd284bd364f738d1354715515c90c0", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v2.4.0 (Base)", - "description": "Powers the Zora Coins protocol by managing per-coin Uniswap v4 pools with automated multi-curve liquidity provisioning, a decaying launch fee (99% to 1% over 10 seconds), post-swap reward distribution to creators, referrers, and LPs, and a limit-order fill mechanism on tick crossings.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xe61bdf0c9e665f02df20fede6dcef379cb751040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v1.0.0.2 (Base)", - "description": "Zora's Uniswap v4 hook for content coins that creates multi-curve Doppler liquidity positions on pool initialization, and on every swap collects accrued LP fees, swaps them to the backing currency, and distributes rewards to the protocol, creator, and optional trade referrer encoded in hookData.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xeA9346e83952840E69Beb36Df365C4e68DE0E080", - "chain": "base", - "chainId": 8453, - "name": "LiquidLaunchHook", - "description": "A liquid launch hook that restricts pool initialization to authorized strategies via a factory registry, and automatically converts accumulated fees to a preferred token currency during swaps using nested pool swaps.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xed1698c29928a6c44cddb0c75ab0e5d47eb72a80", - "chain": "base", - "chainId": 8453, - "name": "TWAMM Hook (Base)", - "description": "Implements the Time-Weighted Average Market Maker (TWAMM) strategy, allowing users to place long-horizon token swap orders that are executed gradually over time against the AMM. Before each swap, liquidity add, or liquidity remove, the hook executes any pending TWAMM orders up to the current timestamp.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xF6d0A13609bb5779Bc5D639F2bA3Bfda83D4D0C0", - "chain": "base", - "chainId": 8453, - "name": "ZoraV4CoinHook", - "description": "Powers the Zora Coins protocol by managing per-coin Uniswap v4 pools with automated multi-curve liquidity provisioning, a decaying launch fee (99% to 1% over 10 seconds), and post-swap reward distribution to creators, referrers, and LPs.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/ourzora/zora-protocol/blob/main/packages/coins/src/hooks/ZoraV4CoinHook.sol" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf785bb58059fab6fb19bdda2cb9078d9e546efdc", - "chain": "base", - "chainId": 8453, - "name": "Flaunch POSM v2 (Base)", - "description": "Flaunch's PositionManager hook manages the full lifecycle of fair-launch memecoins on Uniswap v4, including a fair launch window, internal swap pool for fee conversion, a bid wall for automated buy-side liquidity, and fee distribution to creators, protocol, and optional referrers via hookData.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880", - "chain": "base", - "chainId": 8453, - "name": "Arrakis Private Hook (Base)", - "description": "A Uniswap v4 hook for Arrakis private vaults that restricts liquidity additions to the vault's authorized module and dynamically overrides LP fees per swap direction.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xfbce3d80c659c765bc6c55e29e87d839c7609040", - "chain": "base", - "chainId": 8453, - "name": "Zora Creator Hook v1 (Base)", - "description": "A Uniswap v4 hook for Zora Creator Coins that automatically creates liquidity positions on pool initialization and, on every swap, collects LP fees, swaps them to a backing currency, and distributes rewards to coin creators and trade referrals.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xff74be9d3596ea7a33bb4983dd7906fb34135040", - "chain": "base", - "chainId": 8453, - "name": "Zora Post Hook v2.2 (Base)", - "description": "A Zora hook that initializes multi-position Doppler curve liquidity when a Zora coin pool is created, then automatically collects LP fees on every swap, converts them to a backing currency, and distributes rewards to creators, trade referrers, and liquidity providers.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": true, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x011a8ed40095f2d7e9c19125b8254b19678d68cc", - "chain": "bnb", - "chainId": 56, - "name": "ClankerHookDynamicFeeV2", - "description": "Clanker's v2 dynamic fee hook that adjusts LP fees based on a tick-difference volatility accumulator, collecting a 20% protocol fee on each swap. Supports optional MEV protection and pool extension modules.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x0fcb2c049786054fd35330db361a75a88903a8cc", - "chain": "bnb", - "chainId": 56, - "name": "ClankerHookStaticFeeV2", - "description": "Clanker V4 hook v2 for autonomous token deployment with fixed LP fee rates, MEV modules, pool extensions, protocol fee, and LP locker fee collection.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/quantidexyz/clanker-v4/blob/main/audits/macro_v4_audit_2.pdf" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x65ba941cdfec82af6686784ecaf4bc1b45f328cc", - "chain": "bnb", - "chainId": 56, - "name": "ClankerHookDynamicFee", - "description": "Clanker V4 hook for autonomous token deployment with dynamic fees that adjust based on trading volume.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/quantidexyz/clanker-v4/blob/main/audits/cantina_v4_audit_1.pdf" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x8a36d8408f5285c3f81509947bc187b3c0efd0c4", - "chain": "bnb", - "chainId": 56, - "name": "BVCC Dynamic Fee Hook (BNB)", - "description": "Dynamically adjusts LP fees per swap based on gas price levels, price volatility, and 24-hour trading volume, with an anti-bot cooldown penalty for frequent swappers. Also collects a small hook fee from swap output amounts via afterSwapReturnsDelta.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb3ea59248e7d7dbb9e0ea5f1f8a5b0d33ab5e8cc", - "chain": "bnb", - "chainId": 56, - "name": "ClankerHookStaticFee", - "description": "Clanker V4 hook for autonomous token deployment with fixed LP fee rates for buys/sells.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/quantidexyz/clanker-v4/blob/main/audits/cantina_v4_audit_1.pdf" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd0c5728911a9f67efe47cf25411c2e052a2fe8cc", - "chain": "bnb", - "chainId": 56, - "name": "ClankerHookDynamicFeeV2", - "description": "Clanker V4 hook v2 for autonomous token deployment with dynamic fees that adjust based on trading volume, MEV modules, and pool extensions.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/quantidexyz/clanker-v4/blob/main/audits/macro_v4_audit_2.pdf" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x0000000aa232009084Bd71A5797d089AA4Edfad4", - "chain": "ethereum", - "chainId": 1, - "name": "Angstrom", - "description": "Angstrom is a decentralized exchange that takes control of its transaction ordering, preventing value extraction from liquidity providers and traders. By running application-specific auctions, Angstrom internalizes MEV and redirects the extracted value back to users, preventing arbitrage losses and sandwich attacks while reducing trading fees and gas.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/spearbit/portfolio/blob/master/pdfs/Sorella-Spearbit-Security-Review-October-2024.pdf" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": true, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x00001f3b9712708127b1fcad61cb892535951888", - "chain": "ethereum", - "chainId": 1, - "name": "BunniHook", - "description": "Core hook for Bunni v2, a concentrated liquidity protocol on Uniswap v4. Implements a virtual AMM with dynamic fees (TWAP-based + surge detection), am-AMM bidding for LVR/MEV recapture, auto-rebalancing via FloodPlain, and an on-chain price oracle.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x000b70f7cd351f7479d1aa6f1354d32ed8821080", - "chain": "ethereum", - "chainId": 1, - "name": "Nuclear Man's Pool Trader Hook", - "description": "A dynamic fee hook that adjusts LP fees based on volatility by comparing spot price from a Uniswap V2 pair against an exponential moving average filter \u2014 keeping fees low during calm markets and raising them up to 25% during high-volatility periods. It also collects a configurable developer fee on each swap.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x00bbc6fc07342cf80d14b60695cf0e1aa8de00cc", - "chain": "ethereum", - "chainId": 1, - "name": "Action Hook", - "description": "Captures a configurable basis-point fee from BUX/ETH pool swaps, splitting proceeds between an action funding contract (for hourly and daily rewards) and a dev fee splitter via beforeSwap and afterSwap return deltas.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x044301939deb7ca53c4733dd4d9b3bc5ea0c6888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few ETH Hook", - "description": "A hook that enables 1:1 wrapping and unwrapping between ETH and fwWETH (Few Wrapped ETH) in Uniswap v4 pools, intercepting swaps via beforeSwap and using delta returns to handle token conversions entirely within the hook.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x0fe942afdb2f51e25cbf892aad175c6a574f2888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few WBTC Hook", - "description": "Enables 1:1 wrapping and unwrapping between a token and its Ring Protocol fewToken wrapper during Uniswap v4 swaps. Validates that pools are formed exclusively between the underlying token and its fewToken counterpart with zero fees.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x10865f8301d46a61Badc726DE44d9D4F00F68440", - "chain": "ethereum", - "chainId": 1, - "name": "Upeg", - "description": "Allows the deployer to define SVG data and read it using a specified seed. Stores metadata for collectible ERC-20 tokens. Calls start on the configured token when first liquidity is added, and updates randomSeed on swaps.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/ChainCreators/Upeg/tree/main/upegs_hook" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x3a3a9a072ab438335a52E0cF064F7ec91D824080", - "chain": "ethereum", - "chainId": 1, - "name": "CustomHook", - "description": "Hook for applying a dynamic (changeable) fee for any pool the hook works with. On each swap, it calls poolManager.updateDynamicLPFee() with an admin-configurable fee rate, and is deployed behind a TransparentUpgradeableProxy.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": true, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x3ba779bad405d9b68a7a7a86ff6916c806a200cc", - "chain": "ethereum", - "chainId": 1, - "name": "Meme Strategy Hook (Ethereum)", - "description": "A Uniswap v4 hook for the MEMS meme token that collects dynamic asymmetric swap fees (Phase 1: 50%, Phase 2: 10\u201390%) on ETH\u2194MEMS swaps, splitting proceeds 80/20 between a strategy contract and treasury. Includes anti-snipe protection that blocks public swaps until trading is activated by the strategy.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x4b2eb653d13e6c9ac5a0a01fde22f2c8d6592888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few USDC Hook", - "description": "A hook that facilitates seamless 1:1 wrapping and unwrapping of an ERC20 token and its Ring Few-wrapped counterpart (fewToken) within a Uniswap v4 pool, intercepting swaps in beforeSwap to perform the wrap or unwrap operation and returning a delta to settle the exchange.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x4b3e2a8cf36c7eb0fba2a5b39b20c896c6f22888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few UNI Hook", - "description": "A hook that enables atomic wrapping and unwrapping of Few Protocol wrapper tokens within Uniswap v4 swaps, enforcing a 1:1 exchange rate between an ERC20 token and its fewToken equivalent.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5287E8915445aee78e10190559D8Dd21E0E9Ea88", - "chain": "ethereum", - "chainId": 1, - "name": "Cork AMM (Ethereum)", - "description": "Cork AMM is a custom Uniswap v4 hook for the Cork Protocol that implements a specialized AMM for depeg-swap token pairs (RA and CT). It replaces the standard Uniswap price curve with its own pricing logic, gates all native liquidity modifications through the hook's own interface, and supports optional flash swaps via a CorkSwapCallback pattern.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5725dF570e0008997daCef46bC179bbFc4D125cc", - "chain": "ethereum", - "chainId": 1, - "name": "Auto Liquidity Generator", - "description": "Collects configurable buy and sell taxes (in WETH) on every swap. Once accumulated fees reach a configurable threshold, deducts a platform fee (20\u201350% of the accumulated amount) sent to a designated collector, then uses the remainder to buy the paired token and add full-range protocol-owned liquidity. Residual tokens after liquidity addition are burned.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x57991106cb7aa27e2771beda0d6522f68524a888", - "chain": "ethereum", - "chainId": 1, - "name": "WETH Hook", - "description": "A Uniswap v4 hook that enables seamless ETH/WETH wrapping and unwrapping within v4 pools at a 1:1 ratio. It intercepts swaps to deposit or withdraw ETH from the WETH contract in-flight, supporting both exact input and exact output swaps, while blocking liquidity operations since the pool serves purely as a conversion mechanism.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x5d8a61fa2ced43eeabffc00c85f705e3e08c28c4", - "chain": "ethereum", - "chainId": 1, - "name": "TokenWorks Hook v5", - "description": "A Uniswap v4 hook for NFT-backed range liquidity pools that validates pool initialization with an NFT collection, restricts liquidity additions to the NFTStrategyFactory, and takes a dynamic swap fee on behalf of NFT strategy holders via afterSwap delta returns.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x6c24d0bcc264ef6a740754a11ca579b9d225e8cc", - "chain": "ethereum", - "chainId": 1, - "name": "Clanker Static Fee Hook", - "description": "A Uniswap v4 hook for the Clanker token launchpad that enforces per-pool static LP fees configured at initialization, collects protocol fees on the paired token, and supports optional MEV-protection modules and pool extensions.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x6e1babe41d708f6d46a89cda1ae46de95458e444", - "chain": "ethereum", - "chainId": 1, - "name": "Strategic Reserve Hook", - "description": "Manages fee collection and distribution for Strategic Reserve ETH/token pools, implementing a time-decaying buy fee that starts high (up to 80%) and decreases to a configurable floor (4-10%), with fees distributed to reserve contracts and protocol recipients.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x6fb14025194d3921942B269ba49c988fbD3fC0Cc", - "chain": "ethereum", - "chainId": 1, - "name": "TaxHook", - "description": "Collects configurable buy and sell taxes on swaps involving the boom.fun BOOM token, splitting fees between a global team address and per-pool developer addresses. Overrides LP fees to zero and applies custom basis-point tax rates via beforeSwap (sell-side) and afterSwap (buy-side) delta returns.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x74803bd586fa5ce3a9ab38b49a7ca633af8700cc", - "chain": "ethereum", - "chainId": 1, - "name": "Token Flow Tax Hook (Ethereum)", - "description": "A Uniswap v4 hook that applies configurable taxes on TOKEN/ETH swaps, collecting native ETH taxes on both inflows and outflows. Supports multiple tokens sharing one hook, with a configurable owner cut of all taxes collected.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x75ae0292e8ad3ab60b9a1a7b3046d3f4abdfa888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few WSTETH Hook (Ethereum)", - "description": "Wraps and unwraps wstETH (a Few-wrapped token) on-the-fly during Uniswap v4 swaps, enabling seamless 1:1 conversion between the underlying ERC20 and its Few-wrapped counterpart in a zero-fee pool.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x8347b7a3807c681513d2b51b8223e59aa16a2888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few CBBTC Hook", - "description": "Enables atomic 1:1 wrapping and unwrapping between an ERC20 token and its Few-wrapped equivalent within Uniswap v4 swaps, intercepting beforeSwap to perform the wrap/unwrap and returning the delta directly without going through the pool AMM.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x85b648a64aed6307d5d5ce26e6ae086c17bde888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few DAI Hook (Ethereum)", - "description": "A Uniswap v4 hook that enables seamless wrapping and unwrapping of Few Token (fewToken) during swaps at a 1:1 ratio. It intercepts swaps to wrap the underlying ERC20 token into fewToken or unwrap fewToken back to the underlying token, validating that the pool only contains the wrapper and underlying token pair with zero fees.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x877323adbf747f85eb8d182d42f01f34a5492888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few WEETH Hook (Ethereum)", - "description": "A 1:1 wrapping/unwrapping hook for Ring Protocol's Few Wrapped WEETH token on Uniswap v4, enabling seamless swaps between WEETH and its few-wrapped variant. The hook intercepts swaps to atomically wrap or unwrap tokens using BeforeSwapDelta, and validates pool initialization to ensure only the wrapper/underlying pair with zero fee is permitted.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xA312884b73862377317f0071eC6eB5404025A8C4", - "chain": "ethereum", - "chainId": 1, - "name": "999WHL Hook", - "description": "Takes 10% buy and sell fee, used to buy digits ENS NFTs. Same flywheel as NFTStrategy.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xa88aacf73df2bccfabcfd1e7b597185cac9f2888", - "chain": "ethereum", - "chainId": 1, - "name": "WstETHHook", - "description": "A Uniswap v4 hook that enables seamless wrapping and unwrapping between stETH and wstETH during swaps, applying the dynamic stETH/wstETH exchange rate in beforeSwap and settling token deltas directly with the pool manager. Liquidity additions are blocked; all exchange is handled exclusively through the hook.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/Uniswap/contracts/pull/93" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xaf53cb78035a8e0acce38441793e2648b15b88a0", - "chain": "ethereum", - "chainId": 1, - "name": "M0 Allowlist Hook", - "description": "An access-control hook that restricts swaps to allowlisted addresses using the Predicate authorization system and restricts liquidity provision to approved providers; donations are blocked.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": true, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "allowlist" - } - }, - { - "hook": { - "address": "0xbadf77d50478b4432ef1f243b9c0bc7869486888", - "chain": "ethereum", - "chainId": 1, - "name": "Ring Few USDT Hook", - "description": "Wraps and unwraps USDT to/from fewUSDT (Ring Protocol's wrapped token) automatically during swaps in Uniswap v4 pools, performing 1:1 conversions and absorbing the full swap delta via beforeSwapReturnsDelta.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xbd15e4d324f8d02479a5ff53b52ef4048a79e444", - "chain": "ethereum", - "chainId": 1, - "name": "TokenWorks Hook v2", - "description": "A Uniswap v4 hook for NFTStrategy trading pools that applies time-decaying buy fees (starting at 99% and decreasing to 10% as blocks accumulate) and a flat 10% sell fee, collecting fees via afterSwap delta returns and distributing them to configured recipients.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xC804Af6EaA8269C71848e114571f2Dd5314C4044", - "chain": "ethereum", - "chainId": 1, - "name": "TaxStrategyHook", - "description": "A revenue-sharing hook that charges 10% fee on all swaps, automatically converting fees to ETH for strategic allocation: 90% to an automated treasury that invests in ETF-candidate tokens, 10% to development fund. Includes automated profit-taking at 10% gains with buyback-and-burn mechanism.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/ETFStrategy/etf-strategy-uniswap-v4" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd53006d1e3110fd319a79aeec4c527a0d265e080", - "chain": "ethereum", - "chainId": 1, - "name": "VirtualLBPStrategyBasic", - "description": "A hook implementing a Virtual Liquidity Bootstrapping Pool (LBP) strategy for token launches. It restricts pool initialization to the contract itself and gates all swaps on a migration approval flag, enabling controlled token distribution.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "governance" - } - }, - { - "hook": { - "address": "0xd5770936a6678353f1b17c342b29c4416b029080", - "chain": "ethereum", - "chainId": 1, - "name": "Custom Fee MEV Protection Hook (Ethereum)", - "description": "A Uniswap v4 hook for TOKEN/ETH and TOKEN/WETH pools that applies configurable directional buy/sell fee overrides and optional anti-MEV protections including blacklisting, one-trade-per-block enforcement, cooldown periods, and maximum sell amount limits.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xd6a45df0c82c9a686ab1e58fb28d8fc0cf106444", - "chain": "ethereum", - "chainId": 1, - "name": "TokenWorks Hook v3", - "description": "A Uniswap v4 hook by TokenWorks that manages fee collection and distribution for NFT strategy ETH/token pools. It enforces ETH/token-only pool initialization via the factory, applies a time-decaying buy fee (starting at 95% and decreasing to 10% over blocks), and uses afterSwapReturnsDelta to skim fees and distribute them to the protocol, stakers, and collection owners.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xdad7ea85ff786b389a13f4714a56b1721b56c044", - "chain": "ethereum", - "chainId": 1, - "name": "Asterix Hook", - "description": "A fee-collection hook that takes a configurable percentage of each swap's unspecified output token: for native ETH outputs the fee is forwarded to a treasury, while for ERC-20 outputs it is burned by sending to a dead address. A separate configurable portion is always forwarded to a main treasury.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xde400595199e6dae55a1bcb742b3eb249af00800", - "chain": "ethereum", - "chainId": 1, - "name": "M0 Tick Range Hook", - "description": "Restricts liquidity provision to a configurable tick range by reverting in beforeAddLiquidity if the position's ticks fall outside the allowed bounds. An authorized manager role can update the tick range.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xe3c63a9813ac03be0e8618b627cb8170cfa468c4", - "chain": "ethereum", - "chainId": 1, - "name": "TokenWorks Hook v4", - "description": "A hook for the TokenWorks NFT strategy ecosystem that restricts pool initialization and liquidity addition to the NFTStrategyFactory, and collects a configurable swap fee (default 10%, with a 95% initial buy fee) distributed among the collection owner, a protocol fee address, and PNKSTR token holders.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xe54082DfBf044B6a8F584bdDdb90a22d5613C440", - "chain": "ethereum", - "chainId": 1, - "name": "UpegHook", - "description": "Stores on-chain SVG data for collectible ERC-20 tokens. Calls start on the configured token when first liquidity is added, and updates a random seed on each swap involving that token.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://github.com/ChainCreators/Upeg" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf13bdafb90c79f2201e2ce42010c8ef75fede8c4", - "chain": "ethereum", - "chainId": 1, - "name": "ENS Wheel Hook", - "description": "A Uniswap v4 hook for the ENSWheel protocol that restricts pool initialization and liquidity additions to the ENSWheel factory, and applies a time-decaying buy fee (starting at 95%, decreasing to 10% over time) distributed between the ENS collection engine (80%) and a configurable team address (20%).", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf9527fb5a34ac6fbc579e4fbc3bf292ed57d4880", - "chain": "ethereum", - "chainId": 1, - "name": "Arrakis Private Hook (Ethereum)", - "description": "Restricts liquidity additions to authorized Arrakis LP modules for private vaults, and applies per-direction dynamic fee overrides on swaps via the Uniswap v4 LP fee override mechanism.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xf9ced7d0f5292af02385410eda5b7570b10b50c4", - "chain": "ethereum", - "chainId": 1, - "name": "BVCC Dynamic Fee Hook (Ethereum)", - "description": "An advanced anti-bot Uniswap v4 hook by BlockVenture Chain Capital that dynamically adjusts LP fees based on gas price levels, volatility, and 24-hour pool volume. It applies a repeat-swap penalty to deter bot activity and collects a small hook fee from each swap's output amount.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x580ca49389d83b019d07E17e99454f2F218e2dc0", - "chain": "monad", - "chainId": 143, - "name": "UniswapV4ScheduledMulticurveInitializerHook", - "description": "A Doppler protocol hook (by Whetstone Research) that gates pool initialization and liquidity additions to an authorized initializer contract, and enforces a configurable start time before which swaps are blocked.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": true, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "temporal" - } - }, - { - "hook": { - "address": "0x480dafdb4d6092ef3217595b75784ec54b52e888", - "chain": "optimism", - "chainId": 10, - "name": "WETH Hook (Optimism)", - "description": "A Uniswap v4 hook that enables seamless wrapping and unwrapping of ETH to WETH within a pool, intercepting swaps to perform 1:1 ETH\u2194WETH conversions while blocking direct liquidity operations.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb35297543d357ef62df204d8c3bd0e96038cf440", - "chain": "optimism", - "chainId": 10, - "name": "Findex Hook (Optimism)", - "description": "A Uniswap v4 hook for the Findex protocol that restricts pool initialization and liquidity additions to whitelisted pools and authorized providers, while managing dynamic LP fees and granting transfer exceptions to limited-account holders after swaps and liquidity events.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x15cD9520D0fAF71c938Db4426F8C58B5cBAa9ACc", - "chain": "polygon", - "chainId": 137, - "name": "Aegis V1.1", - "description": "Dynamic fee hook designed to optimize capital efficiency, protect LP value, and automatically adapt to market volatility.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "https://docs.aegis.markets/audits" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x09dea99d714a3a19378e3d80d1ad22ca46085080", - "chain": "unichain", - "chainId": 130, - "name": "Renzo Hook (Unichain)", - "description": "A peg stability hook for the ETH/ezETH pool that charges a minimum fee for trades moving toward the peg and a linearly-scaled fee based on deviation from the ezETH rate provider price for trades moving away from the peg.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x2016c0e4f8bb1d6fea777dc791be919e2eda40c0", - "chain": "unichain", - "chainId": 130, - "name": "Limit Order Hook (Unichain)", - "description": "Enables limit order functionality on Uniswap v4 pools by storing the pre-swap tick in transient storage and executing limit orders after each swap based on tick crossings. Also supports dynamic LP fee updates through a role-based access control system.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x27bfccf7fdd8215ce5dd86c2a36651d05c8450cc", - "chain": "unichain", - "chainId": 130, - "name": "Aegis v1 Hook (Unichain)", - "description": "A dynamic fee hook that uses a truncated geometric oracle to compute adaptive swap fees based on market volatility. Protocol fees are collected from swaps (both exact-in and exact-out) and automatically reinvested into full-range liquidity positions via an integrated liquidity manager.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x730b109bad65152c67ecc94eb8b0968603dba888", - "chain": "unichain", - "chainId": 130, - "name": "WETH Hook (Unichain)", - "description": "A 1:1 ETH/WETH wrapper hook that intercepts swaps in beforeSwap to wrap ETH into WETH or unwrap WETH into ETH, bypassing the pool's AMM math via BeforeSwapDelta. Liquidity additions are blocked \u2014 the hook itself manages liquidity.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x79330fe369c32a03e3b8516aff35b44706e39080", - "chain": "unichain", - "chainId": 130, - "name": "Panoptic Oracle Hook (Unichain)", - "description": "Records price observations on each swap and initializes oracle state on pool initialization, exposing a Uniswap V3-compatible oracle interface with both standard and truncated tick adapters deployed per pool.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": true, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x88c9ff9fc0b22cca42265d3f1d1c2c39e41cdacc", - "chain": "unichain", - "chainId": 130, - "name": "Aegis v3 Hook (Unichain)", - "description": "A dynamic AMM hook that adjusts LP fees based on market volatility using a truncated geometric oracle with surge fee mechanism, enforces tick movement caps to limit price manipulation, and automatically reinvests protocol fees into full-range liquidity positions.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0x9b37a43422d7bbd4c8b231be11e50ad1ace828cc", - "chain": "unichain", - "chainId": 130, - "name": "Clanker Dynamic Fee Hook (Unichain)", - "description": "A Clanker-integrated hook that dynamically adjusts LP fees based on price volatility (tick-difference accumulation with decay), charging a base fee plus a variable component scaled by recent price movement. It also extracts a 20% protocol fee on non-clanker token sides of swaps, and temporarily protects newly launched pools via a configurable MEV module for the first 2 minutes post-creation.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xa0b0d2d00fd544d8e0887f1a3cedd6e24baf10cc", - "chain": "unichain", - "chainId": 130, - "name": "Aegis v2 Hook (Unichain)", - "description": "Spot is a Uniswap v4 hook that implements dynamic fee management using a truncated geometric oracle and a DynamicFeeManager to compute base and surge fees based on recent trading activity. It also collects protocol fees and reinvests them into a full-range liquidity position via a FullRangeLiquidityManager.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": true, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xb9a17e66db950e00822c2b833d6bb304c9b86080", - "chain": "unichain", - "chainId": 130, - "name": "MEVTaxTestInProd", - "description": "Implements a priority-fee-proportional MEV tax as a dynamic LP fee. On each swap, the fee is scaled proportionally to the transaction's priority fee relative to the highest priority fee observed in the previous block, with owner-configurable minimum and maximum bounds.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xbc6e5abda425309c2534bc2bc92562f5419ce8cc", - "chain": "unichain", - "chainId": 130, - "name": "Clanker Static Fee Hook (Unichain)", - "description": "Applies configurable, direction-dependent static fees to swaps involving Clanker-deployed tokens, collecting protocol fees from the paired token side. Includes an optional MEV-protection module that is active for the first two minutes after pool deployment.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": true, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xcc2efb167503f2d7df0eae906600066aec9e8444", - "chain": "unichain", - "chainId": 130, - "name": "Uniderp Hook (Unichain)", - "description": "A fee-collection and referral hook for Uniderp token launches on Unichain that takes a 1% fee on swaps and distributes it among token creators, multi-level referrers (up to 3 tiers), and the platform via afterSwapReturnsDelta. It also records referral relationships during swaps and liquidity additions when a referrer address is provided in hookData.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": false, - "afterInitialize": false, - "beforeAddLiquidity": false, - "afterAddLiquidity": true, - "beforeRemoveLiquidity": false, - "afterRemoveLiquidity": false, - "beforeSwap": false, - "afterSwap": true, - "beforeDonate": false, - "afterDonate": false, - "beforeSwapReturnsDelta": false, - "afterSwapReturnsDelta": true, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": true, - "vanillaSwap": false, - "swapAccess": "none" - } - }, - { - "hook": { - "address": "0xcdfcab084b2d29025772141d3bf473bd9673aaa8", - "chain": "unichain", - "chainId": 130, - "name": "Universal Hook (Unichain)", - "description": "A JIT (Just-In-Time) liquidity hook that intercepts swaps via beforeSwap and fulfills them internally at oracle-reported prices through a MerchantController-managed liquidity system. Standard liquidity additions and removals are blocked; only owner-initialized, oracle-whitelisted pools with an approved pair token are supported.", - "deployer": "", - "verifiedSource": true, - "auditUrl": "" - }, - "flags": { - "beforeInitialize": true, - "afterInitialize": false, - "beforeAddLiquidity": true, - "afterAddLiquidity": false, - "beforeRemoveLiquidity": true, - "afterRemoveLiquidity": false, - "beforeSwap": true, - "afterSwap": false, - "beforeDonate": true, - "afterDonate": false, - "beforeSwapReturnsDelta": true, - "afterSwapReturnsDelta": false, - "afterAddLiquidityReturnsDelta": false, - "afterRemoveLiquidityReturnsDelta": false - }, - "properties": { - "dynamicFee": false, - "upgradeable": false, - "requiresCustomSwapData": false, - "vanillaSwap": false, - "swapAccess": "none" - } - } -] diff --git a/site/public/hooklist.json b/site/public/hooklist.json new file mode 120000 index 00000000..e47ccc83 --- /dev/null +++ b/site/public/hooklist.json @@ -0,0 +1 @@ +../../hooklist.json \ No newline at end of file