A hooded shadow with glowing pink eyes, pink lines of light splitting out of its cloak and merging into one

Split thetrade.Lose thetrail.

One swap, cut across every Uniswap v4 pool that can carry it, hooks included. Priced by running it, sent in a single transaction, and delivered to a shadow address nobody can tie back to you.

The router, live

Every pool. One fill.

v4 lets anyone open a pool with any fee and any hook, so one pair can trade in dozens of places at once. Protocol V4 reads them all, prices each one with your real size, and cuts the order where it fills best.

Live, from the chain
Route your own
Reading every pool…
How it moves

Three acts. No witness.

A route is found, cut, signed once and delivered out of sight. Then the same engine is sold, a call at a time, to anything that can pay.

01
Split

Priced by doing it

A quoter guesses. The probe swaps. Its code is dropped into one read-only call, runs your trade through every candidate pool and every hook for real, then throws it all away and reports what came out.

  • Direct pools, plus every path through ETH or USDG
  • Each route priced at ten sizes, then the order cut slice by slice
  • The final split re-run in shared state, as the chain will run it
// one eth_call, nothing deployed stateOverride: { probe: code } curves routes × 10 sizes, each in a sub-call that reverts split slice → route with the best marginal output fill chosen split, shared state → out = what the swap returns
02
Shadow

Delivered out of sight

The output can land in a shadow: a fresh address derived from one signature of yours, never used before. It has no history, no link to your other wallets, and it can trade, pay or sweep on its own.

  • Same signature, same shadows, on any device: nothing to back up
  • Keys made and kept in your tab, never sent anywhere
  • A gas pack rides along so a new shadow can move at once
// your wallet signs one fixed message seed = keccak(sig) shadow[i] = key(keccak(seed, i)) // the swap's last action TAKE(tokenOut, shadow[n], all) → funds land on a blank address
03
x402

Agents pay per route

Bots don't sign up. They ask, get an HTTP 402 with a price, sign a USDC authorization on Base, and ask again. The route and a ready-to-sign transaction come back with the settlement receipt. $0.002 a call, no key, no account.

  • x402 v1, exact scheme, settled by a public facilitator
  • Payment is checked before the work and settled after it
  • No route, no charge: the authorization just expires
GET /api/v1/route?in=…&out=… ← 402 accepts: USDC $0.002 on base GET … X-PAYMENT: <signed EIP-3009> ← 200 { split, tx } X-PAYMENT-RESPONSE: settled
What a shadow does not hide. The swap itself is public: the transaction that pays a shadow shows which wallet paid. What it breaks is everything after. The shadow starts with no past, and if it trades from there into a second shadow, the trail ends at a fresh address with nothing behind it but another blank one.
$PV4

Protocol V4.

$PV4 is the router's token. Route into it like anything else: paste its contract in the router and it will find every pool that holds it.

Contract address: soon
The hooded shadow on a rooftop over a dark city crossed by pink lines, looking back over its shoulder
Last order

Trade
in the dark.

Launch router