Aggregator swaps

Aggregator swap accounting — one conversion, not a dozen phantom holdings.

One swap through 1inch, 0x, or Uniswap's router can emit a dozen ERC-20 Transfer logs, routed through pools and tokens you never held for more than a single block. A tool that reads the logs literally books each leg as a holding you bought and sold — inventing assets, counterparties, and gross volume. Intentio collapses the routing noise into the one economic event: the conversion you actually made.

The problem

Routing noise looks exactly like holdings.

An aggregator splits your order across venues for the best price, so the on-chain trace is a fan-out of intermediate transfers. A simple USDT → USDC rotation can surface as 11 Transfer logs; a crvUSD → WBTC trade as 7. Read literally, those intermediate tokens become positions on your books that you appear to have acquired and disposed of in seconds — padding gross volume, fabricating tiny gains and losses, and burying the single trade that actually happened.

What Intentio resolves

The one conversion, with the market as counterparty.

When the transaction goes through a known router — 1inch v6, 0x ExchangeProxy, or Uniswap UniversalRouter — and the transfers net to exactly one token out and one token in for your wallet, Intentio books a single swap: what you sent, what you received, the venue, and how many routing legs it collapsed. No phantom token exposure, no inflated turnover — just the trade.

Real transactions

Verify it on real mainnet swaps.

Not mockups — a live corpus of real Ethereum mainnet swaps, refreshed daily and run through the same engine the demo serves. Across 995 classified swaps, Intentio has collapsed 5,330 routing legs of phantom-holding noise out of 7,320 raw Transfer rows — down to one economic event each. Open any card for the full breakdown, or the tx on Etherscan to count the logs yourself.

0x17606509…a41964 →block 26,147,839
naive5 Transfer logs — routing noise looks like holdings
resolved−35 USDC→+6427801.89578918764864484 SHIB1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0xcfcdb2a6…312f54 →block 26,147,839
naive5 Transfer logs — routing noise looks like holdings
resolved−500 NEAR→+2526.054565 USDC1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0x1759a98f…71c133 →block 26,147,835
naive9 Transfer logs — routing noise looks like holdings
resolved−0.200443 USDT→+2429624311.475506702 KISHU1inch v6

One economic event — 7 routing legs collapsed, no phantom token exposure.

0x4274425f…b63673 →block 26,147,834
naive4 Transfer logs — routing noise looks like holdings
resolved−1653.62978 SPX→+609.012447 USDT1inch v6

One economic event — 2 routing legs collapsed, no phantom token exposure.

0x1b641200…8c6395 →block 26,147,830
naive6 Transfer logs — routing noise looks like holdings
resolved−0.94 ETH→+6345.265650245636354896 CRV1inch v6

One economic event — 4 routing legs collapsed, no phantom token exposure.

0x41f94b71…38794a →block 26,147,830
naive5 Transfer logs — routing noise looks like holdings
resolved−0.001 ETH→+2.530877264121867144 USDf1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0xda1fa93a…159dc5 →block 26,147,828
naive11 Transfer logs — routing noise looks like holdings
resolved−0.9 ETH→+1003.432457573416520004 CVX1inch v6

One economic event — 9 routing legs collapsed, no phantom token exposure.

0x3831500c…2258c7 →block 26,147,825
naive2 Transfer logs — routing noise looks like holdings
resolved−1393586.78 Neiro→+117.401755 USDT1inch v6

One economic event — 0 routing legs collapsed, no phantom token exposure.

0x9d0902f7…a674fa →block 26,147,824
naive3 Transfer logs — routing noise looks like holdings
resolved−0.001 ETH→+2.52468 USDG1inch v6

One economic event — 1 routing legs collapsed, no phantom token exposure.

0x35e6d353…d0deaf →block 26,140,636
naive6 Transfer logs — routing noise looks like holdings
resolved−300000.000000003945790928 DSync→+254742.292658241 $PAAL1inch v6

One economic event — 4 routing legs collapsed, no phantom token exposure.

