Authorization
- Caller is not the current admin.
accept_admincaller does not matchpending_admin.- Position record is not owned by the signer.
- Confidential address does not match program, signer, domain, and factor.
- Claim caller or recipient does not match the stored confidential address.
Pool creation
- Pool creation is closed and caller is not admin.
- Token is not allowed or is paused.
- Pair or global state is paused.
- Tokens are identical.
- Pool already exists.
- Fee or spacing is unregistered.
- Fee-to-spacing binding does not match.
- Initial tick is unaligned or outside the allowed domain.
- Initial square-root price does not lie in the tick interval.
Mint and increase
- Pool is disabled or paused.
- Token IDs do not match canonical pool tokens.
- Signer, recipient, or withdrawal freezelist proof is invalid.
- Range is invalid or unaligned.
- Calculated liquidity is zero.
- Used amounts do not meet minimums.
- New boundary exceeds per-tick liquidity cap.
- Insertion hint is not the immediate initialized predecessor.
- Position token ID already exists.
- Position is frozen.
Decrease, collect, and burn
- Position fields do not match the public mapping.
- Requested removal exceeds liquidity.
- Principal does not meet raw minimums.
- Requested collection exceeds total owed.
- Owner or withdrawal freezelist proof is invalid.
- Position is frozen.
- Burn sees nonzero liquidity or owed balances.
Swap
- Deadline has passed.
- Global, token, pair, or pool control blocks trading.
- Token IDs do not match the pool.
- Price limit lies outside the domain or on the wrong side of current price.
- Amount is zero.
- Actual raw output is below
amount_out_min. - Swap ID already exists.
- Confidential address has already been used.
- Wide arithmetic cannot represent the result.
Multi-hop
- Hop count is not two or three.
- Token chain between hops is discontinuous.
- Final route token does not match requested output.
- Any hop has invalid pause, limit, pool, or arithmetic state.
Claim
- Pending output is absent, already claimed, or uses different fields.
- Any token or amount differs from stored
SwapOutput. - Signer freezelist proof is invalid.
- Token program rejects a public-to-private transfer.