Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Real-time Reference Rates & Indices on Canton
FilledRequestFilledRequestJSON
{
"crypto": ["KK_RFR_BTCUSD", "KK_RFR_CCUSD"]
}{
"equity": ["KK_RFR_TSLAUSD"]
}"{\"crypto\":[\"KK_RFR_BTCUSD\",\"KK_RFR_CCUSD\"]}"{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "kaiko-request-1",
"commands": [
{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "kaiko-request-1",
"ExerciseCommand": {
"contractId": "{REQUEST_FACTORY_CONTRACT_ID}",
"templateId": "{PACKAGE_ID}:PrepaidOracle.RequestFactory:RequestFactory",
"choice": "CreateRequest",
"choiceArgument": {
"dso": "{DSO_PARTY}",
"amuletRulesCid": "{AMULET_RULES_CONTRACT_ID}",
"openRoundCid": "{OPEN_ROUND_CONTRACT_ID}",
"inputs": [
{
"tag": "InputAmulet",
"value": "{YOUR_AMULET_CONTRACT_ID}"
}
],
"dataRequest": "{\"rates\":[\"KK_RFR_BTCUSD\",\"EGLXRT\"]}",
"lockedAmount": {PAYMENT_LOCKED_AMOUNT
}
}
}
}
],
"disclosedContracts": [
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.AmuletRules:AmuletRules",
"contractId": "{AMULET_RULES_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{AMULET_RULES_DISCLOSED_BLOB}"
},
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.Round:OpenMiningRound",
"contractId": "{OPEN_ROUND_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{OPEN_ROUND_DISCLOSED_BLOB}"
}
]
}{
"KK_RFR_BTCUSD": "{\"value\": 76293.2345454545, \"timestamp\": 1772633545286}",
"KK_RFR_CCUSD": "{\"value\": 0.1698132000, \"timestamp\": 1772633526495}"
}{
"oracle": "{ORACLE_PARTY}",
"consumer": "{YOUR_CONSUMER_PARTY}",
"requestData": "{\"rates\":[\"KK_RFR_BTCUSD\",\"KK_RFR_BTCUSD\"]}",
"responseData": "{\"KK_RFR_BTCUSD\": \"{\\\"value\\\": 76293.2345454545, \\\"timestamp\\\": 1772633545286}\",\"KK_RFR_CCUSD\": \"{\\\"value\\\": 0.1698132000, \\\"timestamp\\\": 1772633526495}\"}",
"serviceAmountCharged": "1.0000000000"
}import { ethers } from 'ethers';
// Set up your Ethereum provider
const provider = new ethers.providers.JsonRpcProvider("<YOUR_PROVIDER_URL>");
// Initialize wallet using private key and connect it to the provider
const wallet = new ethers.Wallet("<YOUR_PRIVATE_KEY>", provider);
// Smart contract address
const contractAddress = "0xff2743c44f820c64c94eccfc1b497a1019541097";
// ABI definition of the contract's refreshPriceFeeds method
const abi = [
"function refreshPriceFeeds() payable external"
];
// Create an instance of the contract
const contract = new ethers.Contract(contractAddress, abi, wallet);
async function refreshPriceFeeds() {
try {
// Define the amount of ETH to send (0.00000112 ETH)
const amountToSend = ethers.utils.parseEther("0.00000112");
// Call the refreshPriceFeeds function, sending 0.00000112 ETH
const tx = await contract.refreshPriceFeeds({
value: amountToSend // Send 0.00000112 ETH
});
// Wait for the transaction to be mined
console.log("Transaction sent. Waiting for confirmation...");
const receipt = await tx.wait();
console.log("Transaction confirmed, receipt:", receipt);
} catch (error) {
console.error("Error while calling refreshPriceFeeds:", error);
}
}
// Call the function
refreshPriceFeeds();// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IExternalContract {
function latestUpdate() external view returns (uint256 price, uint256 decimals, uint256 updatedAt);
}
contract CallLatestUpdate {
address public externalContractAddress = <PRICE_CONTRACT_ADDRESS>;
// Function to call the latestUpdate() function on the external contract
function getLatestUpdate() public view returns (uint256 price, uint256 decimals, uint256 updatedAt) {
// Create an instance of the external contract using the interface
IExternalContract externalContract = IExternalContract(externalContractAddress);
// Call the latestUpdate() function on the external contract
return externalContract.latestUpdate();
}
}
FilledRequest contract{
"dataset": "live/midrate/v1/rates",
"currencypair": "GBPUSD",
"tenor": "SPT",
"deliverability": "D",
"type": "O"
}"{\n\"dataset\": \"live/midrate/v1/rates\",\n\"currencypair\": \"GBPUSD\",\n\"tenor\": \"SPT\",\n\"deliverability\": \"D\",\n\"type\": \"O\"\n}"POST {PARTICIPANT_NODE_JSON_API_URL}/v2/commands/submit-and-wait-for-transaction-tree
Authorization: Bearer {CANTON_TOKEN}
Content-Type: application/json
{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "create-request-1",
"commands": [
{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "create-request-1",
"ExerciseCommand": {
"contractId": "{REQUEST_FACTORY_CONTRACT_ID}",
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.RequestFactory:RequestFactory",
"choice": "CreateRequest",
"choiceArgument": {
"dso": "{DSO_PARTY}",
"amuletRulesCid": "{AMULET_RULES_CONTRACT_ID}",
"openRoundCid": "{OPEN_ROUND_CONTRACT_ID}",
"inputs": [
{
"tag": "InputAmulet",
"value": "{YOUR_AMULET_CONTRACT_ID}"
}
],
"dataRequest": "{STRINGIFIED_NCFX_DATA_REQUEST}",
"lockedAmount": {PAYMENT_LOCKED_AMOUNT}
}
}
}
],
"disclosedContracts": [
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.AmuletRules:AmuletRules",
"contractId": "{AMULET_RULES_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{AMULET_RULES_DISCLOSED_BLOB}"
},
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.Round:OpenMiningRound",
"contractId": "{OPEN_ROUND_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{OPEN_ROUND_DISCLOSED_BLOB}"
}
]
}
{
"transferResult": {
"round": {
"number": "29450"
},
"summary": {
"inputAppRewardAmount": "0.0000000000",
"inputValidatorRewardAmount": "0.0000000000",
"inputSvRewardAmount": "0.0000000000",
"inputAmuletAmount": "267332873.0096101736",
"balanceChanges": [
[
"kaiko-devnet-1::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c",
{
"changeToInitialAmountAsOfRoundZero": "3.4415328900",
"changeToHoldingFeesRate": "0.0001168602"
}
]
],
"holdingFees": "0.0000000000",
"outputFees": [
"0.0000000000"
],
"senderChangeFee": "0.0000000000",
"senderChangeAmount": "267332868.0096101736",
"amuletPrice": "0.1628090000",
"inputValidatorFaucetAmount": "0.0000000000",
"inputUnclaimedActivityRecordAmount": "0.0000000000"
},
"createdAmulets": [
{
"tag": "TransferResultLockedAmulet",
"value": "00ed9e1b4151e1ef755c6299e13daaaf9a4db647e276d531450458afa8379e5a62ca121220ae6ee4724b56f56318093df7cb1eee5e6d8caa35d3ad37ce0b914b02eb86ddff"
}
],
"senderChangeAmulet": "00dfd2b1bcc153d42ee241a2ac6c524bcc2c5ae5ee0894b918b3bb302b6fc9a173ca1212204132fe27f6d8f1c0531d0ad0bdf80a36828fcf3598baceef12d4b9696da7ebc8",
"meta": {
"values": {
"splice.lfdecentralizedtrust.org/sender": "kaiko-devnet-1::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c",
"splice.lfdecentralizedtrust.org/tx-kind": "transfer"
}
}
},
"requestCid": "00ac8fef95efed0583d531ac51ca1eeb2881d1c31f87b31e3ff321eb5441d619e3ca1212206c3d1b48abb01cb7ce28af486debeb9739ec6e8668fec4b19af6255e610fccbb",
"oracleResponse": "Request created for: {\n\"dataset\": \"live/midrate/v1/rates\",\n\"currencypair\": \"GBPUSD\",\n\"tenor\": \"SPT\",\n\"deliverability\": \"D\",\n\"type\": \"O\"\n} (escrowed 5.0 Amulet until 2026-02-04T15:05:03.617409Z)",
"lockedAmount": "5.0000000000",
"requestId": "babc4f56d892"
}{
"oracle": "{ORACLE_PARTY}",
"consumer": "{CONSUMER_PARTY}",
"requestData": "{stringified json request data}",
"responseData": "{stringified json response data}",
"serviceAmountCharged": "1.0000000000"
}POST {PARTICIPANT_NODE_JSON_API_URL}/v2/state/active-contracts
Authorization: Bearer {CANTON_TOKEN}
Content-Type: application/json{
"activeAtOffset": {offset},
"verbose": false,
"eventFormat": {
"filtersByParty": {
"{YOUR_CONSUMER_PARTY}": {
"cumulative": [
{
"identifierFilter": {
"TemplateFilter": {
"value": {
"includeCreatedEventBlob": false,
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.Request:FilledRequest"
}
}
}
}
]
}
},
"verbose": false
}
}[
{
"workflowId": "",
"contractEntry": {
"JsActiveContract": {
"createdEvent": {
"offset": 627962,
"nodeId": 1,
"contractId": "{FILLED_REQUEST_CONTRACT_ID}",
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.Request:FilledRequest",
"contractKey": null,
"createArgument": {
"oracle": "{ORACLE_PARTY}",
"consumer": "{YOUR_CONSUMER_PARTY}",
"requestId": "babc4f56d892",
"requestData": "{stringified json request data}",
"responseData": "{stringified json response data}",
"serviceAmountCharged": "1.0000000000"
},
"createdEventBlob": "",
"interfaceViews": [],
"witnessParties": [
"{ORACLE_PARTY}"
],
"signatories": [
"{ORACLE_PARTY}"
],
"observers": [
"{YOUR_CONSUMER_PARTY}"
],
"createdAt": "2026-01-23T14:56:45.708037Z",
"packageName": "Request-Response-oracle",
"representativePackageId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1",
"acsDelta": true
},
"synchronizerId": "global-domain::1220...",
"reassignmentCounter": 0
}
}
}
]
ExtractDataFields choicePO1-DataProvider::1220...)cd scripts
# upload
./upload_dar.sh
GET https://us.market-api.kaiko.io/v2/data/canton/oracle/price/btc-usd
X-Api-Key: your-kaiko-api-key
Content-Type: application/json
{
"data": {
"name": "btc-usd",
"value": 67850123456,
"decimal": 6,
"timestamp": 1729677600000,
"signature": "{signature}"
},
"canton_oracle": {
"template_id": "{PACKAGE_ID}:PullOracle.MasterOracle:MasterOracle",
"contract_id": "{contract_id}",
"synchronizer_id": "{sync_id}",
"created_event_blob": "{base64_encoded_blob}"
}
}
POST PARTICIPANT_JSON_API_URL/v2/commands/submit-and-wait
Authorization: Bearer your-canton-token
Content-Type: application/json
{
"actAs": [
"{your_party_id}"
],
"commandId": "{random_command_id}",
"commands": [
{
"actAs": [
"{your_party_id}"
],
"commandId": "{random_command_id}",
"ExerciseCommand": {
"contractId": "{contract_id}",
"templateId": "{PACKAGE_ID}:PullOracle.MasterOracle:MasterOracle",
"choice": "PublishSignedData",
"choiceArgument": {
"actor": "{your_party_id}",
"value": 67850123456,
"timestamp": 1729677600000,
"signature": "{signature}",
"entitlement": "{your_entitlement_contract_id}"
}
}
}
],
"disclosedContracts": [
{
"templateId": "{PACKAGE_ID}:PullOracle.MasterOracle:MasterOracle",
"contractId": "{contract_id}",
"synchronizerId": "{sync_id}",
"createdEventBlob": "{base64_encoded_blob}"
}
]
}
GET https://us.market-api.kaiko.io/v2/data/canton/oracle/price/btc-usd
X-Api-Key: your-api-keyGET PARTICIPANT_JSON_API_URL/v2/health
Authorization: Bearer your-tokenPOST PARTICIPANT_JSON_API_URL/v2/contracts/search
Authorization: Bearer your-token
Content-Type: application/json
{
"templateIds": ["PullOracle.MasterOracle:MasterOracle"]
}
import requests
from datetime import datetime
def publish_btc_price():
# Configuration
KAIKO_API_KEY = "your-kaiko-api-key"
KAIKO_URL = "https://us.market-api.kaiko.io/v2/data/canton/oracle/price/btc-usd"
CANTON_ENDPOINT = "PARTICIPANT_JSON_API_URL"
CANTON_TOKEN = "your-canton-token"
ACTOR_PARTY = "{your_party_id}"
ENTITLEMENT_ID = "00f6b5eff282ced2d6b136058b15302192b912df2fdab80a98b04b49d0ab7e2fb4ca111220af7eec3e2d2a72b6255dd082adaea2ca2f56cdd5c4f15bd0b652874bce2085ce"
# Step 1: Fetch market data
headers = {
"X-Api-Key": KAIKO_API_KEY,
"Content-Type": "application/json"
}
response = requests.get(KAIKO_URL, headers=headers)
kaiko_data = response.json()
# Extract data
value = kaiko_data["data"]["value"]
timestamp = kaiko_data["data"]["timestamp"]
signature = kaiko_data["data"]["signature"]
# Step 2: Submit transaction
command_id = f"publish-btc-{int(datetime.now().timestamp())}"
canton_payload = {
"actAs": [ACTOR_PARTY],
"commandId": command_id,
"disclosedContracts": [
{
"templateId": kaiko_data["canton_oracle"]["template_id"],
"contractId": kaiko_data["canton_oracle"]["contract_id"],
"synchronizerId": kaiko_data["canton_oracle"]["synchronizer_id"],
"createdEventBlob": kaiko_data["canton_oracle"]["created_event_blob"]
}
],
"commands": [
{
"actAs": [ACTOR_PARTY],
"commandId": command_id,
"ExerciseCommand": {
"contractId": kaiko_data["canton_oracle"]["contract_id"],
"templateId": kaiko_data["canton_oracle"]["template_id"],
"choice": "PublishSignedData",
"choiceArgument": {
"actor": ACTOR_PARTY,
"value": value,
"timestamp": timestamp,
"signature": signature,
"entitlement": ENTITLEMENT_ID
}
}
}
]
}
canton_headers = {
"Authorization": f"Bearer {CANTON_TOKEN}",
"Content-Type": "application/json"
}
canton_response = requests.post(
f"{CANTON_ENDPOINT}/v2/commands/submit-and-wait",
json=canton_payload,
headers=canton_headers
)
if canton_response.status_code == 200:
result = canton_response.json()
print("✅ Price published successfully!")
print(f"📊 Value: {value}")
print(f"⏰ Timestamp: {timestamp}")
return result
else:
print(f"❌ Failed: {canton_response.text}")
return None
# Execute
if __name__ == "__main__":
publish_btc_price()module PublishedSignedDataValues where
import DataStandard.DataPointV1 (PublishedData(..))
import DataStandard.Utils (Values)
import qualified DataStandard.Utils as Utils
-- | Template for extracting values from PublishedData contracts
-- This template provides utility functions to retrieve specific fields
-- from contracts implementing the PublishedData interface using the data standard Values interface
template PublishedSignedDataValues
with
subscriber : Party
where
signatory subscriber
-- | Choice to extract specific fields from a PublishedData contract
-- Returns feedId, value, decimal, and timestamp fields
nonconsuming choice ExtractDataFields : (Text, Int, Int, Int)
with
publishedDataId : ContractId PublishedData
controller subscriber
do
-- Fetch the PublishedData contract
publishedDataView <- view <$> fetch publishedDataId
-- Extract the required fields using Utils.getField from the values
feedId <- case Utils.getField "feedId" publishedDataView.values of
Some fid -> return fid
None -> error "feedId field not found"
value <- case Utils.getField "value" publishedDataView.values of
Some v -> return v
None -> error "value field not found"
decimal <- case Utils.getField "decimal" publishedDataView.values of
Some d -> return d
None -> error "decimal field not found"
timestamp <- case Utils.getField "timestamp" publishedDataView.values of
Some t -> return t
None -> error "timestamp field not found"
return (feedId, value, decimal, timestamp)
-- | Choice to extract all available fields from a PublishedData contract
-- Returns the complete Values map for inspection
nonconsuming choice ExtractAllFields : Values
with
publishedDataId : ContractId PublishedData
controller subscriber
do
-- Fetch the PublishedData contract and get its view
publishedDataView <- view <$> fetch publishedDataId
-- Return the complete values map
return publishedDataView.values
-- | Choice to extract a specific field by name from a PublishedData contract
POST PARTICIPANT_JSON_API_URL/v2/commands/submit-and-wait-for-transaction-tree
Authorization: Bearer your-canton-token
Content-Type: application/json{
"actAs": [
"{subscriber_party}"
],
"commandId": "command-12345",
"commands": [
{
"actAs": [
"{subscriber_party}"
],
"commandId": "command-12345",
"ExerciseCommand": {
"contractId": "00aaa607e80925b65138e43beff8cdc821f01ce50a624bacf35b248d0d28cadaf6ca11122018d0d4db95635c2a717215bfb508c44a00ce3664b9e071309dfa7c9629ea663a",
"templateId": "PACKAGE_ID:PublishedSignedDataValues:PublishedSignedDataValues",
"choice": "ExtractDataFields",
"choiceArgument": {
"publishedDataId": "0074f05f05f1afc7916d6a88662d42845ddfe2c12347c6937c27f45191c0620466ca111220b27457a819843992a9f752abb90237c48f1185cf9938069c4316c074a23261b4"
}
}
}
]
}
{
"transactionTree": {
"updateId": "1220096c8df701c40f11345c3edef0d99adb7eee50ca32a5f42e29ea34fa73ed5ca9",
"commandId": "test-read-1235",
"workflowId": "",
"effectiveAt": "2025-11-21T10:18:03.758127Z",
"offset": 88255,
"eventsById": {
"0": {
"ExercisedTreeEvent": {
"value": {
"offset": 88255,
"nodeId": 0,
"contractId": "00aaf5adf31cfb40ad7a58febf9c6fafd1e748e16ea7721f5ef7fe871316e159d7ca1212204b8f72a9fc769ef8b2576a59228ad0b82063d6093ef44adc396de184283c27dd",
"templateId": "cf9a9eea904a0e53c05f7fa88a3e6038850fa9e68b20ce9b904e50fa080c698b:PublishedSignedDataValues:PublishedSignedDataValues",
"interfaceId": null,
"choice": "ExtractDataFields",
"choiceArgument": {
"publishedDataId": "006084902a822faa45b6dc192745b5a37eda78674ef20cc3a7c359d34f346122a6ca1212205d4e937ca7772064d24ab743ae3a50c0006341dcf859f2018ead0a772f6357fb"
},
"actingParties": [
"PO1-DataProvider::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c"
],
"consuming": false,
"witnessParties": [
"PO1-DataProvider::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c"
],
"lastDescendantNodeId": 1,
"exerciseResult": {
"_1": "eth-usd",
"_2": "286934859756",
"_3": "8",
"_4": "1763657023776"
},
"packageName": "kaiko-pull-oracle-example",
"implementedInterfaces": [],
"acsDelta": false
}
}
}
},
"synchronizerId": "global-domain::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a",
"traceContext": {
"traceparent": "00-7eb2a8b9c4ce0358dfabfdef4d98a5d9-fda2f5120fa40f24-01",
"tracestate": null
},
"recordTime": "2025-11-21T10:18:03.913291Z"
}
}

