Aqua0
Mini App for Cross-Chain shared liquidity via Aqua AMMs and LayerZero
Problem Statement
Aqua is a shared liquidity layer developed by 1inch that solves the inefficiency problems currently existing in AMMs. The problems are: 1) 90% of AMM liquidity is never used, generating immobilized liquidity. 2) This leads to fragmented liquidity, as AMMs end up having idle and unutilized liquidity across different LPs in different protocols and chains. Aqua0, our solution, evolves Aqua in a cross-chain manner. The problem Aqua currently has is that it's an accounting layer only usable on one chain at a time. That's why in Aqua0 we're going to create a cross-chain marketplace for AMMs, where we'll use Layer Zero composers across different chains, and Aqua's shared liquidity contracts, to allow liquidity providers to unlock new yield opportunities, increasing capital efficiency.
Solution
Custom AquaApps We deployed 2 custom Aqua Apps on 2 separate chains, Base and WorldChain (the latter which we managed by deploying an Aqua smart contract ourselves).The first AquaApp implements Curve's StableSwap AMM. It enables efficient trading between pegged assets (like stablecoins) by using a hybrid invariant that combines constant sum and constant product formulas, providing minimal slippage near equilibrium while maintaining liquidity provider protection at extremes.The fundamental equation governing all trades is: An^n ∑x_i + D = An^n D + D^(n+1)/(n^n ∏x_i)Where D and ∑x_j are approximated using the newton-raphson method within 2 iterative functions within the AquaApp.The second AquaApp implements Uniswap V3-style concentrated liquidity. The key innovation is adapting the virtual reserve concept to work with Aqua's virtual balance system, where tokens remain in maker wallets rather than being deposited into pools.Whilst the core AMM constant product is: x × y = k In concentrated liquidity, we reformulate this using liquidity L: x_virtual × y_virtual = L² Where: L = Liquidity (constant within a price range) x_virtual = Virtual reserves of token 1 y_virtual = Virtual reserves of token 2 Virtual reserves: Extend from price 0 to ∞ Real reserves: Actual tokens locked in the pool contract Relationship: Real = Virtual adjusted for range boundaries
Hackathon
ETHGlobal Buenos Aires
2025
Prizes
- 🏆
🏆 ETHGlobal Buenos Aires 2025 Finalist
ETHGlobal
- 🏆
World Pool Prize
World
- 🏆
Build an Aqua App4th place
1inch
- 🏆
Best Omnichain Implementation2nd place
LayerZero
Contributors
- 0xYudhishthra
17 contributions
- lovable-dev[bot]
12 contributions