Hook

Hook

Uniswap V4 fee hook

Hook Contract

The Hook contract captures fees on every swap via Uniswap V4's hook system.

Addresses

NetworkAddress
Base0x5eE3602f499cFEAa4E13D27b4F7D2661906b28cC
Ethereum0xEfd2F889eD9d7A2Bf6B6C9c2b20c5AEb6EBEe8Cc

How It Works

The hook implements Uniswap V4's beforeSwap and afterSwap hooks to:

  • Calculate the 6.9% fee on each swap
  • Route 1.38% to the Factory (team)
  • Route 5.52% to the LP position

Hook Permissions

solidity
function getHookPermissions() public pure returns (Hooks.Permissions memory) {
    return Hooks.Permissions({
        beforeInitialize: true,
        afterInitialize: false,
        beforeAddLiquidity: false,
        afterAddLiquidity: false,
        beforeRemoveLiquidity: false,
        afterRemoveLiquidity: false,
        beforeSwap: true,
        afterSwap: true,
        beforeDonate: false,
        afterDonate: false,
        beforeSwapReturnDelta: true,
        afterSwapReturnDelta: false,
        afterAddLiquidityReturnDelta: false,
        afterRemoveLiquidityReturnDelta: false
    });
}

Fee Calculation

solidity
uint256 constant TOTAL_FEE = 690; // 6.9% in basis points
uint256 constant TEAM_FEE = 138;  // 1.38%
uint256 constant LP_FEE = 552;    // 5.52%

function calculateFee(uint256 amount) internal pure returns (uint256) {
    return (amount * TOTAL_FEE) / 10000;
}