CrossrateTaxHook on Arc
Uniswap v4 Hook Contract 0x167654020c0b14c68fdfbcbcdedb9b6b1188a0cc on Arc · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $152
- All-time volume
- $5.37K
- Pools using this hook
- 8
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 202
What it does
Charges a fixed tax on swaps in registered Crossrate pools and automatically splits it between the coin creator and the platform wallet, converting it to ETH for payout.
How it works step by step
- Charges a fixed tax (300 to 1000 bps) on qualifying swaps, taken from the paired quote currency through return deltas.
- Mints the taxed amount as hook claim tokens and records it as pending creator and protocol balances per pool.
- Splits each accrual so the protocol recipient receives 200 bps of the tax rate and the coin creator the remainder.
- Lets anyone call distribute to redeem pending balances and pay them out, converting to ETH via a V4 bridge route or V3 swap route.
- Restricts pool initialization to pools registered by the launcher and allows only the binder to change payout routes.
- Swap behaviour
- On exact-input swaps where the input is the pool's quote currency, a fixed tax of tax bps of the input is taken in beforeSwap and accrued. On swaps where the unspecified side is the quote currency, the tax on the amount is taken in afterSwap and accrued. Swaps are otherwise unchanged.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- A fixed per-pool tax (300 to 1000 bps, set by the launcher at registration and immutable afterwards) is charged in the paired quote currency on swaps. Of each accrued amount, 200 bps of the tax rate goes to the protocol recipient and the remainder to the coin creator. Payouts are converted to native ETH through a payout route when distributed.
- Owner & admin controls
- No owner or pause controls in the hook. The binder address (immutable) can bind the launcher once, and can set payout routes (setV4PayoutRoute, setDefaultV4PayoutRoute, setV3PayoutRoute) that determine how accrued rate tokens are converted to ETH. Tax rates are fixed per pool at registration within 300 to 1000 bps by the launcher. distribute is permissionless.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: rejects pools that were not registered in the hook. beforeSwap: for exact-input swaps where the input is the paired quote currency, takes the tax as a specified-side delta and accrues it. afterSwap: for swaps where the unspecified currency is the quote currency, takes the tax as an unspecified-side delta and accrues it. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take the tax from swap deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The binder can set or replace payout routes for any quote currency, redirecting how accrued tax is converted, potentially to a route that fails or is set to low output. The binder can also choose the launcher once. The launcher alone can register pools and their tax rate. The protocol recipient is immutable and receives 200 bps of each tax amount. Neither party can pause swaps or seize pool liquidity.
Risk to user funds: The hook can take a fixed tax (300 to 1000 bps) from swaps in registered pools when the input or unspecified side is the paired quote currency, and holds it as claim tokens until distribute. Swappers pay this tax on every qualifying trade. The binder cannot change the tax rate or pause trading, but can change payout routes that convert the held tax to ETH.
Security findings
- [info] Hook takes swap value via return deltas: Tax is taken via beforeSwap and afterSwap return deltas and minted as hook claim tokens, so the hook holds value between accrual and distribute. Funds remain in the pool manager under the hook's accounting.
- [medium] Binder can alter payout routes: setV4PayoutRoute, setDefaultV4PayoutRoute and setV3PayoutRoute let the binder change the conversion route for accrued tax tokens. A malicious or misconfigured route can yield little ETH to creators, but the swap-side tax itself is fixed.
- [low] Distribution can be blocked by route configuration: unlockCallback reverts the whole distribution if a route is missing or yields zero output, so pending balances stay locked until the route is fixed, and the binder controls that fix.
- [info] Tax rate set by launcher at registration: The launcher can register any pool with a tax of 300 to 1000 bps, which is charged to traders in that pool's quote currency. Pools are immutable in this respect and the rate cannot be lowered by users.
- [info] Permissionless distribution: distribute is callable by anyone, and the protocol/creator split is deterministic, so no caller can divert funds.
Contract details
- Verified source
- Yes (CrossrateTaxHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 11,070 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, return-delta, self-unlock, tax
Pools using CrossrateTaxHook
- USDC / USDG (1.00% fee) — 24h volume $0, TVL $34, 0 swaps today
- USDC / HOPIUM (1.00% fee) — 24h volume $0, TVL $0.07, 0 swaps today
- USDC / HOPIUM (1.00% fee) — 24h volume $0, TVL $0.06, 0 swaps today
- USDC / ARCDOG (1.00% fee) — 24h volume $0, TVL $68, 0 swaps today
- APPLE / AAPL (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / HOPCAT (1.00% fee) — 24h volume $0, TVL $0.02, 0 swaps today
- USDC / ARCY (1.00% fee) — 24h volume $0, TVL $49, 0 swaps today
- USDC / HOP (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today