0x4329e8bb…432115 →block 26,140,636
naive6 Transfer logs — routing noise looks like holdings
resolved−235043136.545 wojak→+11.955894 USDC1inch v6

One economic event — 4 routing legs collapsed, no phantom token exposure.

0x5c0de6a0…a90717 →block 26,140,634
naive5 Transfer logs — routing noise looks like holdings
resolved−2550.590077 USDC→+2548.422273 USDT1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0x8dcfefce…f1d07d →block 26,140,632
naive7 Transfer logs — routing noise looks like holdings
resolved−2000 USDT→+243575.576805732235529321 PNK1inch v6

One economic event — 5 routing legs collapsed, no phantom token exposure.

0xe162ae73…007261 →block 26,140,626
naive4 Transfer logs — routing noise looks like holdings
resolved−0.0069 ETH→+2.131547140270990016 ADI1inch v6

One economic event — 2 routing legs collapsed, no phantom token exposure.

0x03c9c99b…ce2709 →block 26,140,621
naive5 Transfer logs — routing noise looks like holdings
resolved−243.787467815589571898 CLAUS→+3.565828 USDC1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0x04a959f1…fd238d →block 26,140,618
naive6 Transfer logs — routing noise looks like holdings
resolved−11004.107775 WALLET→+147.676995 USDC1inch v6

One economic event — 4 routing legs collapsed, no phantom token exposure.

0x0b971856…b6f4a0 →block 26,140,617
naive7 Transfer logs — routing noise looks like holdings
resolved−3600 USDT→+169114.98736748791926296 NPC1inch v6

One economic event — 5 routing legs collapsed, no phantom token exposure.

0x82f0509b…9d4264 →block 26,140,615
naive5 Transfer logs — routing noise looks like holdings
resolved−11.999999 USDC→+235043136.545854269328083158 wojak1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0xe4a0e3b7…da7d60 →block 26,140,610
naive4 Transfer logs — routing noise looks like holdings
resolved−0.163935796148989829 ETH→+715431.17418191644337188 MEME1inch v6

One economic event — 2 routing legs collapsed, no phantom token exposure.

0x4621f787…2a806b →block 26,133,446
naive8 Transfer logs — routing noise looks like holdings
resolved−120 DAI→+120.446709 USDT1inch v6

One economic event — 6 routing legs collapsed, no phantom token exposure.

0x6f08e8bc…c5e5d6 →block 26,133,446
naive4 Transfer logs — routing noise looks like holdings
resolved−0.84 ETH→+2263.875997 USDC1inch v6

One economic event — 2 routing legs collapsed, no phantom token exposure.

0x80ab1268…0de94f →block 26,133,441
naive7 Transfer logs — routing noise looks like holdings
resolved−492.040508875284856821 RAD→+173.100691 USDT1inch v6

One economic event — 5 routing legs collapsed, no phantom token exposure.

0x96503440…2907a6 →block 26,133,441
naive5 Transfer logs — routing noise looks like holdings
resolved−19 USDC→+1054162.398095962 ASTEROID1inch v6

One economic event — 3 routing legs collapsed, no phantom token exposure.

0x248517a7…88f2a9 →block 26,133,437
naive11 Transfer logs — routing noise looks like holdings
resolved−210.461786112 RLC→+181.711971 USDT1inch v6

One economic event — 9 routing legs collapsed, no phantom token exposure.

Where the line is

It gets the trade right; you keep the policy calls.

Intentio recovers the conversion and clean, categorized rows. How realized gain or loss is recognized, which cost-basis method applies, and any jurisdiction-specific treatment are policy and tax decisions you keep. It's the evidence and normalization layer, not your accounting brain.

Coverage today is the routers above. A swap through an unlisted aggregator, or a transaction whose transfers don't net to a clean one-in / one-out, isn't force-fit — it abstains, with a reason, rather than mis-book. More routers are next.

The handoff

Into the accounting tool you already use.

The resolved row exports as a standard CSV / journal, ready to review and upload to your accounting service (tool-specific import profiles as we go). It's read-only: public addresses only, no wallet connect, no signing, no custody.