Note: This tutorial is intended for remote blockchain partners. If you’re
a developer or user, visit the remote blockchain website or contact them for
instructions on how to withdraw funds from xReserve.
Step 1. Monitor burn events
Listen for burn events on your blockchain. Each event should include at least:- The recipient wallet address on the destination chain.
- The remote domain ID.
Step 2. Prepare the withdrawal
Send the burn intent data to the/prepare-withdrawal
endpoint. The following example request contains data to withdraw 2500 USDC on
Ethereum:
json
json
Step 3. Sign the message hash
Use your attester keys to sign themessageHashToSign returned in the previous step. This produces the burn
intent signatures.
Step 4. Submit the withdrawal
Send the encoded burn intent payload, the array of burn signatures, and the burn transaction hash to the/withdraw endpoint. Set
useCircleForwarding to true if you want Circle to submit the withdrawal on
behalf of your user.
Note: If you don’t use Circle
forwarding, you’ll
need to perform an additional crosschain transfer to withdraw funds from
xReserve.
json
withdrawalId, a unique identifier for each withdrawal batch.
For example:
json
Step 5. Monitor withdrawal status
Check the status of your withdrawal by callingGET /withdrawals/{withdrawalId}.
xReserve releases funds once the status is finalized. If the status remains
created, verified, or unverified, keep polling. If the status changes to
failed, resolve the issue and resubmit the withdrawal.