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.
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 chaincodeWholesaleCBDC
.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.
|
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. |