Pacote de Chaincode do Mercado de Bond

A Edição de Ativos Digitais do Oracle Blockchain Platform inclui chaincode de amostra para o cenário de mercado NFT de títulos.

O chaincode do mercado de títulos suporta o gerenciamento e a negociação de títulos, representados por tokens não fungíveis fracionários (NFTs). Você pode usar métodos de chaincode para emitir, comprar, resgatar e negociar NFTs de títulos em um ambiente descentralizado.

O pacote de chaincode do marketplace de títulos pode ser baixado no console do Oracle Blockchain Platform e inclui os componentes a seguir.
  • BondMarketplace.zip, um arquivo compactado que contém o chaincode compactado para implantação.
  • BondMarketplace.yaml, um arquivo de especificação que você pode usar com o Blockchain App Builder para montar o chaincode WholesaleCBDC.
  • BondMarketplace_postman_collection.json, uma coleção Postman que permite testar as APIs no chaincode.
  • README.md, um guia passo a passo para trabalhar com o chaincode.

Para obter o pacote chaincode do marketplace de títulos, na console Ativos Digitais do Oracle Blockchain Platform, clique na guia Ativos Digitais e selecione Aplicativo de Mercado de Títulos.

Arquivo de Especificação

O arquivo de especificação do mercado de títulos (Bond_Marketplace.yml) é baseado no arquivo de especificação ERC-1155 estendido. Ele inclui um atributo model, que gera o chaincode específico do aplicativo. Nesse caso, model: bond cria métodos adicionais para o aplicativo de mercado de títulos quando o chaincode é gerado. Além disso, parâmetros específicos devem ser definidos na seção de metadados do arquivo.
#
# 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:

Tabela 4-1 Parâmetros de Metadados para o Arquivo de Especificação do Bond Marketplace

Entrada Descrição
name: ISIN

Uma string que é um código alfanumérico exclusivo de 12 caracteres que identifica um vínculo.

name: Segment

Uma string que representa o tipo de segmento do vínculo.

name: Issuer

Uma string que representa o emissor do título.

name: FaceValue

Um número que representa o valor nominal (preço) do token do título.

name: IssueSize

Um número que representa o tamanho da emissão (quantidade total) do título.

name: CouponRate Um número que representa a taxa de cupom (taxa de juros) do título. Deve ser uma taxa anual.
name: InterestPaymentType Uma string que representa o tipo de pagamento de juros. O único valor suportado é simple.
name: InterestFrequency Uma string que representa a frequência de juros do token do título. A lista a seguir mostra os valores suportados.
  • monthly
  • quarterly
  • annually
  • at maturity
name: IssueDate Uma data que representa a data de emissão do título.
name: MaturityDate Uma data que representa a data de vencimento do título.