← All projects

Aqueduct

Liquidity that gets more careful when you're over-committed.

EventETHGlobal · 1inch Aqua, Uniswap hooks and The Graph
My roleTeam build · I wrote 17 of the 26 frontend commits
Aqueduct site preview
Fails closed

a wrong, stale or malicious oracle reading can only shrink a fill, never enlarge it

  • Monotonic: can only shrink a fill
  • Every failure mode ends in a smaller fill or none
  • Live on Base Sepolia
The problem

A maker can pass three separate, honest risk checks and still be over-committed, because nothing looks at all three at once.

What I did

I built most of the Next.js risk dashboard: about 17 panels including the exposure gauge, Uniswap and SwapVM panels, keeper status, emergency pause and the activity log.

Solidity1inch SwapVMUniswap v4 hookThe GraphNext.js
How it works
  1. Aggregate the exposure

    A Graph subgraph adds up a maker's committed balances across every Aqua strategy they've shipped, and a keeper pushes it to an on-chain oracle.

  2. Gate the fill

    A new SwapVM instruction derates or halts a fill based on that live exposure. It can only make the maker more conservative.

  3. Same rule on Uniswap

    A Uniswap v4 hook sources swaps from the same gated strategy, so the risk rule travels with the liquidity, not the venue.