FilledRequest contract
{
"@type": "DataRequest",
"name": "TreasuryRequestIBVAL",
"description": "Treasury Last IBVAL",
"universe": {
"@type": "Universe",
"contains": [
{
"@type": "Identifier",
"identifierType": "TICKER",
"identifierValue": "FRTR 3.5 11/25/2035 144A Govt"
}]
},
"fieldList": {
"@type": "DataFieldList",
"contains": [{"mnemonic": "PX_LAST"}]
},
"pricingSourceOptions": {
"@type": "DataPricingSourceOptions",
"prefer": { "mnemonic": "IBVL" },
"exclusive": true
},
"trigger": { "@type": "SubmitTrigger"},
"formatting": {
"@type": "MediaType",
"outputMediaType": "application/json"
}
}
"{\"@type\":\"DataRequest\",\"name\":\"TreasuryRequestIBVAL\",\"description\":\"TreasuryLastIBVAL\",\"universe\":{\"@type\":\"Universe\",\"contains\":[{\"@type\": \"Identifier\",\"identifierType\": \"TICKER\",\"identifierValue\": \"FRTR 3.5 11/25/2035 144A Govt\"}]},\"fieldList\":{\"@type\":\"DataFieldList\", \"contains\":[{\"mnemonic\":\"PX_LAST\"}]},\"pricingSourceOptions\":{\"@type\":\"DataPricingSourceOptions\",\"prefer\":{\"mnemonic\":\"IBVL\"},\"exclusive\":true},\"trigger\":{\"@type\":\"SubmitTrigger\"},\"formatting\":{\"@type\":\"MediaType\",\"outputMediaType\": \"application/json\"}}"
POST {PARTICIPANT_NODE_JSON_API_URL}/v2/commands/submit-and-wait-for-transaction-tree
Authorization: Bearer {CANTON_TOKEN}
Content-Type: application/json{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "create-request-1",
"commands": [
{
"actAs": [
"{YOUR_CONSUMER_PARTY}"
],
"commandId": "create-request-1",
"ExerciseCommand": {
"contractId": "{REQUEST_FACTORY_CONTRACT_ID}",
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.RequestFactory:RequestFactory",
"choice": "CreateRequest",
"choiceArgument": {
"dso": "{DSO_PARTY}",
"amuletRulesCid": "{AMULET_RULES_CONTRACT_ID}",
"openRoundCid": "{OPEN_ROUND_CONTRACT_ID}",
"inputs": [
{
"tag": "InputAmulet",
"value": "{YOUR_AMULET_CONTRACT_ID}"
}
],
"catalog": "{CATALOG_ID}",
"clientId": "{CLIENT_ID}",
"clientSecret": "{CLIENT_SECRET}",
"dataRequest": "{STRINGIFIED_BLOOMBERG_DATA_REQUEST}",
"lockedAmount": {PAYMENT_LOCKED_AMOUNT}
}
}
}
],
"disclosedContracts": [
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.AmuletRules:AmuletRules",
"contractId": "{AMULET_RULES_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{AMULET_RULES_DISCLOSED_BLOB}"
},
{
"templateId": "{AMULET_PACKAGE_ID}:Splice.Round:OpenMiningRound",
"contractId": "{OPEN_ROUND_CONTRACT_ID}",
"synchronizerId": "{GLOBAL_DOMAIN_SYNCHRONIZER_ID}",
"createdEventBlob": "{OPEN_ROUND_DISCLOSED_BLOB}"
}
]
}
{
"transferResult": {
"round": {
"number": "29450"
},
"summary": {
"inputAppRewardAmount": "0.0000000000",
"inputValidatorRewardAmount": "0.0000000000",
"inputSvRewardAmount": "0.0000000000",
"inputAmuletAmount": "267332873.0096101736",
"balanceChanges": [
[
"kaiko-devnet-1::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c",
{
"changeToInitialAmountAsOfRoundZero": "3.4415328900",
"changeToHoldingFeesRate": "0.0001168602"
}
]
],
"holdingFees": "0.0000000000",
"outputFees": [
"0.0000000000"
],
"senderChangeFee": "0.0000000000",
"senderChangeAmount": "267332868.0096101736",
"amuletPrice": "0.1628090000",
"inputValidatorFaucetAmount": "0.0000000000",
"inputUnclaimedActivityRecordAmount": "0.0000000000"
},
"createdAmulets": [
{
"tag": "TransferResultLockedAmulet",
"value": "00ed9e1b4151e1ef755c6299e13daaaf9a4db647e276d531450458afa8379e5a62ca121220ae6ee4724b56f56318093df7cb1eee5e6d8caa35d3ad37ce0b914b02eb86ddff"
}
],
"senderChangeAmulet": "00dfd2b1bcc153d42ee241a2ac6c524bcc2c5ae5ee0894b918b3bb302b6fc9a173ca1212204132fe27f6d8f1c0531d0ad0bdf80a36828fcf3598baceef12d4b9696da7ebc8",
"meta": {
"values": {
"splice.lfdecentralizedtrust.org/sender": "kaiko-devnet-1::12200fd571073e933e107afec72902c1a59f4f0ec3be8ef4ada5231c9d3f6d93de2c",
"splice.lfdecentralizedtrust.org/tx-kind": "transfer"
}
}
},
"requestCid": "00ac8fef95efed0583d531ac51ca1eeb2881d1c31f87b31e3ff321eb5441d619e3ca1212206c3d1b48abb01cb7ce28af486debeb9739ec6e8668fec4b19af6255e610fccbb",
"oracleResponse": "Request created for: ..... (escrowed 5.0 Amulet until 2026-02-04T15:05:03.617409Z)",
"lockedAmount": "5.0000000000",
"requestId": "babc4f56d892"
}{
"oracle": "{ORACLE_PARTY}",
"consumer": "{CONSUMER_PARTY}",
"requestData": "{stringified json request data}",
"responseData": "{stringified json response data}",
"serviceAmountCharged": "1.0000000000"
}POST {PARTICIPANT_NODE_JSON_API_URL}/v2/state/active-contracts
Authorization: Bearer {CANTON_TOKEN}
Content-Type: application/json{
"activeAtOffset": {offset},
"verbose": false,
"eventFormat": {
"filtersByParty": {
"{YOUR_CONSUMER_PARTY}": {
"cumulative": [
{
"identifierFilter": {
"TemplateFilter": {
"value": {
"includeCreatedEventBlob": false,
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.Request:FilledRequest"
}
}
}
}
]
}
},
"verbose": false
}
}[
{
"workflowId": "",
"contractEntry": {
"JsActiveContract": {
"createdEvent": {
"offset": 627962,
"nodeId": 1,
"contractId": "{FILLED_REQUEST_CONTRACT_ID}",
"templateId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1:Request-ResponseOracle.Request:FilledRequest",
"contractKey": null,
"createArgument": {
"oracle": "{ORACLE_PARTY}",
"consumer": "{YOUR_CONSUMER_PARTY}",
"requestId": "babc4f56d892",
"requestData": "{stringified json request data}",
"responseData": "{stringified json response data}",
"serviceAmountCharged": "1.0000000000"
},
"createdEventBlob": "",
"interfaceViews": [],
"witnessParties": [
"{ORACLE_PARTY}"
],
"signatories": [
"{ORACLE_PARTY}"
],
"observers": [
"{YOUR_CONSUMER_PARTY}"
],
"createdAt": "2026-01-23T14:56:45.708037Z",
"packageName": "Request-Response-oracle",
"representativePackageId": "3778b498a5b2703be4ab088451b13d3688a81e421c4332cd5e4a0cfa4bd245f1",
"acsDelta": true
},
"synchronizerId": "global-domain::1220...",
"reassignmentCounter": 0
}
}
}
]