Mini App for Cross-Chain shared liquidity via Aqua AMMs and LayerZero


Prize Pool


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.
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

