Aug 29, 2025

Enabling SBC Transfers on Canton Validators

Enabling SBC Transfers on Canton Validators

We outline how to enable external transfers of SBC from a Brale custodial Canton wallet to an external Canton wallet on a validator. To set up and test SBC external transfers, we use a Brale account and the Canton Utility app.

This post is applicable to developers and users on the Canton Network that have set up a validator and are looking to move SBC off of the Brale platform onto external wallets. You'll need a validator node connected to the Canton Network, the utility app deployed to the validator node, and access to the Canton Utility app.

The Canton Utility app provides a user interface to request a holder service from a provider party, which is Brale in our case. Setting up holder service allows a validator node’s wallet to recognize and send/receive stablecoins issued by Brale. After setting up this service, we can then transfer SBC from our Brale custodial wallet to an external wallet associated with SBC’s validator on Canton.

Request Holder Service in the Canton Utility App

To request a holder service, access the Registry module in the Canton Utility app. Within the Onboarding view, select the Request Holder Service option.

Here we enter the provider party ID from the issuer and submit the request. A provider on the Canton Network is the issuer and admin for supply and holder access of a token. For SBC, this role is provided by Brale, so we use their provider party ID:

party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e

After submitting, Brale will accept the holder service request. The status of the holder service request is available under the Requests tab.

As expected, we see that the service type is HolderService. The operator refers to a local utility user that runs the validator node and application services. The party ID is provided automatically when submitting the holder service request. It is not provided by Brale. The provider is Brale's party ID. The user is the party ID of our SBC validator wallet.

Once the holder service is accepted, we can test the external transfer of SBC from our Brale custodial wallet to SBC’s validator wallet.

Transferring SBC from Brale’s platform to an external wallet

We’ll test a transfer by sending SBC from our Brale account to the Canton wallet associated with our validator. First, in settings, we use our validator's party ID as the address when adding an external wallet to our Brale account.

When we go to initiate a transfer we see our Canton Validator Wallet and its party ID. In this test transaction, we send 1 SBC from our custodial wallet on Brale.

After sending, we need to go back to the Canton Utility app and accept the transfer.

The state will show “Offered” initially, and then will update to “Executed” when the transfer is accepted and complete. Canton does allow automatic acceptance of asset transfers, but we have not yet enabled that option so we have to manually accept it.

The Transfers view lists several fields and values that make up a transfer. If we want to send SBC from our validator wallet, we’d select Offer Transfer and fill in the following fields using some of the same information on the transfers list. Understanding the different components of an offer transfer gives us a better idea of how Canton transfers work.

The instrument ID for SBC is f29bdd7a-1469-498a-ba2a-796bf5387b31. This identifies a specific tokenized asset on the Canton Network and will need to be used when making transfers of SBC between Canton wallets.

The registrar field is required when sending SBC. In the Canton Network, a registrar is a participant responsible for recording and managing the ownership of assets without having access to all the details of a transaction in order to preserve privacy. For SBC, Brale also acts as the registrar and shares the same party ID we used for the provider field in the holder service request.

party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e

On the Canton Network, a transfer reference field is optional and used to securely identify a transaction and provide a purpose for the transfer. The concept is similar to a bank transfer reference.

Future Canton developments

The process we outline above is based on the current capabilities of the Canton Network. We expect future Canton releases to incorporate the token standard interface, making interacting with SBC much easier. This upgrade will remove the requirement to onboard SBC with a holder service request.

In the meantime, refer to this post to enable SBC to work with your validator's external wallets. Feel free to reach out with any questions on Telegram. We're excited to help support builders on the Canton Network.

Join the SBC

ecosystem

Partner with us to build a global, free, and accessible payment network.

Join the SBC

ecosystem

Partner with us to build a global, free, and accessible payment network.

Join the SBC

ecosystem

Partner with us to build a global, free, and accessible payment network.

Join the SBC

ecosystem

Partner with us to build a global, free, and accessible payment network.