CCTP: USDC to an EVM chain
1
Quote with the destination
2
Prompt 1: approve
transfer_from, so it needs an allowance. If an allowance already covers the amount, this prompt is skipped.3
Prompt 2: burn
4
Delivery
Iris attests the burn, and Pesa’s relayer calls
receiveMessage on Arbitrum. The status becomes completed when the mint is observed there.AWAITING_SIGNATURE and asks for prompt 1 again.
USDT0: USDC to USDT on an EVM chain
Useroute: "usdt0-withdraw". Pesa first tops up the XLM the LayerZero fee needs (stage FUNDED, status pending_anchor). Then:
- Prompt 1: the USDC to USDT0 swap. Check it with
verifyStellarSwap. - Prompt 2: the OFT
sendto the destination chain. Check it withverifyStellarOftSend.
Always pass what the user typed
The withdrawal address inverifyStellarBurn and verifyStellarOftSend must come from your UI. These two verifiers are the last check that the funds go where the user asked.