Integrating BTC-USD Price Feed for CBTC

This guide explains how wallets can display a BTC-USD price feed for CBTC

CBTC is a 1:1 Bitcoin-backed token on Canton Network. Reserves are verified via Chainlink Proof of Reserve (PoR)

circle-info

Why use BTC-USD price for CBTC?

Every CBTC token is backed 1:1 by underlying Bitcoin, with real-time on-chain verification through Chainlink Proof of Reserve (dashboard link coming soon!)

Choose an integration path

You have three options:

  • Option 1 — Chainlink Data Streams: Pull signed price reports from Chainlink's API

  • Option 2 — Kaiko Request-Response Oracle: Request on-ledger price data via a request/response oracle

  • Option 3 — Kaiko Pull Oracle: Fetch Kaiko-signed price data off-chain and publish it on-ledger yourself

Chainlink Data Streams delivers cryptographically verified, real-time market data. You fetch signed reports via the Data Streams API. You then verify them using Daml contracts provided by Chainlink.

Prerequisites

  • Access to a Canton participant node

  • Ability to upload DAR packages to your node

  • Familiarity with Daml contract development

circle-exclamation

Resources

For the full step-by-step integration guide — obtaining access, downloading DAR contracts, configuring the Verifier, and verifying reports:


Option 2: Kaiko Request-Response Oracle

The Kaiko Request-Response Oracle on Canton delivers real-time reference rates and indices. Your Canton node submits a request on-ledger and receives the price data in a filled response contract. Payment is handled per-request via Amulet.

Prerequisites

  • A Canton node connected to the same domain as the Kaiko Oracle node

  • The Oracle DAR uploaded to your Canton node

  • Sufficient Amulet balance to fund the request

  • Your Consumer party ID, DSO party ID, and relevant contract IDs

circle-info

Use rate identifier KK_RFR_BTCUSD (Kaiko BTC/USD Real-Time Reference Rate).

Resources

The full step-by-step integration guide is herearrow-up-right — preparing request payloads, submitting transactions, and reading responses


Option 3: Kaiko Pull Oracle

The Kaiko Pull Oracle lets you fetch Kaiko-signed BTC-USD price data off-chain via the Kaiko Market API and publish it directly to Canton. The ledger validates the cryptographic signature on-chain before accepting the data.

This approach gives you more control over publication timing and does not require Amulet-based payment per request.

How it works

  1. Fetch a signed BTC-USD price observation from the Kaiko Market API

  2. Publish the signed data to Canton by exercising PublishSignedData on the MasterOracle contract

  3. Verify — the ledger validates the signature and enforces your FeedEntitlement before creating a PublishedSignedData state on-chain

  4. Consume — any party can read the on-chain PublishedSignedData to retrieve the verified price

Prerequisites

  • A Canton participant node

  • A valid Kaiko API key

  • The Pull Oracle DAR uploaded to your Canton node

  • Your Actor Party ID and FeedEntitlement Contract ID

Resources

The full step-by-step integration guide is herearrow-up-right and it will help you fetch signed data, submit publication transactions, read on-chain data, and troubleshoot

Last updated