A production-grade Uniswap v4 Hook that converts live swap fees into EigenLayer-secured, auto-compounding restaking yield using Liquid Restaking Tokens (LRTs).
✅ Live on Ethereum Mainnet
✅ Contracts Verified on Etherscan
✅ End-to-End Yield Flow Operational
✅ Production-Grade Hook Architecture
TomoYieldHook routes Uniswap v4 trading fees directly into EigenLayer LRTs via a programmable Hook and modular YieldRouterLRT adapter. It functions as a fully autonomous, non-custodial yield engine that turns pure DEX trading volume into continuously compounding restaking rewards for DAOs, LPs, creators, and on-chain automation systems.
TomoYieldHook is a mainnet-live Uniswap v4 Hook that captures swap fees at the protocol level and reinvests them into EigenLayer LRTs to generate autonomous, compounding yield. This transforms Uniswap liquidity and trading activity into a programmable yield stream that DAOs, LPs, FeeSplitters, and creator economies can route, split, or automate.
End-to-end yield automation — including fee capture, LRT deposit, share accounting, yield harvesting, and distribution — is implemented entirely on-chain and validated across local, testnet, and Ethereum mainnet environments.
✨ Live on Ethereum • Powered by Uniswap v4 Hooks • EigenLayer Restaking Integrated
🎥 Demo & Technical Walkthrough:
https://youtu.be/7yRWFemne-4?si=oOeoj13KnzU92JGq
All Uniswap v4 Hook logic, EigenLayer LRT routing, the YieldRouterLRT adapter, and the full Foundry test suite for TomoYieldHook were designed and implemented during the Hookathon period.The project introduces a new Hook-powered restaking yield primitive that converts swap fees into auto-compounding EigenLayer-secured yield, with the full on-chain flow implemented and validated through local testing and Ethereum mainnet deployment.
TomoYieldHook is natively integrated with the EigenLayer restaking ecosystem, enabling Uniswap v4 swap fees to be converted into Liquid Restaking Tokens (LRTs) such as ezETH, rsETH, or METH. This transforms ordinary DEX trading volume into a restaked yield engine that compounds automatically and can be programmatically routed to DAOs, LPs, creators, protocol treasuries, or Splitwise-style automation modules.
This integration demonstrates how EigenLayer + Uniswap v4 Hooks unlock a new DeFi design space where liquidity, trading activity, and restaking yield become a unified stream of programmable value. TomoYieldHook illustrates how restaking can be embedded natively inside AMM flows, creating a fully autonomous “yield layer” on top of liquidity provisioning — a core theme for the EigenLayer x Uniswap v4 Hook Incubator.
-
Converts Uniswap trading volume into EigenLayer-secured yield.
-
Generates continuous LRT deposits without user interaction.
-
Demonstrates a novel use case: Restaking as a Hook Primitive.
-
Proves LRTs can act as programmable, composable yield routers directly inside AMM execution.
-
Encourages new on-chain applications that monetize trading activity using restaking rewards.
TomoYieldHook can optionally route harvested EigenLayer yield into on-chain automation systems such as Splitwise-style debt settlement.
-
Fee Capture (Uniswap v4 → Hook)
afterSwap() extracts swap fees from the pool manager.
-
YieldRouterLRT Conversion
Fees are passed into the YieldRouterLRT adapter, which:
-
Approves the LRT contract
-
Deposits underlying (e.g., WETH → ezETH)
-
Returns newly minted LRT shares
-
-
Restaking Yield Accrual (EigenLayer)
These shares continuously earn EigenLayer rewards without further interaction.
-
Automated Yield Distribution
When harvested:
-
Yield can be routed to FeeSplitters
-
Paid out to DAO treasuries
-
Sent to LPs
-
Or used to settle debts (e.g., Splitwise Hook integration)
-
-
Full Transparency
All restaking deposits, withdrawals, and share balances are fully on-chain and event-driven.
TomoYieldHook is designed to operate seamlessly with EigenLayer Liquid Restaking Tokens (LRTs) to convert swap fees into compounding yield. Supported capabilities include:
-
Automated WETH → LRT conversion
-
Share-based accounting for restaked positions
-
Native EigenLayer reward accrual through LRT mechanisms
-
Programmable yield withdrawals and routing
-
Plug-and-play support for any adapter-compliant LRT
1️. Passive Yield Extraction
Trading activity in Uniswap v4 automatically generates yield; no user approvals or active management required.
2️. Composable Hook-Powered Automation
Yield routing is performed entirely by a v4 hook (afterSwap), enabling seamless programmability inside AMM flow.
3️. Modular Restaking Architecture
The YieldRouterLRT adapter abstracts LRT interactions, enabling plug-and-play support for any EigenLayer-compatible LRT.
4️. Permissioned Yet Non-Custodial
Only the configured FeeSplitter and owner can trigger yield operations — but funds remain entirely non-custodial, without pooled user deposits.
5️. Transparent & Verifiable
All deposits, withdrawals, shares, and yield distributions are emitted on-chain for complete auditability.
-
Hook-Level Fee Capture (Uniswap v4)
-
Runs in afterSwap
-
Detects fee deltas for token0 / token1
-
Aggregates yield internally
-
Does not modify swap execution path (gas-optimized)
-
-
Automated LRT Deposits
Using the YieldRouterLRT adapter, TomoYieldHook:
-
Approves LRT router
-
Deposits underlying (e.g., WETH → ezETH)
-
Tracks shares received
-
Enforces minimum deposit threshold (minDeposit) to prevent dust deposits
-
Yield Harvesting & Distribution
Harvests accumulated LRT yield via:
harvestAndDistribute(sharesToWithdraw, routeToFeeSplitter, fallbackRecipient)Supports:
-
FeeSplitter distribution (DAO multisig, LP splitters, creator payouts)
-
Direct owner payouts
-
Configurable routing logic
-
-
Full Restaking Compatibility
Works with any LRT supporting:
deposit(amount) withdraw(shares) previewWithdraw(shares)Examples:
-
ezETH
-
rsETH
-
METH
-
Renzo LRT
-
Swell LRT
-
-
Role-Safe Security Model
-
onlyOwner for all sensitive actions
-
FeeSplitter restricted for inbound yield
-
No pool funds are ever held in custody
-
Hook cannot remove LP or trader funds — only fees provided by the pool manager
-
-
Gas-Optimized Runtime
-
Minimal logic inside afterSwap
-
Heavy operations offloaded to external functions
-
Zero unnecessary storage writes during swap phase
-
-
Deploy the Yield Router
Deploy YieldRouterLRT with:
LRT address (ezETH) Underlying token address (WETH)This router handles:
-
Deposits into LRT
-
Withdrawals
-
Share previews
-
-
Deploy TomoYieldHook
Provide:
-
Uniswap v4 PoolManager
-
Underlying token (WETH)
-
LRT router address
-
FeeSplitter
-
Minimum deposit threshold
-
-
Link FeeSplitter
setFeeSplitter(address splitter)FeeSplitter allows:
-
Automated sharing schedules
-
DAO revenue distribution
-
LP revenue routing
-
-
Yield Accumulation
Swap flow:
User Swap → afterSwap() → Fee Accrued → TomoYieldHook Receives FeesFees accumulate inside the hook until minDeposit is reached.
-
Deposit to LRT
Triggered via:
receiveAndDeposit(token, amount)Called by:
-
FeeSplitter
-
Owner
Router mints LRT shares → Hook stores share count.
-
-
Harvest Yield
Owner can harvest restaking rewards:
harvestAndDistribute(shares, routeToFeeSplitter, recipient)Supports:
-
DAO payouts
-
Creator income
-
Auto-compounding cycles
-
This project uses Foundry for testing.
Install Foundry:
curl -L https://foundry.paradigm.xyz | bash
foundryup
forge test -vvvv
┌──────────── Trader Swap ─────────────┐
│
┌────────▼────────┐
│ Uniswap v4 Pool │
└────────┬────────┘
│ afterSwap()
┌────────▼────────┐
│ TomoYieldHook │ ◄─ Fee accumulation
└────────┬────────┘
│
┌──────────▼──────────┐
│ YieldRouterLRT │ ◄─ LRT deposit logic
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ EigenLayer LRT │ ◄─ ezETH / rsETH etc.
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ FeeSplitter / DAO │ ◄─ Automated distribution
└─────────────────────┘
- Hook performs no privileged actions during swap execution
- No external tokens can be drained — only pool-provided fees are used
- Only owner + FeeSplitter can initiate routing
- LRT deposits/withdrawals validated with try/catch
- Emergency withdrawal limited to owner and only for underlying token
- No reentrancy vectors in core logic
- No dependence on external off-chain systems
- Hook address validated via Uniswap v4 Hook permissions system
- Hook logic tested with Foundry
- Fee capture, LRT deposits, and yield routing validated on Ethereum mainnet
- All state transitions are fully on-chain and verifiable via events
- EigenLayer – Used for Liquid Restaking Token (LRT) yield via ezETH / rsETH
- Uniswap v4 Hooks – afterSwap-based protocol-level fee capture
YieldRouterLRT Hook (EigenLayer LRT Router)
0x5bcee69b20ea366c2c0166d3efca13121e07c94b
https://etherscan.io/address/0x5bcee69b20ea366c2c0166d3efca13121e07c94b
TomoYieldHook (Uniswap v4 Yield Automation Hook)
0xeda704f59db7818e16f189b6ac97caf3895ca290
https://etherscan.io/address/0xeda704f59db7818e16f189b6ac97caf3895ca290