A trader uses an ordinary Uniswap v4 pool. The pool holds no liquidity of its own: the WalletIndex hook quotes the swap against every listed wallet through a SwapVM router and fills it from the best one, straight out of that maker's wallet via 1inch Aqua.
Illustration: the hook asks every wallet, the router prices each with opcode 34 against Chainlink, the cheapest fills.
The instruction values the whole basket at Chainlink prices, measures how far it sits from its targets before and after the trade, and moves the spread by the difference. The wallet is paid to rebalance.
Simulation of the on-chain formula (port of PortfolioSkewInstruction.sol, deployed parameters: base 8 bps, min 1, max 40, gain 100). Tick = base spread.
Opcode 0x22 = 34 is appended to 1inch's official SwapVM opcode table. Settings live in the program args, so quote() and swap() run the same code.
The agent's rule
Each tick it reads the last 8 Chainlink rounds on Base and retunes every wallet's base spread on-chain (Aqua dock, ship, replace the hook listing).
A keeper sweeps the hook's settled claims back into its working float. Stale price past the freshness limit: every wallet refuses to quote.