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 446 classified swaps, Intentio has collapsed 2,618 routing legs of phantom-holding noise out of 3,510 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.

0xec419138…f5f46ablock 25,773,110
naive19 Transfer logs — routing noise looks like holdings
resolved9000 USDC+9010.810791 USDT1inch v6

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

0xce93ff67…318515block 25,773,108
naive34 Transfer logs — routing noise looks like holdings
resolved21000 USDC+21022.105335 USDT1inch v6

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

0x090b7033…682c30block 25,773,104
naive8 Transfer logs — routing noise looks like holdings
resolved1600 USDC+1601.650016 USDT1inch v6

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

0xb22bfcf4…91d84ablock 25,773,094
naive7 Transfer logs — routing noise looks like holdings
resolved830 ONDO+100044.237910495742202105 REZ1inch v6

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

0x48b1cd25…b47c96block 25,773,085
naive4 Transfer logs — routing noise looks like holdings
resolved0.01 ETH+7981411.76329 Bonk1inch v6

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

0x5cb87d81…0f5856block 25,765,838
naive4 Transfer logs — routing noise looks like holdings
resolved25000 0xDNX+64.586408 USDC1inch v6

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

0x4e719776…65c45dblock 25,765,819
naive5 Transfer logs — routing noise looks like holdings
resolved0.0276 ETH+309.485343734770612029 H1inch v6

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

0x4f75bed0…2efdc9block 25,765,819
naive7 Transfer logs — routing noise looks like holdings
resolved1370.9502 OMIKAMI+6.278802 USDT1inch v6

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

0x4ffa13bd…82c024block 25,765,817
naive4 Transfer logs — routing noise looks like holdings
resolved484.16 AGRS+100.470981 USDT1inch v6

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

0x1c0b4c79…f194d6block 25,758,667
naive8 Transfer logs — routing noise looks like holdings
resolved650 USDC+650.662505 USDT1inch v6

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

0x79e6d600…fb3a7ablock 25,758,666
naive5 Transfer logs — routing noise looks like holdings
resolved0.02 ETH+37.597388 USDT1inch v6

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

0x704b3ff5…f920ffblock 25,758,658
naive4 Transfer logs — routing noise looks like holdings
resolved0.0403 ETH+265497.942019912 DERP1inch v6

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

0x1301fd45…64b74bblock 25,758,654
naive9 Transfer logs — routing noise looks like holdings
resolved3750 USDT+3746.988267 USDC1inch v6

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

0xa47b6d04…fb9f0fblock 25,758,647
naive7 Transfer logs — routing noise looks like holdings
resolved50000 USDT+49959.271422 USDC1inch v6

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

0xdb342c84…6a7e8fblock 25,751,732
naive15 Transfer logs — routing noise looks like holdings
resolved150300 USDC+130112.706918 EURC1inch v6

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

0x69b1554b…45e756block 25,751,731
naive4 Transfer logs — routing noise looks like holdings
resolved0.0099 ETH+18.514597 USDC1inch v6

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

0x817e03c9…ab0929block 25,751,730
naive6 Transfer logs — routing noise looks like holdings
resolved81477.22628610000421688 NPC+422.509386 USDT1inch v6

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

0x191fd8fa…dae05ablock 25,751,728
naive7 Transfer logs — routing noise looks like holdings
resolved1.61860107622533527 LINK+14.146308 USDC1inch v6

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

0x23088227…2683f8block 25,751,727
naive8 Transfer logs — routing noise looks like holdings
resolved120 USDT+119.951318 USDC1inch v6

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

0xe7187429…f0fd47block 25,751,722
naive6 Transfer logs — routing noise looks like holdings
resolved650 USDT+649.480576 USDC1inch v6

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

0x94ba7e5a…479d3ablock 25,751,717
naive14 Transfer logs — routing noise looks like holdings
resolved26264.600475 USDC+6.055621568803178318 PAXG1inch v6

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

0x7ce71e95…4f495dblock 25,751,714
naive5 Transfer logs — routing noise looks like holdings
resolved0.444997394893128281 WETH+831.65183 USDC1inch v6

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

0xcd1d7471…29b89dblock 25,751,713
naive7 Transfer logs — routing noise looks like holdings
resolved0.078046146932580006 rswETH+357.475668513273617294 ETHFI1inch v6

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

0x03830673…7fb2efblock 25,751,711
naive8 Transfer logs — routing noise looks like holdings
resolved650 USDT+649.511256 USDC1inch v6

One economic event — 6 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.