Pleat on Robinhood Chain
Uniswap v4 Hook Contract 0xa2ceae10f1ff56ca87b43a8407a9fe6a09cee0cc on Robinhood Chain · Custom pricing · Verified contract
- Volume (24h)
- $674
- Value locked (TVL)
- $0
- All-time volume
- $674
- Pools using this hook
- 1
- Swaps (24h)
- 18 (6 traders)
- Total swaps
- 18
What it does
Pleat takes a fixed 0.75% to 5% levy in ETH on every swap through its home pool, applied equally to buys and sells, and sorts it into four pockets that only their fixed holders can draw.
This read was written for the hook 0xd849…a0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Pleat is an ERC20 token that is also the hook of its own Uniswap v4 pool, with ETH as currency0 and the token as currency1, fee 0 and tick spacing 1.
- On each swap through the home pool a levy of 0.75% to 5% (levyBps, fixed at creation) is taken in ETH via beforeSwapReturnDelta or afterSwapReturnDelta, and minted to the PoolManager as an ERC-6909 claim owned by the hook.
- Collected levy is sorted into four pockets: 80% to origin/circle split by creditsBps, 10% to commons, remainder to fold.
- Each pocket can only be drawn by its fixed holder through draw(), which burns the claim and transfers ETH from the PoolManager to that holder.
- Liquidity callbacks (add, remove, donate, initialize other than the seated home pool) revert with NotWired, so liquidity can only be added through the pool's normal path and the hook takes no part in it.
- Supply of one billion tokens is minted once to the Crease in the constructor; ownership is renounced in the constructor.
- Swap behaviour
- Swaps through the home pool are levied in ETH. Buying coin with exact ETH in: levy is cut from the ETH sent before the pool sees the rest. Selling coin for exact ETH out: the pool is asked for a grossed-up ETH amount and the levy is the difference. Buying exact coin out or selling exact coin in: levy is computed afterwards from the ETH actually moved. Swaps through any other pool revert with ForeignPool.
- Liquidity behaviour
- No liquidity callbacks; every liquidity hook reverts with NotWired.
- Fee behaviour
- The pool's static fee is 0; the hook takes a separate ETH levy of levyBps (75 to 500 basis points, fixed at creation) on each swap via return deltas. Levy is split 80% origin side (of which creditsBps goes to circle), 10% commons, and the remainder to fold. Buyers and sellers pay the same rate.
- Owner & admin controls
- Ownership is renounced in the constructor so owner() returns zero; there is no pause, blacklist, fee setter, or upgrade path in the code. All pocket holders, levy rate and credits split are immutable. Only the registered holder of each pocket can draw it.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize seats the single home pool with the exact canonical key; beforeSwap takes the levy for exact-ETH-in buys and exact-ETH-out sells and applies the gross-up; afterSwap computes and enforces the levy for coin-named legs and reverts with ShortFill if the fill does not match the expected amount; beforeSwapReturnDelta and afterSwapReturnDelta let the hook claim the levy amounts as deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No privileged key remains after creation: ownership is renounced in the constructor and no setter exists. The only role is the fixed pocket holders, who can draw their own shares; they cannot alter swaps, pricing or other holders' pockets.
Risk to user funds: The hook holds ETH claims in the PoolManager backing the levy pockets and can move them only to the fixed holders via draw(). It cannot touch pool liquidity or user balances outside the levy, and cannot block swaps except through the ShortFill and AmountOffScale reverts.
Security findings
- [info] Return deltas take value from every swap: The hook claims ETH through beforeSwap and afterSwap return deltas on each home-pool swap, at a fixed rate between 0.75% and 5% that cannot be changed after creation.
- [low] Sell-side levy relies on a gross-up calculation: For exact-ETH-out sells the hook requests a grossed-up ETH amount in beforeSwap and checks the fill in afterSwap; a mismatch reverts with ShortFill, which can block that swap path rather than move funds.
- [info] Fixed pocket holders with no rotation: The origin, circle, commons and fold addresses are immutable, so if a holder loses its key its share of the claim cannot be redirected by anyone.
- [info] Renounced ownership is set in the constructor: Ownable is used only to expose owner() and it is renounced in the same transaction, so no privileged key remains for later changes.
Contract details
- Verified source
- Yes (Pleat)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 8,098 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, return-delta, self-unlock
Pools using Pleat
- ETH / FOLD (0.00% fee) — 24h volume $674, TVL $0, 18 swaps today