TRADE THE
ENGINE.
Swaps route through the chain's UniversalRouter into the protocol's hooked pools: the DIVIS/USDG hub and every spoke the factory has registered. The DivisHook prices its fee per swap — volatility, size, and the oracle gap on stock spokes — and charges it on the side of the trade you didn't specify. Every estimate here is indicative; the pool's on-chain fee policy is shown next to it.
Exact in, or exact out.
Pick a pool, a direction, and which side of the trade is fixed. The bound under the estimate is what the router enforces: the swap reverts rather than fill worse.
One call, three signatures the first time.
Nothing here is a DIVIS contract — the router and Permit2 are the chain's own, the calldata shape is the one the fork tests prove against the live PoolManager.
The input token approves Permit2 (canonical, chain-wide) for the swap amount. Skipped once allowance covers it.
Permit2 approves the UniversalRouter for that amount with a 30-day expiry. The router pulls the input through Permit2, never a direct transfer.
execute(0x10, inputs, deadline): a V4_SWAP command running SWAP_EXACT_*_SINGLE → SETTLE_ALL → TAKE_ALL on the one pool. minHopPriceX36 is 0 — the min-received / max-paid bound is the guard.
Dynamic, on the other side of your trade.
The hook charges on the unspecified side: exact-in swaps pay it out of the output, exact-out swaps pay it grossed-up on the input. The policy is immutable per pool — read it on the pool list, not on a marketing page.
| base → max | the clamp: every swap pays at least base, never more than max (a snipe window, where a pool has one, can exceed it right after opening — the panel warns) |
| k_vol | pips of fee per tick of recent realised volatility, on every pool |
| k_size | % of the swap's own price impact, charged to large trades |
| k_gap | stock spokes only: % of the pool-vs-Chainlink gap charged to swaps that close it |
| sell premium | optional extra when the protocol asset (DIVIS or the clone) is the input |
| LP fee | 0 on every network pool — the hook fee sits outside the Uniswap fee switch |
