
Options via 1inch Aqua, with tokens pulled at fill and a Uniswap v4 TWAP quote guard.
Writing a fully collateralised option today means locking the collateral in a protocol before anyone buys. The LPs with the most depth will not hand over custody, so option books stay thin. VexiHakari turns 1inch Aqua into an options vault. An AquaVault is a shared vault whose own address is the Aqua maker: anyone deposits AAPL and USDG for shares, and the vault ships that one balance, as virtual balances, to two strategies at once. The first is an AquaWriter, an Aqua app that posts covered calls and cash-secured puts across a whole board of strikes and expiries. Posting moves nothing; when a buyer buys, Aqua pulls exactly the collateral of the contracts sold, inside the buyer's transaction, and at a buyback or at expiry Aqua pushes it home into the same strategy. The second is a SwapVM spot pool on the same balance, optionally concentrated with XYCConcentrate, which earns spot fees while the options wait. The two must not sell the same token twice. ExposureGuard, a custom SwapVM instruction, shrinks the spot pool to what open option orders have not promised, at the same price, so a buyer who sees option depth can always fill it. It runs as an opcode on our router and, through SwapVM's Extruction, on 1inch's already-deployed router with no redeploy. DeltaSkew, a second instruction, leans the spot price against the delta the option book added. In the trading app, every option is priced when it trades, never stored: VaultPricer computes Black-Scholes from the spot of the vault's own SwapVM pool, the clock and a volatility per expiry, with a spread and an inventory lean, bid and ask. A spot trade or a tick of time reprices the whole board with zero transactions. One MiniBook collects every vault's quotes; the app shows them as one book and routes each fill to the cheapest vaults first. Longs and shorts are ERC-1155 tokens in the wallets; settlement is physical, from Chainlink on mainnet. A price read from a pool a taker can move is a price a taker can fake. We proved it on a fork of Robinhood Chain mainnet: in one transaction, a holder of 10 calls pushed the vault's pool 59%, sold the calls back at the pushed bid and pushed the pool back, taking 2,009.29 USDG over the fair bid of 114.96 for 58.81 USDG of swap fees. So the book is guarded by HAKARI (秤), its price layer on Uniswap v4. HAKARI started at this event as our study of what it costs to fake a v4 price: on Robinhood Chain's stock-token weekend of 2026-08-30, while minting was closed, pushing the HIMS/USDG pool 10% cost 12 USDG in fees, and later that night the pool stood at 54.50 against a Friday close of 28.84. In VexiHakari, HAKARI does three things. First, an anchor: UniswapAnchoredPricer reads the v4 pool on the same pair through v4-core's StateLibrary before every ask and bid and refuses to quote when the vault's spot is more than 3% away; the round trip above then reverts, and the holder can only sell at the fair bid. Second, a band: StabilityBandPricer centres a band on the TWAP of a v4 pool that carries HAKARI's truncated-oracle hook, sizes it from realised volatility (the public repo uses a fixed, configurable 5% half-width), and tapers the book toward its edge (fewer contracts per trade, a wider spread) until it stops quoting past it. On the fork the same round trip reverts Paused(OutsideBand); inside the band the gain is bounded, derived and fuzz-tested: a push that moved the vault's spot 0.79% earned 10.40 USDG on ten calls, against 15.40 with the plain pricer. Third, settlement: HookTwapExpiryPrice settles a series on the hook's five-minute TWAP ending at expiry and refuses a window outside the band drawn before expiry, so a push at expiry only delays settlement to the next window (a +20% push is refused, and one window later the series settles at the honest price). It is for underlyings with no Chainlink feed (meme tokens) or a closed market (stock tokens on a weekend). It runs on Robinhood Chain testnet 46630 with a public trail: a trading app with Create vault, Deposit, Spot swap, Buy and Sell back; shared vaults; two v4 AAPL/USDG pools, one with HAKARI's hook; the anchor, the band, and a book that settles on the hook's TWAP every 15 minutes. Every claim above has a fork test on Robinhood Chain mainnet 4663 against canonical Aqua, the deployed SwapVM router, the real TSLA/USDG v4 pool and Chainlink's TSLA feed. That trading app is the Demo. The public repo, vexi-v1/vexi-hakari, holds the Aqua and Uniswap integration built at this event, with a wallet maker and fixed-premium quotes in place of AquaVault, VaultPricer, MiniBook, the anchor pricer and the Chainlink adapter (docs/extraction.md). Vexi existed before the event; this Continuity entry is the Aqua and Uniswap integration built during ETHGlobal Tokyo 2026 (docs/history.md).
The project has two Foundry packages. The oracle hook uses Solidity 0.8.26 with Uniswap v4-core and OpenZeppelin uniswap-hooks. The Aqua integration uses Solidity 0.8.30 with Cancun and via-IR, pinned 1inch Aqua and SwapVM dependencies, OpenZeppelin Contracts and Uniswap v4 libraries. AquaWriter connects OptionBook to Aqua. During a purchase, the book checks the quote and available collateral, invokes Aqua.pull through the writer, and verifies the exact token balance increase. Return and premium-claim operations use Aqua.push. The maker's virtual balances, wallet balance and allowance all affect what can actually fill. ExposureGuard is a custom SwapVM instruction that caps spot depth at unpromised inventory without changing the quoted price. We demonstrate it both on our router extension and through Extruction on the canonical deployed router. The latter lets the guard execute without replacing 1inch's existing router. HakariOracleHook adds a combined raw/truncated TWAP view to OpenZeppelin's BaseOracleHook. StabilityBandPricer reads pool state through StateLibrary and observations through the pool's hook, then enforces the fixed-width demonstration band, per-call size taper and spread adjustment. FixedPremium supplies expiring demonstration quotes with optional original-price anchors. HookTwapExpiryPrice is a separate experimental settlement-window adapter. Integration tests use a local fork of Robinhood Chain mainnet at block 72,248,228, with canonical Aqua and SwapVM contracts. The hooked-pool fixture installs the testnet hook's runtime bytecode at its address on the fork, creates a synthetic reference pool on the real v4 PoolManager and generates observation history. This is controlled integration evidence, not organic market activity. Additional tests cover quote expiry, anchor checks, inventory protection, band refusal and settlement/refund outcomes. On testnet 46630, the hook was deployed to a CREATE2 address with the required hook flags, and the hooked AAPL/USDG pool was created through PositionManager and Permit2. Deployment records distinguish those public components from local-fork execution and private product deployments. The public evidence website at vexi-v1.github.io/vexi-hakari, separate from the Demo URL's trading app (React, TypeScript, Vite, viem), uses HTML, CSS and JavaScript, with Python scripts exporting the fork evidence into static JSON and trace artifacts.