Doca
Keep your wallet.
Put it to work anyway.
Non-custodial market making on 1inch Aqua: budgets sized to the wallet's actual balance.
(1inch-commissioned Dune research, July 18)
Aqua fixes custody: promises instead of deposits, one balance behind many strategies. But promises can exceed the wallet by design, and when flow turns directional, quotes go phantom.
"While Aqua doesn't automatically pause illiquid positions, Makers are strongly recommended to manually dock strategies that become chronically underfunded…" Aqua whitepaper 1.0, §3: the prescribed fix is a human, awake at 3am
Nobody docks by hand at 3am.
A promise may exceed your wallet.
A budget may not.
On-chain
InventorySkewProvider behind SwapVM's stock opcode 30: fee flat while a budget is healthy, quadratic as it drains. Directional: takers get paid to rebalance you.
Harbormaster
A keeper that docks any strategy crossing its line and re-ships against the wallet's current balance. The whitepaper's advice, automated in this demo; with a connected wallet it prompts you to sign.
Product
A five-step journey: wallet → put to work → live market → protected → walk away. Nothing deposited, spend without withdrawing.
One balance, quoting in three markets.
Same wallet. Same flow.
| 30 fills, same flow | plain | skewed |
|---|---|---|
| Inventory left | 6.3% | 8.1% (+29%) |
| Realized price | 16.00 | 16.32 (+1.99%) |
| 4× amplification | unmanaged | managed |
|---|---|---|
| Unhonorable fills | 43 of 86 | 0 |
| LP value vs hold | −21.8% | −19.7% (+2.7%) |
At 1× and 2× the mechanism costs nothing. Budgets never exhaust. It only bites when it is needed.
Every ingredient is named.
The state variable is new.
- RiverSwap (1st, 1inch Aqua track, NY): same fee-provider extension point, fee set by an auction: fee discovery, not balance-sheet risk.
- 1inch depletion-fee prototypes (Dec 2025, never merged): ratio-based, symmetric, fee stays in the position. Doca prices cumulative budget consumption, directionally, and harvests it out of the shared pool.
- SwapVM
progressiveFeeIn: sizes a single trade against the inbound reserve; composes with Doca's budget axis rather than replacing it. - Custodied liquidity managers (Arrakis, Gamma, …): abolish the failure mode by taking custody. Doca manages what non-custody creates.
The first budget-based inventory-depletion fee on Aqua that we found in shipped app form.
Who signs, who watches.
Demo
A local signer lets the Harbormaster act autonomously, on camera.
Connected wallet
The same actions require the maker's signature.
Production
A scoped session key would authorize only dock, ship and waterline updates, with limits and expiry: ERC-4337 session keys, ERC-7715/7710-scoped grants.
MCP surface: read-only observability, not the transaction executor.
- Canonical Aqua registry, official router code unmodified, real WETH/USDC transfers. Our contracts are live on Base mainnet:
0x768F…54D9(skew provider),0x8A15…9694(app). - 11 tests green: curve asserted against its closed form, retention proven with real balance changes, three adversarial cases documenting the current limits.
- Every number reproducible from a script in the repo.
Keep your wallet. Put it to work anyway.
github.com/ottodevs/doca
ETHGlobal Lisbon 2026 · built on 1inch Aqua + SwapVM