Confidential Wholesale CBDC Chaincode Package
Oracle Blockchain Platform Digital Assets Edition includes sample chaincode for the confidential version of the wholesale central bank digital currency (CBDC) scenario.
The wholesale CBDC confidential chaincode package implements methods for the same scenario as the original wholesale CBDC chaincode package, with the addition of the confidential payments feature. The chaincode uses the extended Token Taxonomy Framework standard, enhanced to work with confidential payments and customized for the wholesale CBDC scenario. Tokens that represent fiat currency are held at financial institutions and are issued and managed by regulated financial institutions. You can use Blockchain App Builder to generate this chaincode from the WholesaleCBDC-Confidential.yml
specification file in TypeScript.
WholesaleCBDC-Confidential.zip
, an archive file that contains the packaged chaincode for deployment.WholesaleCBDC-Confidential.yml
, a specification file that you can use with Blockchain App Builder to scaffold theWholesaleCBDC Confidential
chaincode.WholesaleCBDC-Confidential_postman_collection.json
, a Postman collection that enables you to test the APIs in the chaincode.README.md
, a step-by-step guide for working with the chaincode.
To get the wholesale CBDC chaincode package, in the Oracle Blockchain Platform Digital Assets console click the Digital Assets tab and then select Wholesale CBDC - Confidential Application.
Specification File
The confidential wholesale CBDC specification file (WholesaleCBDC-Confidential.yml
) is based on the extended Token Taxonomy Framework specification file. It includes a model
attribute, which generates the application-specific chaincode. In this case, model: wcbdc
creates additional methods for the wholesale CBDC application when the chaincode is generated. It also includes a confidential
attribute, set to true
, which generates the chaincode in confidential mode. The following specification file shows the confidential
and model
attributes, as well as the required behaviors.
Note:
Confidential mode chaincode uses Pedersen commitments, which can commit only integer values. Internally, input values are multiplied by an exponent of 10, based on the decimal value in the specification file, and the result is stored as an integer. To prevent inconsistent calculations when using the chaincode package, do not modify thedecimal
line in the specification file and then synchronize the chaincode.
#
# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
#
confidential: true # Privacy-preserving feature to enable transaction-level confidentiality
assets:
# Token asset to manage the complete life cycle of Wholesale CBDC token.
- name: CBDC # Asset name
type: token # Asset type
standard: ttf+ # Token standard
events: true # Supports event code generation for non-GET methods
model: wcbdc # Supports creation of additional methods for Wholesale CBDC application
anatomy:
type: fungible # Token type
unit: fractional # Token unit
behavior: # Token behaviors
- divisible:
decimal: 2
- mintable:
mint_approval_required: true
- transferable
- burnable:
burn_approval_required: true
- holdable
- roles:
minter_role_name: minter
burner_role_name: burner
notary_role_name: notary
mint_approver_role_name: notary
burn_approver_role_name: notary
properties: # Custom asset attributes for wholesale CBDC token
- name: Currency_Name # The digital form of the national currency issued by a central bank for wholesale transactions between financial institutions
type: string
mandatory: true
customMethods: