Market dApp for buying ARB delegation, allowing users to wrap their ARB into WARB and using AMM hooks to share the revenue from sales with Liquidity Providers on WARB pools.
The project focuses on using AMM hooks to split revenue from ArbitrumDAO voting power sales, where the buyer gets $ARB token delegations.
The tokens to be delegated come from a wrapping mechanism where users can wrap their ARB into WARB before providing liquidity or swapping on Uniswap, allowing their ARB to be used for governance instead of "frozen" - from a governance perspective - in a liquidity pool.
The project aims to create incentives for ARB holders to keep their tokens available for use in governance. By wrapping in through a contract that sells the delegation of the ARB tokens in the wrap contract, we generate new revenue to be split to liquidity providers on WARB pools, creating an additional incentive for any ARB LP to transition into a WARB LP.
With this approach, we manage to overcome the duality of having your tokens available for governance or used for liquidity, essentially adopting a Liquid Staking Token approach, where the staked tokens become the source for a delegation bribery mechanism, while the “liquid wrapped tokens” that return from it can be used for swapping or providing liquidity normally on AMM pools, with potentially more rewards than the original governance token would.
This project uses Uniswap v4 hook mechanisms to deliver the revenue from the delegation sales to liquidity providers at the time when they normally collect their normal LP Rewards, by executing the accounting and distribution in the beforeRemoveLiquidity and afterRemoveLiquidity hooks, we allow the liquidity providers on WARB pools to get extra rewards without need for extra steps. The hooks mechanism are working locally but have not been deployed on Arbitrum One. All other parts of this project are live on Arbitrum One.
The warping of ARB into WARB is made with a wrapping contract, with very straightforward wrap and unwrap functions. The delegation sale is implemented on the same contract, calling a delegate function to the ERC20Votes contract upon sale.
The front-end application is built on Next.js, which makes use of lots of other tools, such as: