Confidential Wholesale CBDC Model
The enhanced version of Blockchain App Builder includes model attributes that generate additional methods for a confidential version of the wholesale central bank digital currency (CBDC) scenario.
If you include the model: wcbdc
and the confidential: true
parameters in the specification file for tokens that use the extended Token Taxonomy Framework standard, Blockchain App Builder generates application-specific chaincode, including the following additional TypeScript methods and functionality for use with the confidential wholesale CBDC application. Additionally, the createAccount
methods are modified for the confidential wholesale CBDC model.
For information on configuring and installing the sample wholesale CBDC application (both the generic and the confidential versions), see: Oracle Database View Definitions for Wholesale CBDC and Wholesale CBDC Sample Application and Analytics Package.
TypeScript Methods for Confidential Wholesale CBDC
The confidential wholesale CBDC chaincode includes all methods that are available in the extended Token Taxonomy Framework chaincode. The following additional methods that are specific to the confidential wholesale CBDC scenario are available.-
createAccount
- This method creates an account for a specified user and token. An account must be created for any user who will have tokens at any point. This method can be called only by a
Token Admin
or by anOrg Admin
of the specified organization. @Validator(yup.string(), yup.string(), yup.string(), yup.array().of(yup.string()), yup.object().nullable()) public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], dailyLimits?: DailyLimits) { await this.Ctx.Auth.checkAuthorization("ACCOUNT.createAccount", "TOKEN", { org_id }); await this.Ctx.Model.createEvent(EVENT_NAME.CREATE_ACCOUNT, { org_id, user_id, token_type, application_groups, dailyLimits }); return await this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, dailyLimits); }
- Parameters:
org_id
– The membership service provider (MSP) ID of the user to create the account for. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).user_id
– The user name or email ID of the user. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).token_type: string
– The type of token, which must befungible
.application_groups: string[]
– A list of application groups that the user ID belongs to, which define the user's associations in the CBDC application.daily_limits: DailyLimits
– A JSON object of the following type.
In the example, the{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
value is the maximum amount of tokens that can be transacted daily andmax_daily_transactions
value is the maximum number of transactions that can be completed daily.
- Return Value Example:
{ "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a", "org_id": "CentralBank", "token_type": "fungible", "token_id": "", "token_name": "", "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "application_groups": [ "CENTRAL_BANK_USERS" ] }
-
setApplicationGroups
- This method sets the
application_groups
parameter in the account details for the specified application groups in the API. This method can be called only by aToken Admin
orOrg Admin
of the specified organization. @Validator(yup.string(), yup.array().of(yup.string())) public async setApplicationGroups (account_id: string, application_groups: string[]) { const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id); await this.Ctx.Auth.checkAuthorization('CBDC_TOKEN.setApplicationGroups', 'TOKEN', { org_id: account.org_id }); const token_asset = await this.getTokenObject(account.token_id); await this.Ctx.Model.createEvent(EVENT_NAME.SET_APPLICATION_GROUPS, { account_id, application_groups }, token_asset); return this.Ctx.Account.setApplicationGroups (account_id, application_groups) }
- Parameters:
account_id: string
– The unique ID of the token account.application_groups: string[]
– A list of application groups the account ID belongs to, which define the user's associations in the CBDC application.
- Return Value Example:
{ "bapAccountVersion": 10, "assetType": "oaccount", "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e", "onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f", "onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f", "application_groups": [ "SYSTEM_RETIRERS" ] }
-
getBurnQuantity
- This method returns the total quantity of burned tokens for a specified organization. This method can be called only by a
Token Admin
,Token Auditor
, or a user with the burner role. @GetMethod() @Validator(yup.string()) public async getBurnQuantity(token_id: string) { return await this.Ctx.CBDCToken.getBurnQuantity(token_id); }
- Parameters:
token_id: string
– The ID of the token.
- Return Value Example:
{ "burnt_quantity": 1200 }
-
getActionHistory
- This method retrieves the history of approvals or rejections made by the caller for mint, burn, and transfer (issuance) operations, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary).
@GetMethod() @Validator(yup.string()) public async getActionHistory(token_id: string) { return await this.Ctx.CBDCToken.getActionHistory(token_id); }
- Parameters:
token_id: string
– The ID of the token.
- Return Value Example:
[ { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~b770", "holding_status": "APPROVE_BURN", "last_updated_time": "2025-08-25T13:21:24.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": null, "to_org_id": null, "token_name": null, "quantity": 200 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~e7b6", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-25T13:20:50.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~81d7c4ac", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-25T13:16:55.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_name": null, "quantity": 200 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~1e19", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-13T06:12:41.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 10000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~1f74", "holding_status": "REJECT_BURN", "last_updated_time": "2025-08-12T21:09:53.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~d67c", "holding_status": "REJECT_BURN", "last_updated_time": "2025-08-12T21:09:47.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "token_name": null, "quantity": 2000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~911b", "holding_status": "APPROVE_BURN", "last_updated_time": "2025-08-12T21:09:40.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": null, "to_org_id": null, "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~ed815e20", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-12T21:09:25.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709", "to_org_id": "org2", "token_name": null, "quantity": 10000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~12d87129", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-12T21:09:17.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_name": null, "quantity": 10000 }, { "from_account_id": "", "from_org_id": null, "holding_id": "ohold~cbdc~USD~54a4", "holding_status": "REJECT_MINT", "last_updated_time": "2025-08-12T21:01:27.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 40000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~9b27", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:16.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 30000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~eda0", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:05.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 20000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~1baa", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:03.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 10000 } ]
-
getPendingIssuance
- This method retrieves all pending issuance (transfer) transactions where the caller is assigned as an approver, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary). This method can be called only by a
Token Admin
orToken Auditor
of the chaincode, anOrg Admin
orOrg Auditor
of the specified organization, or theNotary
. @GetMethod() @Validator(yup.string(), yup.string()) public async getPendingIssuance(token_id: string, org_id: string) { return await this.Ctx.CBDCToken.getPendingIssuance(token_id, org_id); }
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the pending transfers for.
- Return Value Example:
[ { "asset_type": "ONHOLD", "category": "issuance", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~77b75873", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": "77b75873", "timetoexpiration": "0", "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709", "to_org_id": "org2", "token_id": "USD", "token_name": "cbdc", "quantity": 200 }, { "asset_type": "ONHOLD", "category": "transfer", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~e26f11da", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": "e26f11da", "timetoexpiration": "0", "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_id": "USD", "token_name": "cbdc", "quantity": 100 } ]
-
getPendingRequest
- This method retrieves all pending requests of a specified type where the caller is assigned as an approver. This method can be called only by a
Token Admin
orToken Auditor
of the chaincode, anOrg Admin
orOrg Auditor
of the specified organization, or theNotary
. @GetMethod() @Validator(yup.string(), yup.string(), yup.string()) public async getPendingRequest(token_id: string, request_type: string, org_id: string) { return await this.Ctx.CBDCToken.getPendingRequest(token_id, request_type, org_id); }
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the pending requests for.request_type: string
– The transaction type. For example,mint
orburn
.
- Return Value Example:
[ { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~89ce", "operation_id": "89ce", "token_name": "cbdc", "from_org_id": "CentralBank", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_account_id": "", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "token_id": "USD", "quantity": 2000, "time_to_expiration": "0", "description": "Minting 2000 tokens" } }, { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~cf73", "operation_id": "cf73", "token_name": "cbdc", "from_org_id": "CentralBank", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_account_id": "", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "token_id": "USD", "quantity": 200, "time_to_expiration": "0", "description": "Minting 200" } } ]
-
getTotalBalanceByCallerOrgId
- This method retrieves the total balance of the caller's organization. It can be called by a
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
, or any account owner. @GetMethod() @Validator() public async getTotalBalanceByCallerOrgId() { const org_id = await this.Ctx.Model.getCallerOrgId() await this.Ctx.Auth.checkAuthorization("CBDC_TOKEN.getTotalBalanceByCallerOrgId", "TOKEN", { org_id }); return await this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId(); }
- Return Value Example:
{ "totalBalance": 50500 }
-
getTransactionWithBlockNumber
- This method returns the details of the transaction for the specified transaction ID. This method can be called only by a
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
, or any participant of the transaction. @GetMethod() @Validator(yup.string(), yup.string()) public async getTransactionWithBlockNumber(token_id: string, transaction_id: string) { return await this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id); }
- Parameters:
token_id: string
– The ID of the token.transaction_id: string
– The ID of the transaction.
- Return Value Example:
[ { "blockNo": 340, "key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "assetType": "otransaction", "blockNo": 336, "txnNo": 1, "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c", "token_id": "USD", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_account_balance": 26800, "from_account_onhold_balance": 300, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "transaction_type": "EXECUTE_HOLD_SENDER", "amount": 200, "timestamp": "2025-08-25T13:16:55.000Z", "number_of_sub_transactions": 0, "holding_id": "ohold~cbdc~USD~81d7c4ac", "sub_transaction": "false", "category": "transfer", "global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912" } } ]
-
getAllActiveAccounts
- This method returns all of the active accounts that are associated with the specified token ID.
@GetMethod() @Validator(yup.string(), yup.string()) public async getAllActiveAccounts(orgId: string, tokenId: string) { return this.Ctx.CBDCToken.getAllActiveAccounts(orgId, tokenId); }
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the active accounts for.
- Returns:
- On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
- Return Value Example (Token Administrator, Token Auditor, Organization Administrator, Organization Auditor):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_admin" ] }, { "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "role_name": null, "valueJson": { "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_AUDITORS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_auditor" ] }, { "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "role_name": "minter", "valueJson": { "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_CREATORS" ], "max_daily_amount": "1000000", "max_daily_transactions": "100000" }, "non_account_role_name": [] }, { "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "role_name": "notary", "valueJson": { "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_MANAGERS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [] }, { "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "role_name": null, "valueJson": { "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ISSUERS" ], "max_daily_amount": "100000", "max_daily_transactions": "10000" }, "non_account_role_name": [] }, { "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "role_name": "burner", "valueJson": { "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_RETIRERS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [] } ]
- Return Value Example (all other users):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ] } }, { "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "role_name": null, "valueJson": { "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_AUDITORS" ] } }, { "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "role_name": "minter", "valueJson": { "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_CREATORS" ] } }, { "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "role_name": "notary", "valueJson": { "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_MANAGERS" ] } }, { "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "role_name": null, "valueJson": { "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ISSUERS" ] } }, { "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "role_name": "burner", "valueJson": { "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_RETIRERS" ] } } ]
-
getAllSuspendedAccounts
- This method returns all of the suspended accounts that are associated with the specified token ID.
@GetMethod() @Validator(yup.string(), yup.string()) public async getAllSuspendedAccounts(orgId: string, tokenId: string) { return this.Ctx.CBDCToken.getAllSuspendedAccounts(orgId, tokenId); }
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the suspended accounts for.
- Returns:
- On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
- Return Value Example (Token Administrator, Token Auditor, Organization Administrator, Organization Auditor):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_admin" ] } ]
- Return Value Example (all other users):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ] } } ]
TypeScript SDK Methods for Confidential Wholesale CBDC
The confidential wholesale CBDC chaincode includes all SDK methods available in the generic Token Taxonomy Framework NFT chaincode. The following additional SDK methods that are specific to the confidential wholesale CBDC scenario are available.
-
createAccount
- This method creates an account for a specified user and token. Every user who has tokens at any point must have an account.
Ctx.Account.createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], dailyLimits);
- Parameters:
org_id: string
– The membership service provider (MSP) ID of the user in the current organization. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).user_id: string
– The user name or email ID of the user. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).token_type: string
– The type of the token, which must befungible
.application_groups: string[]
– A list of application groups the account ID belongs to, which define the user's associations in the CBDC application.daily_limits: DailyLimits
– A JSON object of the following type.
In the example, the{ "max_daily_amount": 100000 "max_daily_transactions": 10000 }
max_daily_amount
value is the maximum amount of tokens that can be transacted daily andmax_daily_transactions
value is the maximum number of transactions that can be completed daily.
- Return Value Example:
{ "bapAccountVersion": 0, "assetType": "oaccount", "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a", "org_id": "CentralBank", "token_type": "fungible", "token_id": "", "token_name": "", "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6", "application_groups": [ "CENTRAL_BANK_USERS" ] }
-
setApplicationGroups
- This method sets the
application_groups
parameter in the account details for the specified application groups in the API. Ctx.Account.setApplicationGroups (account_id: string, application_groups: string[])
- Parameters:
account_id: string
– The unique ID of the token account.application_groups: string[]
– A list of application groups the account ID belongs to, which define the user's associations in the CBDC application.
- Return Value Example:
{ "bapAccountVersion": 10, "assetType": "oaccount", "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_type": "fungible", "token_id": "USD", "token_name": "cbdc", "balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e", "onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f", "onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f", "application_groups": [ "SYSTEM_RETIRERS" ] }
-
getBurnQuantity
- This method returns the total quantity of burned tokens for a specified organization.
Ctx.CBDCToken.getBurnQuantity(token_id: string);
- Parameters:
token_id: string
– The ID of the token.
- Return Value Example:
{ "burnt_quantity": 1200 }
-
getActionHistory
- This method retrieves the history of approvals or rejections made by the caller for mint, burn, and transfer (issuance) operations, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary).
Ctx.CBDCToken.getActionHistory(token_id: string);
- Parameters:
token_id: string
– The ID of the token.
- Return Value Example:
[ { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~b770", "holding_status": "APPROVE_BURN", "last_updated_time": "2025-08-25T13:21:24.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": null, "to_org_id": null, "token_name": null, "quantity": 200 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~e7b6", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-25T13:20:50.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~81d7c4ac", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-25T13:16:55.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_name": null, "quantity": 200 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~1e19", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-13T06:12:41.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 10000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~1f74", "holding_status": "REJECT_BURN", "last_updated_time": "2025-08-12T21:09:53.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~d67c", "holding_status": "REJECT_BURN", "last_updated_time": "2025-08-12T21:09:47.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "", "to_org_id": null, "token_name": null, "quantity": 2000 }, { "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~911b", "holding_status": "APPROVE_BURN", "last_updated_time": "2025-08-12T21:09:40.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": null, "to_org_id": null, "token_name": null, "quantity": 1000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~ed815e20", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-12T21:09:25.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709", "to_org_id": "org2", "token_name": null, "quantity": 10000 }, { "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~12d87129", "holding_status": "EXECUTEHOLD", "last_updated_time": "2025-08-12T21:09:17.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_name": null, "quantity": 10000 }, { "from_account_id": "", "from_org_id": null, "holding_id": "ohold~cbdc~USD~54a4", "holding_status": "REJECT_MINT", "last_updated_time": "2025-08-12T21:01:27.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 40000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~9b27", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:16.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 30000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~eda0", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:05.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 20000 }, { "from_account_id": null, "from_org_id": null, "holding_id": "ohold~cbdc~USD~1baa", "holding_status": "APPROVE_MINT", "last_updated_time": "2025-08-12T21:01:03.000Z", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": null, "timetoexpiration": null, "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_org_id": "CentralBank", "token_name": null, "quantity": 10000 } ]
-
getPendingIssuance
- This method retrieves all pending issuance (transfer) transactions where the caller is assigned as an approver, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary).
Ctx.CBDCToken.getPendingIssuance(token_id: string, org_id: string);
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the pending transfers for.
- Return Value Example:
[ { "asset_type": "ONHOLD", "category": "issuance", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~77b75873", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": "77b75873", "timetoexpiration": "0", "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709", "to_org_id": "org2", "token_id": "USD", "token_name": "cbdc", "quantity": 200 }, { "asset_type": "ONHOLD", "category": "transfer", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_org_id": "CentralBank", "holding_id": "ohold~cbdc~USD~e26f11da", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "notary_org_id": "CentralBank", "operation_id": "e26f11da", "timetoexpiration": "0", "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "to_org_id": "Org1", "token_id": "USD", "token_name": "cbdc", "quantity": 100 } ]
-
getPendingRequest
- This method retrieves all pending requests of a specified type where the caller is assigned as an approver.
Ctx.CBDCToken.getPendingRequest(token_id: string, request_type: string, org_id: string)
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the pending requests for.request_type: string
– The transaction type. For example,mint
orburn
.
- Return Value Example:
[ { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~89ce", "operation_id": "89ce", "token_name": "cbdc", "from_org_id": "CentralBank", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_account_id": "", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "token_id": "USD", "quantity": 2000, "time_to_expiration": "0", "description": "Minting 2000 tokens" } }, { "valueJson": { "assetType": "ohold", "holding_id": "ohold~cbdc~USD~cf73", "operation_id": "cf73", "token_name": "cbdc", "from_org_id": "CentralBank", "operation_type": "mint", "status": "pending", "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "to_account_id": "", "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "token_id": "USD", "quantity": 200, "time_to_expiration": "0", "description": "Minting 200" } } ]
-
getTotalBalanceByCallerOrgId
- This method retrieves the total balance of the caller's organization.
Ctx.CBDCToken.getTotalBalanceByCallerOrgId();
- Return Value Example:
{ "totalBalance": 50500 }
-
getTransactionWithBlockNumber
- This method returns the details of the transaction for the specified transaction ID.
Ctx.CBDCToken.getTransactionWithBlockNumber(token_id: string, transaction_id: string);
- Parameters:
token_id: string
– The ID of the token.transaction_id: string
– The ID of the transaction.
- Return Value Example:
[ { "blockNo": 340, "key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c", "metadata": null, "txnNo": 0, "value": null, "valueJson": { "assetType": "otransaction", "blockNo": 336, "txnNo": 1, "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c", "token_id": "USD", "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "from_account_balance": 26800, "from_account_onhold_balance": 300, "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3", "transaction_type": "EXECUTE_HOLD_SENDER", "amount": 200, "timestamp": "2025-08-25T13:16:55.000Z", "number_of_sub_transactions": 0, "holding_id": "ohold~cbdc~USD~81d7c4ac", "sub_transaction": "false", "category": "transfer", "global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912" } } ]
-
getAllActiveAccounts
- This method returns all of the active accounts that are associated with the specified token ID.
Ctx.CBDCToken.getAllActiveAccounts(orgId: string, tokenId: string);
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the active accounts for.
- Returns:
- On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
- Return Value Example (Token Administrator, Token Auditor, Organization Administrator, Organization Auditor):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_admin" ] }, { "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "role_name": null, "valueJson": { "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_AUDITORS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_auditor" ] }, { "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "role_name": "minter", "valueJson": { "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_CREATORS" ], "max_daily_amount": "1000000", "max_daily_transactions": "100000" }, "non_account_role_name": [] }, { "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "role_name": "notary", "valueJson": { "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_MANAGERS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [] }, { "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "role_name": null, "valueJson": { "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ISSUERS" ], "max_daily_amount": "100000", "max_daily_transactions": "10000" }, "non_account_role_name": [] }, { "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "role_name": "burner", "valueJson": { "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_RETIRERS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [] } ]
- Return Value Example (all other users):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ] } }, { "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "role_name": null, "valueJson": { "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_AUDITORS" ] } }, { "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "role_name": "minter", "valueJson": { "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_CREATORS" ] } }, { "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "role_name": "notary", "valueJson": { "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_MANAGERS" ] } }, { "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "role_name": null, "valueJson": { "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ISSUERS" ] } }, { "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "role_name": "burner", "valueJson": { "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_RETIRERS" ] } } ]
-
getAllSuspendedAccounts
- This method returns all of the suspended accounts that are associated with the specified token ID.
Ctx.CBDCToken.getAllSuspendedAccounts(orgId: string, tokenId: string);
- Parameters:
token_id: string
– The ID of the token.org_id: string
– The membership service provider (MSP) ID of the organization to get the suspended accounts for.
- Returns:
- On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
- Return Value Example (Token Administrator, Token Auditor, Organization Administrator, Organization Auditor):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ], "max_daily_amount": "10000", "max_daily_transactions": "1000" }, "non_account_role_name": [ "token_admin" ] } ]
- Return Value Example (all other users):
[ { "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "role_name": null, "valueJson": { "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61", "org_id": "CentralBank", "token_id": "USD", "application_groups": [ "SYSTEM_ADMINS" ] } } ]