Skip to main content
This page walks through the main xReserve user workflows for moving USDC between an L1 chain and the Canton Network.

Onboarding

One-time setup that authorizes a specific Party ID to use xReserve.

Offboarding

Reverse onboarding and deactivate the Party ID for future xReserve activity.

Mint / Deposit

Send USDC on an L1 chain and mint the equivalent amount on the Canton Network.

Burn / Withdrawal

Burn USDC on the Canton Network and release the equivalent amount on the destination L1 chain.

Pre-approval

Allow xReserve to auto-mint incoming deposits for a Party ID.

Settings

Manage offboarding, pre-approval, connectivity, local state, and transaction-history preferences.

Onboarding Workflow

Once technical setup is complete and the user has access to the xReserve UI, onboarding is the one-time process that enables a specific Party ID to deposit (mint) and withdraw (burn) USDC through xReserve.
Once onboarding is complete, the user can deposit and mint USDC only for the Party ID that was onboarded. The Party ID currently in use is shown in the top-right area of the xReserve UI.
1

Log in to the xReserve UI

The exact login process depends on your organization’s authentication policies.
2

Open the onboarding flow

After login, the user lands on an empty state page and can start onboarding by clicking the yellow Onboard button.
Onboarding landing page with Onboard button
3

Choose whether to enable pre-approval

The confirmation popup includes a checkbox to enable Pre-approval for the Party ID. Pre-approval authorizes the xReserve system to mint all incoming deposits for the user’s Party ID automatically. This choice is not permanent and can be changed in the future.
All future deposits for this Party ID are minted automatically, based on the delegated authority given to xReserve.
Onboarding confirmation popup with pre-approval enabled
4

Submit the request and wait for approval

After the user clicks Confirm Onboard, a success popup appears in the lower-left corner.
Successful onboarding request banner
The application operator typically approves the request within about one minute. Once approved, the landing page shows balances and transactions for the onboarded Party ID.
Landing page after onboarding completes

Offboarding Workflow

Offboarding removes a Party ID from xReserve so it can no longer be used for the app’s workflows.
1

Open the Settings page

Click the profile icon in the top-right corner and select Settings. The first option is Remove account (offboard).
Settings page with offboarding option
2

Confirm offboarding

Click the red Offboard button, then confirm the action in the popup.
Offboarding confirmation popup
After confirmation, the Party ID is offboarded and can no longer use xReserve until it is onboarded again.
Users can re-onboard in the future by repeating the onboarding flow.

Mint / Deposit Workflow

This workflow has two parts: sending USDC on the source L1 chain, and then minting the corresponding USDC on the Canton Network.
Mint workflow overview

Send funds on an L1 chain

On an L1 chain such as Ethereum, USDC is sent to Circle’s xReserve contract together with metadata identifying the Canton recipient Party ID.
Fees may apply here depending on the L1 chain used. For example, on Ethereum gas fees will apply.

Option 1: Script

Digital Asset provides an open-source script for sending deposits: xreserve-deposits.
Digital Asset also provides a lightweight UI that supports WalletConnect and can be used on both Mainnet and Testnet.URL: https://digital-asset.github.io/xreserve-deposits/

Deposit using the open-source UI

1

Select the target environment

By default, the UI opens in Mainnet. To switch to Testnet, use the settings gear in the top-right corner.
Deposit UI showing environment selector
Deposit environment selection popup
2

Connect a wallet

Click on Connect Wallet and connect a wallet that supports WalletConnect, such as MetaMask.
3

Enter deposit details

Provide the following information:
  • Amount (USDC): the amount to send to Circle’s xReserve contract.
  • Canton recipient Party ID: the Party ID that will receive the minted USDC on the Canton Network.
The Party ID entered here should match the Party ID that was onboarded.
Deposit form with amount and recipient fields
4

Review and confirm the deposit

Click Deposit, review the confirmation popup carefully, and approve the transactions in the connected wallet.
Deposit confirmation popup
Two wallet transactions must be approved after confirming the popup.
5

