Package de code chaîne Bond Marketplace

Oracle Blockchain Platform Digital Assets Edition inclut un exemple de code chaîne pour le scénario de marché NFT d'obligation.

Le code chaîne du marché obligataire prend en charge la gestion et la négociation d'obligations, représentées par des jetons non fongibles (NFT). Vous pouvez utiliser des méthodes de code chaîne pour émettre, acheter, échanger des NFT d'obligations dans un environnement décentralisé.

Le package de code chaîne du marché des obligations est téléchargeable à partir de la console Oracle Blockchain Platform et inclut les composants suivants.
  • BondMarketplace.zip, fichier d'archive qui contient le code chaîne packagé pour le déploiement.
  • BondMarketplace.yaml, un fichier de spécification que vous pouvez utiliser avec Blockchain App Builder pour échafauder le code chaîne WholesaleCBDC.
  • BondMarketplace_postman_collection.json, une collection Postman qui vous permet de tester les API dans le code chaîne.
  • README.md, guide détaillé pour l'utilisation du code chaîne.

Pour obtenir le package de code chaîne du marché des obligations, dans la console des ressources numériques Oracle Blockchain Platform, cliquez sur l'onglet Ressources numériques, puis sélectionnez Application Bond Marketplace.

Fichier de spécifications

Le fichier de spécification du marché obligataire (Bond_Marketplace.yml) est basé sur le fichier de spécification étendu ERC-1155. Il inclut un attribut model, qui génère le code chaîne propre à l'application. Dans ce cas, model: bond crée des méthodes supplémentaires pour l'application de marché d'obligations lorsque le code chaîne est généré. En outre, des paramètres spécifiques doivent être définis dans la section des métadonnées du fichier.
#
# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
#
 
# Token asset to manage the complete lifecycle of a Bond in a primary Bond marketplace.  

assets:
    - name: Bond #Asset name
      type: token #Asset type
      standard: erc1155+   # Token standard
      events: true # Supports event code generation for non-GET methods
      model: bond # Supports creation of additional methods for Primary Bond marketplace
      
      anatomy:
          type: nonfungible # Token type
          unit: fractional  #Token unit
      
      behavior: # Bond token behaviors
        - divisible:                                  
        - mintable:                   
        - transferable
        - burnable                
        - roles:
            minter_role_name: minter
            burner_role_name: burner
      
      properties:  # Custom asset attributes for non-fungible Bond token.

          - name: status # Custom asset attribute maintains the status of the Bond.
            type: string
            mandatory: true
               
            
      metadata: # To maintain the metadata on-chain, this tag will be used. Users won't be able to update the metadata attribute values after the bond token is minted.
          
          - name: ISIN # A unique alphanumeric code that identifies a specific bond internationally.
            type: string
            mandatory: true
 
          - name: Segment # The classification of bonds based on issuer type or purpose, such as corporate, government, sovereign, or green bonds.
            type: string
 
          - name: Issuer # The entity, such as a corporation or government, that issues the bond.
            type: string
            mandatory: true
          
          - name: FaceValue # The principal amount of the bond that will be repaid at maturity.
            type: number
            mandatory: true

          - name: IssueSize # The total monetary value or quantity of bonds issued by the issuer.
            type: number
            mandatory: true

          - name: CouponRate # The annual interest rate that the bond pays, typically as a percentage of the face value.
            type: float 
            mandatory: true 

          - name: InterestPaymentType # Specifies whether the bond pays simple or compound interest.
            type: string
            mandatory: true
            validate: /^\\s*(simple)\\s*$/

          - name: InterestFrequency # The regularity with which interest payments are made, such as monthly, quarterly, annually or at maturity.
            type: string
            mandatory: true
            validate: /^\s*["]?((monthly|quarterly|annually|at maturity)\s*)["]?\s*$/

          - name: IssueDate # The date when the bond was initially issued.
            type: date
            mandatory: true 

          - name: MaturityDate # The date on which the bond’s principal amount will be repaid to the bondholder.
            type: date
            mandatory: true    
 
customMethods:

Tableau 4-1 Paramètres de métadonnées pour le fichier de spécification Bond Marketplace

Entrée Description
name: ISIN

Chaîne qui est un code alphanumérique unique à 12 caractères identifiant une liaison.

name: Segment

Chaîne représentant le type de segment de la liaison.

name: Issuer

Chaîne représentant l'émetteur de l'obligation.

name: FaceValue

Nombre qui représente la valeur nominale (prix) du jeton de liaison.

name: IssueSize

Nombre représentant la taille d'émission (quantité totale) de l'obligation.

name: CouponRate Nombre qui représente le taux de coupon (taux d'intérêt) de l'obligation. Il doit s'agir d'un taux annuel.
name: InterestPaymentType Chaîne représentant le type de paiement des intérêts. La seule valeur prise en charge est simple.
name: InterestFrequency Chaîne représentant la fréquence d'intérêt du jeton de liaison. La liste suivante présente les valeurs prises en charge.
  • monthly
  • quarterly
  • annually
  • at maturity
name: IssueDate Date qui représente la date d'émission de l'obligation.
name: MaturityDate Date qui représente la date d'échéance de l'obligation.