Search projects, hackathons, sponsors and tech

    ← All projects

    nacre

    Your Uniswap range can go quiet. Nacre puts a funded floor under your trading fees.

    Demo

    About

    The APY looked great when you deposited. Then the price moved. Concentrated liquidity gives LPs control over where their capital works, but very little certainty about what it earns. A position can spend days outside its range, generating no trading fees. Nacre lets LPs buy protection against that fee shortfall. Underwriters fund price ranges and set the premium, coverage duration and maximum payout per position. LPs choose an available range, supply liquidity and purchase coverage backed by that capital. Say you protect 10 USDC of fees over 30 days. If your position earns 6 USDC in eligible fees, coverage pays the missing 4 USDC. If it earns more than 10, there is no payout. The premium is the cost of buying that protection. Underwriters earn premiums for taking the other side. Their capital pays the claims, so pricing badly has real consequences. Each bid has limited capital and a fixed number of spots. Once those are taken, more coverage cannot be sold against the same capacity. Nacre protects fee income. Token price losses and impermanent loss remain with the LP. The current prototype runs on Base Sepolia with test assets.

    How it's made

    Nacre combines Uniswap v4 positions with a custom underwriting application built on 1inch Aqua. Uniswap v4 provides the liquidity positions, pool state and fee collection. Our Solidity contracts bind coverage to a specific position NFT, price range, fee target and duration. The policy vault holds the NFT during coverage so the LP cannot remove liquidity or change the insured position after buying protection. At activation, the vault collects and forwards any existing fees. At settlement, it collects the position’s fees again, values both tokens through the configured oracle and calculates the eligible shortfall. Payouts cannot exceed the policy cap. 1inch Aqua handles the underwriting quote allocation and execution. Funded offer contracts publish quotes through Aqua’s ship function. When an LP buys coverage, our Aqua application pulls the full payout collateral into the policy vault and transfers the premium to the selected offer. An active policy therefore has its maximum payout reserved. One tricky part was letting investors choose narrower ranges inside an underwriter’s funded range without multiplying the available backing. Those positions share the bid’s capital and spot limit. The contracts enforce both when coverage is purchased. The frontend uses Next.js, React and viem. A Bun and Fastify API reads contract state and stores registered positions in SQLite. Historical fee data powers pricing suggestions and profit scenarios, while settlement uses fees collected from the actual position. Foundry fork tests exercise the integration against deployed Uniswap and Aqua contracts.