QonsensaRouter reads the Pons launch lifecycle straight from the factory. Before graduation it trades against the bonding curve. After graduation it swaps through the token's Uniswap v4 pool. You call one function and the router picks the venue.
| ID | SOURCE | POLICY | TYPE |
| 01 | PONS CURVE | lifecycle-aware | bonding curve |
| 02 | PONS V4 | post-graduation | v4 pool |
| 03 | QONSENSA DYNAMIC | volatility-aware | SwarmHook pool |
| 04 | QONSENSA ORACLE | consensus-guarded | SwarmHook pool |
| 05 | UNISWAP V4 | external | any v4 hop |
Multi-hop exact-inChain hops across any v4 pools in one call, each hop carrying its own fee, tick spacing, hook and hook data.
Slippage floor and deadlineEvery route enforces a minimum output and an expiry. Unspent curve quote is refunded.
Native ETHSend ETH in, get ETH out. No manual wrapping step.
// QonsensaRouter · lifecycle-aware Pons routing
router.buyPons(token)
-> phase(token) // read from the Pons factory
0 CURVE -> curve.buy(quoteIn, minOut)
2 GRADUATED -> v4 exact-in, graduated pool
1 SWEPT -> revert NotTradable(1)
3 RESCUED -> revert NotTradable(3)
-> require(out >= minOut)
-> require(now <= deadline)
// everything else: SwarmHook pools
router.swapExactIn(tokenIn, [
Hop{ tokenOut, fee: DYNAMIC, tickSpacing: 60,
hooks: SwarmHook, hookData: 0x }
], amountIn, minOut, recipient, deadline)