CBTC Testnet Guide
⚠️ API Disclaimer: CBTC APIs are subject to change. Testnet behavior may differ from mainnet in some respects (see Parity section below).
Overview: CBTC Testnet for Developers
Section titled “Overview: CBTC Testnet for Developers”The CBTC testnet is a sandbox environment where developers can experiment with the full mint, burn, and transfer lifecycle using test BTC with no real funds at risk. We recommend all integrations start on testnet before deploying to mainnet.
How to Get Testnet CBTC: Three Options
Section titled “How to Get Testnet CBTC: Three Options”Option 1: CBTC Testnet Faucet (Recommended)
Section titled “Option 1: CBTC Testnet Faucet (Recommended)”The fastest way to get testnet tokens:
Simply enter your testnet wallet address and receive testnet CBTC and CC (for gas) instantly.
💡 Quick and easy: No setup required. Just enter your address and go.
Option 2: Bron Wallet Testnet Environment
Section titled “Option 2: Bron Wallet Testnet Environment”If the faucet is unavailable or you want a full testnet wallet environment:
- Create a new workspace in Bron Wallet
- Enable Developer settings → Testnet mode during workspace creation
- Create a testnet account (toggle Testnet ON in account settings)
- Select a Trusted third party (e.g., Qrypt) for key recovery
- Use the faucet to fund your new testnet account
Option 3: Mint via Testnet Flow
Section titled “Option 3: Mint via Testnet Flow”You can also mint testnet CBTC through the same flow as mainnet, using testnet BTC. This is useful for testing the full minting integration:
- Set up your participant pointing at the testnet Canton network
- Install CBTC DAR files
- Follow the standard minting flow (see Minting and Burning Guide)
- Use testnet BTC from a Bitcoin testnet faucet
Testnet Environment Details
Section titled “Testnet Environment Details”| Property | Testnet | Mainnet |
|---|---|---|
| Registry URL | https://api.utilities.digitalasset-staging.com |
https://api.utilities.digitalasset.com |
| Coordinator URL | https://testnet.dlc.link/attestor-1 |
https://mainnet.dlc.link/attestor-1 |
| Instrument ID (admin) | cbtc-network::12201b17...508f |
cbtc-network::12205af3...b262 |
| BTC network | Bitcoin Testnet | Bitcoin Mainnet |
| Faucet | cbtc-faucet.bitsafe.finance | N/A (real BTC required) |
Testnet Instrument ID (Full)
Section titled “Testnet Instrument ID (Full)”{ "instrument_id": { "admin": "cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f", "id": "CBTC" }, "registry_url": "https://api.utilities.digitalasset-staging.com"}Testnet vs. Mainnet: What Is the Same and What Differs
Section titled “Testnet vs. Mainnet: What Is the Same and What Differs”📋 Understanding what is the same and what differs between testnet and mainnet is critical for a smooth production launch.
✅ What Is Identical
Section titled “✅ What Is Identical”- DAR files: Same CBTC Daml packages
- API surface: Same Canton Ledger API endpoints and Daml template interfaces
- Mint and burn flows: Same step-by-step process
- Governance model: Same Attestor threshold approval mechanism
- Token standard: CIP-56 compliant on both networks
⚠️ What Differs
Section titled “⚠️ What Differs”- Attestor set: Testnet runs a smaller Attestor set than mainnet
- Confirmation times: May be faster on testnet due to less Bitcoin network congestion
- Instrument IDs: Different across networks - always fetch from the metadata URL, never hardcode
- BTC: Testnet uses test BTC with no real value
- Faucet availability: Testnet has a faucet; mainnet requires real BTC
🚫 What Is Mocked or Unavailable on Testnet
Section titled “🚫 What Is Mocked or Unavailable on Testnet”- Real BTC settlement: No real Bitcoin is involved
- Production Attestor SLAs: Testnet Attestors do not carry the same uptime guarantees
- Mainnet fee structure: Fees on testnet may not reflect production costs
Important Operational Notes
Section titled “Important Operational Notes”⚠️ Testnet may be reset without notice. Do not rely on testnet state for production planning. Testnet CBTC balances and transaction history may not persist across resets.
- Testnet is for development and testing only
- Do not use testnet data for compliance, reporting, or production decisions
- Testnet performance is not indicative of mainnet performance
Migrate from CBTC Testnet to Mainnet: Step-by-Step Checklist
Section titled “Migrate from CBTC Testnet to Mainnet: Step-by-Step Checklist”When your testnet integration is working, the migration to mainnet involves:
- Update your participant config to point at the mainnet Canton network
- Update Instrument IDs to mainnet values (see API Reference)
- Update Coordinator URL to
https://mainnet.dlc.link/attestor-1 - Use real BTC for minting - the flow is identical
- Review authentication - ensure your production OIDC provider is configured
- Test with a small amount first - mint a minimal amount of CBTC on mainnet before going live
Devnet
Section titled “Devnet”There is also a devnet environment for earlier-stage experimentation. Devnet is less stable than testnet and may be updated more frequently.
Coordinator URL: https://devnet.dlc.link/attestor-2
{ "instrument_id": { "admin": "cbtc-network::12202a83c6f4082217c175e29bc53da5f2703ba2675778ab99217a5a881a949203ff", "id": "CBTC" }, "registry_url": "https://api.utilities.digitalasset-dev.com"}Troubleshooting
Section titled “Troubleshooting”| Issue | Resolution |
|---|---|
| Faucet not working | Use Bron Wallet testnet setup (Option 2) or contact support@bitsafe.finance |
| Testnet CBTC balance disappeared | Testnet may have been reset - request new tokens from the faucet |
| Minting on testnet takes too long | Check Bitcoin testnet block times - they can be irregular |
| Cannot connect to testnet participant | Verify your participant config points to the correct testnet endpoints |
Support: support@bitsafe.finance
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: