On-chain integration

Prism uses Uniswap V3 contracts. This section documents the primary contracts and the typical flow for quoting + swapping.

Contracts (live)

QuoterV2
0xdd79c72c21f7dcd1d034b55caf9177bc42f5df0c
UniversalRouter
0x955d56f6391a496231509134e0d2beadf82a223f
SwapRouter02
0xb1f38c36249834d8e3cd582d30101ff4b864f234
Permit2
0x56783fbf77a33871892a2d66337677555714ffbb
SelectiveTaxRouter
0x19956ebe69659c78ad4ee500694287bc6f67c4da
SelectiveTaxRouterPermit2
0x4c2c989f20794fa92d3082a3d49d9a430face555

Taxable tokens (SelectiveTaxRouter)

Prism supports an optional protocol tax for specific tokens. Tax is only enforced when swapping through SelectiveTaxRouter (or its Permit2 wrapper). Swaps submitted via UniversalRouter / SwapRouter02will not apply this protocol tax.
- SelectiveTaxRouter: direct router calls (requires prior token approval).
- SelectiveTaxRouterPermit2: wrapper that supports Permit2 signatures for single-step swaps.
- Detect taxability: call getTokenTaxConfig(token) or willBeTaxed(tokenIn, tokenOut, user).

Reference implementation

Prism is compatible with standard Uniswap V3 tooling.
- Quote: call QuoterV2 with your desired route.
- Approve: use Permit2 (recommended) or ERC20 approvals.
- Swap: submit via UniversalRouter (recommended) or SwapRouter02.