project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Liquid Delegation

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.

Liquid Delegation

Created At

ETHGlobal Brussels

Winner of

PancakeSwap - Most creative hook ideas 2nd place

Uniswap Foundation - Integrations 3rd place

Project Description

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.

How it's Made

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:

  • RainbowKit: which makes it possible for users to connect/disconnect their wallets and see relevant information such as their balance, wallet address, ENS name, etc., in a very beautiful UI, guaranteeing a nice UX in this important Web3 experience cores;
  • Vercel: which is responsible for the dApp deploys;
  • Wagmi and viem: which facilitate the interactions of the front-end logics with wallet providers and smart contracts deployed in the blockchain;
  • TailwindCSS: helping us create a beautiful user interface with dark and light themes;
  • Alchemy and WalletConnect: used to connect to users’ wallets and interact with the Arbitrum One blockchain, where all the solidity smart contracts are deployed
background image mobile

Join the mailing list

Get the latest news and updates