Wait for L1 finality

After submission, wait for the source-chain transaction to finalize. On Ethereum, this is typically 13 to 15 minutes, or about two epochs.Once finality is reached, Circle confirms the deposit and the xReserve operator creates the corresponding deposit attestation on the Canton Network.

Receive funds on the Canton Network

After the deposit attestation has been created on the Canton Network, the recipient user can mint the corresponding USDC.
1

Wait for the deposit attestation to appear

Circle provides the deposit attestation after L1 finality, and the xReserve operator writes it to the Canton Network as a contract the user can action.
2

Process the attestation

What happens next depends on whether pre-approval is enabled for the Party ID.
The deposit attestation is actioned automatically and the USDC is minted without manual user interaction.
3

Verify updated holdings

Once minting completes, the user’s holdings update on the xReserve UI.
Updated holdings after successful mint
4

View the holding in the DA Registry UI

The new USDC holding amount is also visible in the DA Registry UI under Registry -> Holdings.
Holdings view showing minted USDC in DA Apps
After minting, the USDC holdings can be utilized through CIP-56 compliant workflows.

Burn / Withdrawal Workflow

This workflow burns USDC on the Canton Network and releases the equivalent amount, minus fees, on the destination L1 chain.
Burn workflow overview

Withdraw funds on the Canton Network

1

Start the withdrawal request

On the landing page, click Withdraw next to the user’s USDC holdings.
Landing page with withdraw button
2

Populate the withdrawal form

The first popup asks for the destination network, recipient address, and amount.
Withdrawal popup with editable fields
  • Network: the destination L1 network.
  • Recipient: the recipient address on the destination network.
  • Amount: the USDC amount to withdraw.
  • Fee checkbox: whether Circle’s flat withdrawal fee is included in the entered amount or added on top.
The amount supports up to 6 decimal places and cannot exceed the user’s available USDC holding.
3

Review the withdrawal details

Click Review to open the confirmation popup and validate the withdrawal before submission.
Withdrawal review popup
4

Confirm the withdrawal

Click Confirm Withdraw. The specified amount is burned on the Canton Network and the user sees a success banner.
Withdrawal success popup
5

Track processing status

While the request is being processed, it appears in the xReserve transaction history.
Pending withdrawal in transaction history

Receive funds on the destination L1 chain

After the withdrawal request is submitted, the xReserve operator and Circle validate it. Once confirmed, Circle releases the equivalent amount of USDC, minus the applicable xReserve withdrawal fees, to the destination address on the selected L1 chain. When complete, the transaction history entry on the xReserve landing page moves to Finalized.
Finalized withdrawal in transaction history

Pre-approval Setting

Pre-approval authorizes xReserve to mint all incoming deposits automatically for the user’s Party ID.
1

Turn pre-approval on or off from the landing page

Use the pre-approval toggle on the landing page.
Pre-approval toggle turned off
2

Confirm the change

A confirmation popup appears. After confirmation, a success banner is shown.
Pre-approval confirmation popup
Pre-approval success banner
3

Verify the updated state

The landing page reflects the new pre-approval setting after the update is applied.
Pre-approval toggle turned on
This setting can also be changed from the settings page.

Settings

The settings screen centralizes account, connectivity, and local UI preferences. To open it, click the profile icon in the top-right corner and select Settings.
Entry point to settings page
Settings menu dropdown

Available settings

Settings screen overview

Remove account (offboard)

Offboards the current account and archives the associated smart contract. See Offboarding.
Lets the user delegate minting authority so deposits can be minted directly to the Party ID. See Pre-approval.
Enables or disables WebSocket connections for real-time contract updates. When disabled, the UI falls back to HTTP polling.
Enables or disables periodic polling for contract updates. When disabled, the UI relies on WebSocket connections only.
Clears locally accumulated active contracts in the xReserve UI.
Enables or disables the display of executed deposits in the transaction history.