xReserve deposits
These steps occur when a user deposits USDC into xReserve:- A user deposits USDC from their wallet app into xReserve smart contract on the source blockchain.
- The xReserve contract emits a deposit event and locks the funds, holding them in reserve.
- The xReserve attestation service generates and signs a deposit attestation.
- The remote blockchain attestation service fetches the signed deposit attestation.
- The remote blockchain mints USDC-backed tokens on their blockchain and emits a mint event.
- The remote blockchain token contract deposits the newly minted USDC-backed tokens into the user’s wallet app on the remote blockchain.
xReserve withdrawals
Subsequently, these steps occur when a user withdraws USDC from xReserve:- A user requests to burn USDC-backed tokens on the remote blockchain and withdraw USDC on the destination blockchain.
- The remote blockchain token contract burns their USDC-backed tokens on the remote blockchain and emits a burn event.
- The remote blockchain attestation service generates and signs a burn intent offchain.
- The remote blockchain attestation service passes the burn intent and signature to xReserve.
- xReserve verifies the burn and issues a withdrawal attestation.
- xReserve releases USDC to the user’s wallet on the destination blockchain.
Note: As part of the same withdrawal, xReserve can
forward funds to
another blockchain. This lets users withdraw funds on a blockchain other than
the source blockchain without performing an additional crosschain transfer.