This guide provides step-by-step instructions for creating market data requests to Kaiko using the Kaiko oracle on the Canton blockchain. You can see our full range of Reference Rates and Multi-Asset Indices available on Canton here.
The Kaiko oracle enables secure, paid/licensed requests for real-time Reference Rates and Multi-Asset Indices through the Canton blockchain. The system follows the standard request-response oracle workflow:
Prepare request parameters: Format the Kaiko-specific payload.
Retrieve contracts: Get the current Amulet rules and open mining round contracts.
Exercise a contract choice: Submit a transaction to create a data request.
The oracle processes the request off-chain (settling payment via Amulets) and posts the Kaiko market data response back on-ledger.
Prerequisites
Required information
You need the following information before starting:
Canton participant endpoint: URL of your Canton participant JSON API
Canton authentication token: Valid token for API access
Consumer party ID: Your party identifier in Canton (e.g., Consumer::1220...)
RequestFactory contract ID: Contract ID for the request factory
DSO party ID: DSO party identifier
Data provider details (provider-dependent): Data request payload (stringified JSON)
Amulet contract ID: An Amulet contract to fund payment
Payment locked amount: Amount to lock for the request
Environment setup
Ensure you have:
A Canton node connected to the same domain as the oracle node
The Prepaid Oracle DAR uploaded to your Canton node
Sufficient Amulet balance for the request
Creating a Data Request
Prepare provider request parameters
The Kaiko oracle accepts requests for one or more tickers (real-time reference rates and indices).
Input model (Kaiko)
You must prepare the payload as valid JSON and then stringify it for the Canton command.
You must first select the Asset Class for the ticker you need to request. One asset class is allowed per request.
Asset Classes:
crypto: Array of Kaiko tickers for Crypto Assets. E.g.:
KK_RFR_BTCUSD
KK_RFR_CCUSD
equity: Array of Kaiko tickers for Equity Assets. E.g.:
KK_RFR_TSLAUSD
Example Request 1: Accessing Crypto Data
Example Request 2: Accessing Equity Data
Stringified payload
When sending the request to Canton, pass the stringified version (quotes escaped):
Submit the request creation transaction
Make a POST request to Canton to exercise the CreateRequest choice.