Changelog
This page records asset developer documentation changes and the software releases that affect integrations. Software release dates are separate from documentation publication dates.
October 8, 2026: cbtc-lib v0.9.0 software release
Section titled “October 8, 2026: cbtc-lib v0.9.0 software release”cbtc-lib v0.9.0 pins canton-lib v0.11.0 and canton-api-client 3.6.1-0.1.0. It works with Canton 3.6.1 participants.
- Canton 3.6.1 rejects the
filterandverbosefields of an active-contracts request. canton-lib v0.11.0 sendseventFormatin their place. - Earlier releases return an empty balance and no error on a Canton 3.6.1 participant. Mint and redeem fail with
post_v2_state_active_contracts failed. - A holdings query that the Ledger API rejects now returns an error. The error text starts with
Ledger API returned. - This release is breaking. An application that pins a canton-lib crate must move that pin to v0.11.0.
- An application that depends on canton-api-client must move that dependency to 3.6.1-0.1.0. Mixed versions build two copies of the shared types.
- Engineering tested this release on Canton 3.6.1 only.
- The repository lockfile moves
h2to 0.4.19 to fix RUSTSEC-2026-0258. Your application’s own lockfile sets itsh2version.
This date identifies the software release, not the publication date of the documentation update.
Software changelog · Canonical upgrade path
October 1, 2026: cbtc-lib v0.8.0 software release
Section titled “October 1, 2026: cbtc-lib v0.8.0 software release”cbtc-lib v0.8.0 pins canton-lib v0.9.0 and exposes returned operation results.
- Transfer calls return a
TransferReceipt. Read itsoutcometo distinguish an offer from immediate settlement. - The CSV batch helper returns its batch result. Callers must handle reported failures.
- Allocation returns an
AllocationResult. Itsoutcomefield holds anAllocationOutcome, which distinguishes a completed allocation from a pending instruction. - Transfer guidance now requires acceptance only when an offer exists. Self-transfers and transfers to pre-approved receivers settle immediately.
- V2 examples cover consolidation, splitting, batch distribution, and batch with callback.
- Accept, reject, and cancel each retain one example because their V2 modules use the same parameter types.
- No V1 split example exists. Allocation remains V1-only.
This date identifies the software release, not the publication date of the documentation update.
Software changelog · Canonical upgrade path
September 24, 2026: cbtc-lib v0.7.0 software release
Section titled “September 24, 2026: cbtc-lib v0.7.0 software release”This release introduces the CIP-0112 / Canton Token Standard V2 entry points and breaking integration changes.
- Eight operations gain V2 entry points: accept, batch, cancel offers, consolidate, distribute, reject, split, and transfer.
- Holding queries gain account configuration. TokenClient selects version-dependent writes and holding reads through
TokenClientConfig.version. - Holding and offer filters match both the instrument name and administrator exactly.
- Parameter structs and offer-helper arguments require explicit instrument identity.
cbtc::holding::Holdingreplaces the earlier mint/redemption holding type.- Split errors expose partial results. Holding parsing requires
registrarandlabel. ENVIRONMENTsupplies standard network configuration. Explicit overrides remain supported.- Transfer-factory and accept-context routes use bounded transport retries. Allocation routes have no timeout and do not use those retries.
- Keycloak authentication uses
token_urlwithout the obsolete/authprefix. - The release pins canton-lib v0.8.0. The later cbtc-lib v0.8.0 release pins canton-lib v0.9.0.
The eight V2 operations are available on Mainnet. Allocation remains V1-only.
An upgrade from v0.6.4 crosses both v0.7.0 and v0.8.0. Follow one canonical upgrade path.
Affected reference pages
Section titled “Affected reference pages”- Compatibility and release notes
- Token standard and contract model
- SDK setup and installation
- SDK, API, and integration reference
- Transfer and receive CBTC
- Environments and prerequisites
- Errors, retries, and troubleshooting
July 27, 2026
Section titled “July 27, 2026”SDK and DAR version corrections
Section titled “SDK and DAR version corrections”Version references had drifted out of sync with released libraries. Three pages stated different cbtc-lib versions. This update aligned them with the released tags at that time.
Corrected versions:
- cbtc-lib to v0.6.4. Previous references included v0.3.1 on API Reference, v0.4.2 on SDK Setup and Technical Reference, and v0.3.0 on Quick Start.
- canton-lib crates
keycloak,ledger,registry, andcommonto v0.6.1. Previous references included v0.3.1 and v0.5.0. - Latest CBTC DAR to
cbtc-1.2.1, shipped in cbtc-lib v0.6.4.
Affected pages: SDK Setup and Installation, API Reference, Technical Reference.
Other corrections:
- Changed the API Reference installation snippet from HTTPS to SSH transport, matching repository access requirements at that time.
- Repointed DAR download links from v0.3.1 and v0.4.2 to v0.6.4.
- Corrected a duplicate cbtc-lib entry in the Technical Reference repository table to describe the CBTC DAR.
- Clarified that DAR and crate versions use independent numbering.
- Added dependency-pin guidance to avoid incompatible copies of shared types.
December 2025 restructure guidance moved to history
Section titled “December 2025 restructure guidance moved to history”Removed the old restructure migration section from SDK Setup and the matching note from API Reference. Both pages describe the current release.
The restructure changed module paths and function signatures, not runtime behavior. Earlier code needed updated imports. The historical guidance remains recorded here and in the cleanup pull request.
March 2, 2026
Section titled “March 2, 2026”PR #22: Code and API corrections
Section titled “PR #22: Code and API corrections”The documentation update applied GitHub PR #22, “Fix CBTC docs to match actual cbtc-lib and canton-lib APIs.” The historical review recorded verification against cbtc v0.3.0 and canton-lib v0.3.0.
Affected pages: Quick Start, Minting and Burning, API Reference, Authentication, SDK Setup, Technical Reference.
Version and crate corrections
- Updated SDK references from v0.0.1 to v0.3.0.
- Corrected the Rust crate name from
cbtc-liborcbtc_libtocbtc. - Described canton-lib as a workspace containing
keycloak,ledger,registry, andcommon, then at v0.3.0.
Authentication corrections
- Replaced the older positional login call with
password(PasswordParams { ... })andclient_credentials(ClientCredentialsParams { ... }). - Corrected Auth0 callouts to use the corresponding struct-based helper names.
- Replaced
KEYCLOAK_URLwithKEYCLOAK_HOSTandKEYCLOAK_REALM. - Removed
KEYCLOAK_CLIENT_SECRETfrom password-flow examples. - Removed
LEDGER_PORT; curl examples usedLEDGER_HOST.
Module and function corrections
| Earlier name | Replacement recorded in that update |
|---|---|
cbtc_lib::deposit |
cbtc::mint_redeem::mint |
cbtc_lib::balance |
cbtc::active_contracts |
cbtc_lib::withdraw |
cbtc::mint_redeem::redeem |
cbtc_lib::utxo |
cbtc::consolidate |
get_deposit_address |
get_bitcoin_address |
get_active_contracts |
active_contracts::get |
transfer::send |
transfer::submit |
accept::accept_transfer |
accept::submit |
redeem::burn_and_withdraw |
redeem::create_withdraw_account followed by redeem::submit_withdraw |
consolidate::check_consolidate |
consolidate::check_and_consolidate |
Function signatures changed from positional arguments to parameter structs.
Infrastructure and template corrections
- Updated historical Attestor host references from
attestor.bitsafe.dev,attestor.bitsafe.testnet, andattestor.bitsafe.comto the correspondingdevnet.dlc.link/attestor-1,testnet.dlc.link/attestor-1, andmainnet.dlc.link/attestor-1hosts. - Corrected
CBTC.Issuance:DepositAccounttoCBTC.DepositAccount:CBTCDepositAccount. - Added
CBTC.WithdrawAccount:CBTCWithdrawAccountto API Reference.
These are historical corrections, not current endpoint configuration. Obtain current endpoints through approved onboarding.
SDK setup additions
- Added accept and cancel-offer modules to the module table.
- Added the client-credentials authentication example.
- Added a verification script, migration guide, and
.envexample.
Historical terminology and network notes
The March update changed “Attestor” to “Attester” in several pages following reviewer feedback. Current documentation uses Attestor / Attestor Network, following the current terminology guide.
The same historical update changed the published operator description from nine external operators plus BitSafe to Finoa, Nethermind, DSRV, and BitSafe. This records the update at that time, not a permanent operator count.
Partner and feature notes
Integration Guides marked Silvana and the hosted UI as “coming soon,” pending confirmation. These entries describe their status at that time.
Fee note
Technical Reference recorded mint and burn fees at 0% in that review. Confirm current fee information before quoting it for a new integration.
February 10, 2026
Section titled “February 10, 2026”Initial publication
Section titled “Initial publication”- Published the first draft of CBTC developer documentation across 11 pages.
- Pages included CBTC Overview, Quick Start, Minting and Burning, API Reference, Authentication, Integration Guides, Security Deep Dive, Technical Reference, Instrument ID Management, SDK Setup and Installation, and Testnet Guide.
- Pinned SDK documentation to cbtc-lib v0.0.1 after the December 2025 restructure.
- Published devnet, testnet, and mainnet instrument identifiers with metadata endpoint references.
- Recorded gaps: Vaults documentation had not started, Home was in progress, and Error Codes Reference was deferred to v2.
Historical identifiers and status notes are not current configuration instructions.
Ask the docs
Answers come only from this documentation and can be wrong. Check the linked pages.
Ask a question about BitSafe, CBTC or the developer guides. For example: