Bond Marketplace Application Workflow

In this scenario, fractional non-fungible tokens (NFTs) represent bonds issued by financial institutions.

The bond marketplace scenario supports bond issuance, investor purchase by using wholesale central bank digital currency (CBDC), periodic interest distribution, and bond redemption at maturity.

The following table summarizes the actors in this scenario.
Actor Role Description
Administrator Token Admin Initializes the system,creates users in identity services, creates NFT accounts, assigns the minter role.
Issuer (Financial Institution Officer) Minter Issues bonds as fractional NFTs, reviews details of issued bonds, pays periodic interest, approves bond redemption requests.
Purchaser (Investor) none Buys bonds by using wholesale CBDC, checks their bond wallet balance, requests bond redemption, verifies redemption status.
The administrator completes the following steps to initialize the system.
  1. Register organizations by using the registerOrg API.
  2. Create Oracle Identity Cloud Service (IDCS) users and assigns them to groups by using the createIDCSUser API.
  3. Create accounts by using the createAccountWithEnrollment API.
  4. Assign the minter role to the financial institution officers by using the addRole API.
After the system is initialized, a typical process flow follows these basic steps.
  1. Issue a bond.
    1. Financial institution officers (bond issuers) use the createBondToken API to issue bonds as fractional NFTs available for purchase.
    2. Financial institution officers use the getTokenById API to review and confirm the details of issued bonds.
  2. Purchase a bond.
    1. Bond purchasers use the purchaseBondToken API to buy the fractional NFT bond and to make a payment using the wholesale CBDC chaincode.
    2. Purchasers use the balanceOfBatch API to verify the receipt of the bond in their wallet.
    3. Purchasers use the getAccountBalance API (wholesale CBDC chaincode) to confirm the transfer in their wholesale CBDC wallet.
  3. Pay periodic interest.
    1. Bond issuers use the payInterest API to pay periodic interest, which is distributed to bondholders by using the wholesale CBDC chaincode.
    2. Purchasers use the getAccountBalance API (wholesale CBDC chaincode) to verify the interest payment.
  4. Redeem bonds at maturity.
    1. Purchasers use the requestBondRedemption API to submit a request to redeem their bond after it has matured.
    2. Financial institution officers use the approveBondRedemption API to approve the redemption request and to transfer wholesale CBDC funds to the bond holder.
    3. The bond holder uses the balanceOfBatch API (bond marketplace chaincode) and getAccountBalanceBond API (wholesale CBDC chaincode) to verify that the bond was redeemed and that they received funds in their wholesale CBDC wallet.