For the complete documentation index, see llms.txt. This page is also available as Markdown.

Changelog

All notable changes to the CBTC developer documentation are logged here. This includes new pages, content updates, API changes, SDK version bumps, and corrections.


2026-02-10

🚀 Initial publication

  • Published first draft of all CBTC developer documentation across 11 pages

  • New pages: CBTC Overview, Quick Start, Minting and Burning, API Reference, Authentication, Integration Guides, Security Deep Dive, Technical Reference, Instrument ID Management, SDK Setup and Installation, Testnet Guide

  • SDK: Documentation pinned to cbtc-lib v0.0.1 (post-December 2025 restructure)

  • Instrument IDs: Published devnet, testnet, and mainnet IDs with metadata endpoint URLs

  • Known gaps: Vaults documentation (Not Started), Home landing page (in progress), Error Codes Reference (deferred to v2)


2026-03-02

🔧 PR #22: Code and API corrections across all CBTC docs

Applied all corrections from GitHub PR #22 ("Fix CBTC docs to match actual cbtc-lib and canton-lib APIs"). Every Rust code example, curl command, module path, and function signature has been verified against the actual cbtc v0.3.0 and canton-lib v0.3.0 source code.

Affected pages: Quick Start, Minting and Burning, API Reference, Authentication, SDK Setup, Technical Reference

Version and crate updates

  • SDK version updated from v0.0.1 to v0.3.0 across all pages

  • Crate name corrected from cbtc-lib / cbtc_lib to cbtc

  • canton-lib documented as a workspace with 4 crates: keycloak, ledger, registry, common (all v0.3.0) Authentication code

  • All auth examples updated from keycloak::login(url, id, secret, user, pass) to struct-based keycloak::login::password(PasswordParams {... }) and keycloak::login::client_credentials(ClientCredentialsParams {... })

  • Auth0 callout updated to reference correct function names (keycloak::login::password, keycloak::login::client_credentials) Module paths and function names

  • cbtc_lib::depositcbtc::mint_redeem::mint

  • cbtc_lib::balancecbtc::active_contracts

  • cbtc_lib::withdrawcbtc::mint_redeem::redeem

  • cbtc_lib::utxocbtc::consolidate

  • get_deposit_addressget_bitcoin_address

  • get_active_contractsactive_contracts::get

  • transfer::sendtransfer::submit

  • accept::accept_transferaccept::submit

  • redeem::burn_and_withdrawredeem::create_withdraw_account + redeem::submit_withdraw (two-step)

  • consolidate::check_consolidateconsolidate::check_and_consolidate

  • All function signatures updated from positional args to struct params Environment variables

  • KEYCLOAK_URL replaced with KEYCLOAK_HOST + KEYCLOAK_REALM

  • KEYCLOAK_CLIENT_SECRET removed from password flow examples

  • LEDGER_PORT removed; all curl examples now use ${LEDGER_HOST} only Infrastructure URLs

  • Attester URLs corrected: attestor.bitsafe.devdevnet.dlc.link/attestor-1, attestor.bitsafe.testnettestnet.dlc.link/attestor-1, attestor.bitsafe.commainnet.dlc.link/attestor-1 Daml templates

  • CBTC.Issuance:DepositAccountCBTC.DepositAccount:CBTCDepositAccount

  • Added CBTC.WithdrawAccount:CBTCWithdrawAccount to API Reference SDK Setup additions

  • Added cbtc::accept and cbtc::cancel_offers to key modules table

  • Added client credentials authentication example

  • Added verification script, migration guide, and example.env file

✏️ Spelling correction: Attestor → Attester

Per reviewer feedback, corrected "Attestor" to "Attester" across all pages where it appeared in prose.

Affected pages: Quick Start, Minting and Burning, Security Deep Dive

🔒 Security Deep Dive: Attester network composition

Corrected the Attester network composition per reviewer input:

  • Before: 9 pre-screened external node operators (including P2P and Everstake) + 1 BitSafe

  • After: 3 external node operators (Finoa, Nethermind, DSRV) + 1 BitSafe-operated node (4 total)

📋 Integration Guides: Partner and feature updates

  • Silvana listed as (coming soon) pending verification

  • Hosted UI option updated from "coming soon" to (coming soon) per product team input

💰 Technical Reference: Fee confirmation

  • Mint and burn fees confirmed at 0% (changed from yellow warning callout to green confirmed callout)


2026-07-27

🔢 SDK and DAR version corrections

Version references had drifted out of sync with the released libraries, and three pages each stated a different cbtc-lib version. All version references now match the released tags.

Corrected to actual released versions

  • cbtc-libv0.6.4 (previously stated as v0.3.1 on API Reference, v0.4.2 on SDK Setup and Technical Reference, v0.3.0 on Quick Start)

  • canton-lib crates keycloak, ledger, registry, commonv0.6.1 (previously v0.3.1 / v0.5.0)

  • Latest CBTC DAR → cbtc-1.2.1, shipped in cbtc-lib v0.6.4

Affected pages: SDK Setup and Installation, API Reference, Technical Reference

Other fixes in this pass

  • API Reference install snippet corrected from https:// to ssh:// transport, matching SDK Setup — the HTTPS form does not work for this private repository

  • DAR download links repointed from the v0.3.1 and v0.4.2 tags to v0.6.4

  • Technical Reference repository table had cbtc-lib listed twice; the second row now correctly describes the CBTC DAR

  • Clarified that the DAR version (cbtc-1.2.1) and the crate version (v0.6.4) are numbered independently, which was the likely source of the confusion

  • Added a note that canton-lib crates must be pinned to the same tag cbtc-lib depends on, to avoid Cargo resolving two incompatible copies of the same types

Removed the December 2025 restructure migration content

The "Migration Guide: December 2025 Restructure" section on SDK Setup, and the matching restructure note on the API Reference, described how the library used to be laid out. Both pages document how to use the current release, so the guidance now lives here in the changelog and in the cleanup PR instead. The restructure moved module paths and function signatures only, with no runtime behaviour changes; code written before it needs its use statements updated to the module paths listed on SDK Setup.

Last updated