Barb on Robinhood Chain
Uniswap v4 Hook Contract 0x4139ea010c23341d4a043b3aa1054e715a96e0cc on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $95
- Value locked (TVL)
- $0
- All-time volume
- $95
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
Barb is a token whose home ETH pool charges traders a fixed 0.75% to 5% tithe in ETH on every swap, and that tithe is split into four quivers paid out to fixed bearer addresses, so every swap through the home pool costs slightly more than the pool price.
How it works step by step
- Acts as an ERC20 token (Barb, fixed supply of 1 billion minted once to the Stave) and as the hook of its own ETH/Barb Uniswap v4 pool, which must be initialised with fee 0, tickSpacing 1 and this contract as hook.
- On every swap through the home pool a tithe of 0.75% to 5% (titheBps fixed at deployment) is taken in ETH via beforeSwapReturnDelta or afterSwapReturnDelta, so the hook keeps the tithe as a delta outside the pool price.
- The tithe is minted as an ERC-6909 ETH claim held by the hook inside the PoolManager and is split into four fixed quivers: 80% to the cutter side (split between cutter and guild by creditsBps), 10% to greenwood, and the remainder to keep.
- Each quiver can be emptied only by its fixed bearer address via empty(), which burns the claim and sends ETH to that bearer through the PoolManager unlock callback.
- Liquidity callbacks (add, remove, donate, afterInitialize) are all wired to revert with NotWired, so liquidity can only be managed through the normal pool without hook logic.
- Swap behaviour
- Swaps through the home ETH/Barb pool pay an extra tithe in ETH on top of the pool price: buys with exact ETH input have the tithe cut from the ETH sent before the pool sees it, sells for exact ETH output are grossed up so the tithe is the difference, and legs named in coin amounts are tithed in afterSwap on the actual ETH moved. Swaps through any other pool revert with WrongRange.
- Liquidity behaviour
- No liquidity callbacks. All liquidity hooks revert with NotWired, so the home pool cannot be modified through hook-controlled liquidity actions.
- Fee behaviour
- The pool itself is initialised with fee 0; the only cost to traders is the hook tithe of titheBps (75 to 500 bps, fixed at deployment), taken in ETH and dealt into the four quivers. Its breakdown is 80% cutter side (of which creditsBps goes to the guild), 10% greenwood, and the rest to keep.
- Owner & admin controls
- Ownership is renounced in the constructor, so owner() is zero and no privileged owner exists. There is no pause, blacklist, upgrade mechanism or parameter setter; titheBps, creditsBps and all quiver bearer addresses are immutable. Each quiver's bearer alone controls withdrawals from that quiver.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool initialisation to the Stave with the exact canonical key; beforeSwap computes and takes the tithe on ETH-in exact-in and ETH-out exact-out legs; afterSwap computes and takes the tithe on coin-named legs and reverts with ShortShot if the leg did not fill as expected; beforeSwapReturnDelta and afterSwapReturnDelta let the hook return the tithe as a delta to the PoolManager.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key can change fees, pause trading or move funds. The only privileged parties are the four immutable quiver bearers, each of which can withdraw only its own quiver balance.
Risk to user funds: The hook holds ETH tithe only as ERC-6909 claims inside the PoolManager, withdrawable solely by the fixed bearers. Trader funds pass through the pool and are not custodied by the hook beyond the tithe delta.
Security findings
- [info] Tithe is taken on every home-pool swap: The hook takes up to 5% of each swap as ETH via return deltas, which is a fixed, disclosed cost to traders rather than a hidden fee, since titheBps is immutable and bounded between 75 and 500 bps.
- [info] Fixed quiver bearers receive all tithe value: The cutter, guild, greenwood and keep addresses are set at deployment and cannot be changed, so tithe ETH is only recoverable by those specific addresses; a lost bearer key would strand its quiver balance.
- [low] Hook can block swaps on its own pool: afterSwap reverts with ShortShot and beforeSwap with AmountOffScale if the fill or amount does not match the expected tithe arithmetic, so unusual swap sizes or partial fills may fail rather than settle.
- [info] ETH claims held inside PoolManager: Tithe ETH is minted as an ERC-6909 claim by the hook and backed inside the PoolManager; this is a standard accounting pattern, and emptying is limited to the bearer of each quiver with a reentrancy guard.
Contract details
- Verified source
- Yes (Barb)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 8,094 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, return-delta, self-unlock
Pools using Barb
- ETH / test (0.00% fee) — 24h volume $95, TVL $0, 2 swaps today