Bond Marketplace Chaincode-Paket

Die Oracle Blockchain Platform Digital Assets Edition enthält Beispielkettencode für das NFT-Marktplatzszenario für Anleihen.

Der Bond Marketplace Chaincode unterstützt die Verwaltung und den Handel von Anleihen, die durch fraktionierte nicht fungible Token (NFTs) repräsentiert werden. Sie können Chaincode-Methoden verwenden, um NFTs in einer dezentralen Umgebung auszugeben, zu kaufen, einzulösen und zu handeln.

Das Chaincode-Paket für Bond Marketplace kann von der Oracle Blockchain Platform-Konsole heruntergeladen werden und umfasst die folgenden Komponenten.
  • BondMarketplace.zip, eine Archivdatei, die den in einem Package integrierten Chaincode für das Deployment enthält.
  • BondMarketplace.yaml, eine Spezifikationsdatei, die Sie mit Blockchain App Builder verwenden können, um den WholesaleCBDC-Kettencode zu erstellen.
  • BondMarketplace_postman_collection.json, eine Postman-Sammlung, mit der Sie die APIs im Chaincode testen können.
  • README.md, eine schrittweise Anleitung für die Arbeit mit dem Chaincode.

Um das Chaincode-Paket für Bond Marketplace abzurufen, klicken Sie in der Oracle Blockchain Platform Digital Assets-Konsole auf die Registerkarte Digitale Assets, und wählen Sie Bond Marketplace-Anwendung aus.

Spezifikationsdatei

Die Bond Marketplace-Spezifikationsdatei (Bond_Marketplace.yml) basiert auf der erweiterten ERC-1155-Spezifikationsdatei. Es enthält ein model-Attribut, das den anwendungsspezifischen Chaincode generiert. In diesem Fall erstellt model: bond zusätzliche Methoden für die Bond Marketplace-Anwendung, wenn der Chaincode generiert wird. Darüber hinaus müssen bestimmte Parameter im Metadatenabschnitt der Datei festgelegt werden.
#
# 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:

Tabelle 4-1: Metadatenparameter für die Bond Marketplace-Spezifikationsdatei

Eintrag Beschreibung
name: ISIN

Eine Zeichenfolge, bei der es sich um einen eindeutigen alphanumerischen Code mit 12 Zeichen handelt, der eine Bindung identifiziert.

name: Segment

Eine Zeichenfolge, die den Segmenttyp der Bindung darstellt.

name: Issuer

Eine Zeichenfolge, die den Emittenten der Anleihe darstellt.

name: FaceValue

Eine Zahl, die den Nennwert (Preis) des Bond-Tokens darstellt.

name: IssueSize

Eine Zahl, die für die Emissionsgröße (Gesamtmenge) der Anleihe steht.

name: CouponRate Eine Zahl, die den Kuponzinssatz (Zinssatz) der Anleihe darstellt. Es muss eine jährliche Rate sein.
name: InterestPaymentType Eine Zeichenfolge, die den Zinszahlungstyp darstellt. Der einzige unterstützte Wert ist simple.
name: InterestFrequency Eine Zeichenfolge, die das Zinsintervall des Bond-Tokens darstellt. Die folgende Liste zeigt die unterstützten Werte.
  • monthly
  • quarterly
  • annually
  • at maturity
name: IssueDate Ein Datum, das das Ausgabedatum der Anleihe darstellt.
name: MaturityDate Ein Datum, das das Fälligkeitsdatum der Anleihe darstellt.