Skip to main content
For the conceptual distinction, read Settlement and orchestration. This page describes the corresponding contract paths.

Solver-funded path

  1. The source vault holds the reward.
  2. The caller approves the destination Portal and supplies the tokens required by route.tokens.
  3. fulfill runs the route and records the claimant; fulfillAndProve also initiates proving.
  4. The configured source prover exposes the fulfillment evidence.
  5. withdraw pays the claimant from the source vault.
Proof delivery and reward withdrawal can require additional transactions after the recipient receives destination assets.

Same-chain flash path

The LocalProver implementation provides flashFulfill(route, reward, claimant). It temporarily makes the reward withdrawable to itself, uses the received funds to fulfill the route through the Portal, then distributes remaining reward assets to the claimant. Withdrawal and fulfillment run inside one transaction. If fulfillment reverts, the withdrawal reverts too. The intent must name the Local prover and execute on the same chain as its reward.

Selecting a path

The contracts expose these entry points; they do not implement a universal three-tier routing policy or choose the cheapest route. An API route or solver determines which supported transaction to submit. Check the returned execution instructions and deployed contracts rather than assuming flash fulfillment is an automatic cross-chain fallback.

Next steps

See Flash Intents for usage constraints and Portal for methods and errors.