Each wallet sets target weights. Every swap in the Uniswap pool is quoted against every wallet and filled by the cheapest; trades that pull a wallet back toward its targets are charged less. An agent retunes every wallet on-chain as the live market changes.
Live flow
Every real fill lights up the path it took and the wallet that won it.
Wallets
Each card is one maker's own wallet. Bars show the real mix against the target (white tick). The ladder is the live cost of trading with that wallet right now, in bps versus Chainlink; the cheapest wallet per column is green.
Charts
ETH/USD the wallets priced with
Cumulative volume filled, per wallet
Base spread set by the agent, per wallet
Uniswap swaps won, per wallet
Trade
Through the Uniswap v4 pool
Quoted against every wallet, filled by the cheapest.
Directly on the official 1inch router
Alice's same wallet also backs a plain curve on 1inch's unmodified router: one balance, two strategies.
Protocol
Agent
Current decision
Decision timeline
On-chain activity
Every row is a real transaction. The label says who sent it: the terminal/API, a UI button, or the agent.
API console
The same data and actions over HTTP. Each button calls the live API and shows the exact curl command.
{ }Evidence (recorded on real Ethereum mainnet state)
A 5-currency basket (USD / EUR / JPY / CHF / SGD) on the same instruction, against today's real route through USDC on real Uniswap v4 pools. Reproduce: forge test --match-contract FxEvidenceEthereumTest -vv
| EUR → JPY size | Today: EUR→USDC→JPY | WalletIndex basket | Saving |
|---|---|---|---|
| $1,000 | 18 bps | 4 bps | 14 bps |
| $10,000 | 31 bps | 7 bps | 24 bps |
| $50,000 | 158 bps | 15 bps | 143 bps |
JPY→SGD and JPY→CHF, which have no pool at all, fill directly within 0.2% of the live cross rate.