SmallSwap SmallSwap

Risk levels

Each quote in /new_rate carries a risk field. It describes what the destination provider does to inbound funds — not the user, not their wallet.

auto

No screening, no holds.

The provider does not classify or block inbound funds. Lowest-friction. The default expectation for self-custody-only providers and aggregators with a privacy-first posture.

flexible

Best-effort routing; may re-route or refund.

The provider attempts the quoted rate but reserves the right to re-route through a partner or refund (less network fee) if their own inventory or risk model rejects the swap mid-flight. Less common.

precheck

Operator may pre-execute screening (the SmallSwap default).

"PreCheck" describes the user-perspective expectation: any operator running this codebase MAY apply pre-execution screening to deposits or recipient addresses via the ScreenerPlugin (Spec 11). Whether they actually do is the operator's choice — the v3 default build registers no plugin and performs no third-party screening, but the precheck label stays so that integrators don't promise users "no screening ever happens" only to discover a downstream operator does. Trust the label, not the assumption.

controlled

Full compliance posture — KYC, sanctions list, regulated entity.

The provider operates as a registered VASP / MTL / equivalent, runs full sanctions and KYC checks, and may freeze or seize funds per their jurisdiction. Useful for integrators who need predictable on-/off-ramp behavior at the expense of friction.

How to use this field

  • Surface it. Show the risk pill next to each quote. Users routing privacy-sensitive funds will filter to auto and precheck.
  • Don't sort by it. Lowest-friction isn't always best for the user — rate, ETA, and reliability matter too. Let the rate win on rate; let the pill inform.
  • Trust the operator. SmallSwap labels its own self-fill route precheck even when no plugin is registered, because the operator could swap in a plugin at any time. The label expresses possible behavior, not current behavior.