Skip to content

Add MemeFolioTaxHook hook on robinhood#1098

Merged
Ponx merged 1 commit into
mainfrom
hooks/robinhood/0x29a2a39143f5aafba61bb8c649bc7c7d50b1e0cc
Jul 16, 2026
Merged

Add MemeFolioTaxHook hook on robinhood#1098
Ponx merged 1 commit into
mainfrom
hooks/robinhood/0x29a2a39143f5aafba61bb8c649bc7c7d50b1e0cc

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

Immutable 3% native-ETH swap tax hook for a single ETH/token pool. Tax is taken in beforeSwap (on buys) and afterSwap (on sells) via BeforeSwapDelta/AfterSwapDelta, stored as PoolManager claims, and permissionlessly distributed 2:1 to immutable buyback and treasury wallets.

Flags

Flag Value
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

Property Value
dynamicFee false
upgradeable false
requiresCustomSwapData false
vanillaSwap false
swapAccess none

Warnings

  • Submitter did not provide a description. Using AI-generated description.

Closes #1095

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hooklist Ready Ready Preview, Comment Jul 16, 2026 3:08pm

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: hooks/robinhood/0x29a2a39143f5aafba61bb8c649bc7c7d50b1e0cc.json

Address Flags

Decoding the lower 14 bits of 0x...e0cc:
0xE0CC & 0x3FFF = 0x20CC → bits 13, 7, 6, 3, 2 are set.

Flag Bit Address JSON Source
beforeInitialize 13 true permissions.beforeInitialize = true
afterInitialize 12 false not set
beforeAddLiquidity 11 false not set
afterAddLiquidity 10 false not set
beforeRemoveLiquidity 9 false not set
afterRemoveLiquidity 8 false not set
beforeSwap 7 true permissions.beforeSwap = true
afterSwap 6 true permissions.afterSwap = true
beforeDonate 5 false not set
afterDonate 4 false not set
beforeSwapReturnsDelta 3 true permissions.beforeSwapReturnDelta = true
afterSwapReturnsDelta 2 true permissions.afterSwapReturnDelta = true
afterAddLiquidityReturnsDelta 1 false not set
afterRemoveLiquidityReturnsDelta 0 false not set

All flags match address bitmask and getHookPermissions().

Properties

  • dynamicFee: false ✓ — _beforeSwap returns 0 as the fee override. The pool uses POOL_LP_FEE = 0 (static). poolManager.updateDynamicLPFee() is never called.
  • upgradeable: false ✓ — No proxy, no delegatecall, no mutable implementation storage. source_meta.json confirms "proxy": false. Buyback/treasury wallets are immutable.
  • requiresCustomSwapData: false ✓ — _beforeSwap and _afterSwap both accept bytes calldata but never read it. Swaps work correctly with empty hookData.
  • vanillaSwap: false ✓ — Correct: beforeSwapReturnsDelta and afterSwapReturnsDelta are true and the hook extracts a 3% tax that modifies effective swap amounts.
  • swapAccess: "none" ✓ — _beforeSwap only calls _validatePool(key) to verify pool identity (correct pool), but imposes no access control on the caller. Any address can swap.

Metadata

  • verifiedSource: true ✓ — Confirmed by source_meta.json.
  • chainId: 4663 ✓ — Matches chains.json entry for robinhood.
  • name: "MemeFolioTaxHook" ✓ — Matches contractName in source_meta.json and the @title NatSpec in source.
  • description ✓ — Accurate and factual:
    • "3% native-ETH swap tax" — TAX_BPS = 300, currency0 is address zero (native ETH) enforced by _validatePool.
    • "single ETH/token pool" — _validatePool restricts to exactly one pool (native + specific projectToken).
    • "beforeSwap (on buys) and afterSwap (on sells)" — _beforeSwap handles exact-input buy side when native ETH is the specified currency; _afterSwap handles the sell side.
    • "stored as PoolManager claims" — key.currency0.take(..., true) uses the claims accounting path.
    • "permissionlessly distributed 2:1" — collectNativeTax() has no access control; BUYBACK_BPS = 200, TREASURY_BPS = 100 (2:1 ratio).
    • "immutable buyback and treasury wallets" — both declared immutable, no setters.

No promotional, audit, safety, or endorsement language present.

Verdict

All flags, properties, and metadata are correct and substantiated by the on-chain source code.

@Ponx
Ponx merged commit 86af0ba into main Jul 16, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hook: MemeFolioTaxHook on Robinhood Chain

1 participant