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.

The wholesale CBDC chaincode package is downloadable from the Oracle Blockchain Platform console, and includes the following components.
  • 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 the WholesaleCBDC 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 the decimal 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: