This document serves as an installation manual for the BTC/CBTC Mint Application on Canton.

📖 For the UI user guide, see: BTC/CBTC Minting UI Documentation


<aside> 📑

In this guide

</aside>


Installing the CBTC Minting Application

Install the Dar files

Install all versions of the Dar files found in the CBTC Dars directory, hosted here. All versions must be installed to properly be able to access all versions of the live contracts.

You will need to install all the dar files found in this folder

https://github.com/DLC-link/cbtc-lib/tree/main/cbtc-dars


Calling the CBTC Minting / Redeem APIs Directly

API Reference

Mint Flow

https://github.com/DLC-link/cbtc-lib/tree/main/examples

Redeem Flow

https://github.com/DLC-link/cbtc-lib/tree/main/examples

<aside> 💡

Note: This library is fairly new and still in beta development. There are no known vulnerabilities, but if you are having issues, please reach out to BitSafe for support.

</aside>

Rust Library for CBTC Interaction

Minting & Redemption

https://github.com/DLC-link/cbtc-lib/tree/main/examples

Moving CBTC

https://github.com/DLC-link/cbtc-lib/tree/main/examples

<aside> 💡

Note: This library is fairly new and still in beta development. There are no known vulnerabilities, but if you are having issues, please reach out to BitSafe for support.

</aside>


Installing the CBTC Minting UI Locally

After installing the Dar files, you can also choose to allow interaction with the Bridging UI app from a local instance. This allows for more network privacy and tighter security. However, it comes at the cost of increased maintenance.

<aside> 📩

Please reach out if you would like to run a local version of the UI, and we will provide the necessary details.

</aside>


Configuring the centrally-hosted CBTC Minting UI against your Validator

<aside> 🚧

Coming Soon — This feature is not yet available. Please reach out to BitSafe if you're interested.

</aside>

Installation Guide

Allow network Ingress

For our hosted UI to access your node, you should provide access to your Ledger API and Validator API. We can provide the source URL for the inbound requests in our tg or slack channel.

Documentation for this process can be found on the core validator documents here: https://docs.dev.sync.global/validator_operator/validator_networking.html#ingress

Enable CORS Support

Add annotations or metadata to the ingress to enable CORS (this solves CORS issues when the application calls the APIs above)

Requests are made directly from your browser, which is what causes CORS issues without proper headers. Local browser calls ensure your Canton Party JWT never touches our infrastructure and also works with your existing IP address if your infrastructure is protected by whitelisting IPs.

Create an OIDC Application for Authentication callback

Create or modify an OIDC Application with the following:

  1. Application type is a Single Page Web Application (for Auth0) or Public (for Keycloak)
  2. Add the following callback_urls (this allows you to reach your login page from our frontend): TBD

Set up Your BitSafe CBTC Minting Organization Account

Someone from your organization can log into the app at https://mint.bitsafe.finance and create an organization. Then other members can be added to the organization via the invitation link under the "organization settings" tab.

Set up Canton Authentication

On the "Organization Settings" page, input your OIDC configuration, and the Canton API url, which is the full base url specific during the ingress configuration step. This only needs to be done once for the organization, or when the data changes.

Finish by clicking the "Authenticate to Canton" button to ensure things are working properly.

Debugging

Start by checking the provided diagnostics page, which can be found at this_link


Helpful Resources

Scripts for uploading Dar files

https://gist.github.com/scolear/1e8c03d75c3f35c40a206fbba1f3f294

Onboarding to Cantara


FAQ

Speed

UTXO Management

Creating Parties