- the source side, where the user initiates the swap by locking funds
- the destination side, where a solver prepares the funds the user wants to receive
The core idea
This gives every route the same high-level outcomes:- Claim when the swap completes successfully.
- Cancel when a side expires before settlement.
Key participants
| Participant | Role |
|---|---|
| User | Requests a quote, creates the order, and initiates the source side. |
| Solver | Provides destination liquidity and later claims the source side. |
| Orderbook | Records the order, route, quote data, and indexed on-chain status. |
| Relayer | Submits supported destination claims after validating the secret and route. |
| Watcher | Indexes escrow events so the app and API can show current status. |
| Escrow vaults | Enforce initiate, claim, and cancel rules on-chain. |
Some code and older notes may use the word “filler.” In these docs, solver means the participant that supplies destination liquidity and completes the other side of the swap.