Bond Marketplace-Chaincode-Paket

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

Der Anleihemarkt-Chaincode unterstützt die Verwaltung und den Handel von Anleihen, repräsentiert durch fraktionierte nicht fungible Token (NFTs). 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-Chaincode zu erstellen.
  • BondMarketplace_postman_collection.json, eine Postman-Collection, mit der Sie die APIs im Chaincode testen können.
  • README.md, eine Schritt-für-Schritt-Anleitung zum Arbeiten mit dem Chaincode.

Um das Chaincode-Package 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 Anleihemarkt-Spezifikationsdatei (Bond_Marketplace.yml) basiert auf der erweiterten ERC-1155-Spezifikationsdatei. Sie enthält ein Attribut model, 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) 2026, 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 5-1: Metadatenparameter für die Bond Marketplace-Spezifikationsdatei

Eintrag Beschreibung
name: ISIN

Eine Zeichenfolge, die ein eindeutiger alphanumerischer Code mit 12 Zeichen ist, 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 Bondtokens darstellt.

name: IssueSize

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

name: CouponRate Eine Zahl, die den Kuponsatz (Zinssatz) der Anleihe darstellt. Es muss eine Rate pro Jahr sein.
name: InterestPaymentType Ein String, der den Zinszahlungstyp darstellt. Der einzige unterstützte Wert ist simple.
name: InterestFrequency Eine Zeichenfolge, die für die Zinshäufigkeit des Bindungstokens steht. Die folgende Liste zeigt die unterstützten Werte.
  • monthly
  • quarterly
  • annually
  • at maturity
name: IssueDate Ein Datum, das das Emissionstermin der Anleihe darstellt.
name: MaturityDate Ein Datum, das das Fälligkeitsdatum der Anleihe darstellt.