Pacote de Chaincode de Estrutura de Token Não Fungível

O framework de token não fungível usa o padrão ERC-721 estendido que é suportado pelo Blockchain App Builder.

A amostra do NFT Art Collection Marketplace ilustra o uso do framework genérico de token não fungível, que é baseado no padrão ERC-721 estendido suportado pelo Blockchain App Builder. A amostra inclui um chaincode para representar um mercado para comprar e vender tokens não fungíveis (NFTs) associados a obras de arte. Nesta amostra, os museus podem cunhar (criar) NFTs para obras de arte na rede blockchain. Os consumidores podem então comprar e revender NFTs dos museus. O chaincode implementa os métodos necessários para gerenciar o ciclo de vida do token não fungível, incluindo inicialização de token, operações de conta, atribuições de função, cunhagem, transferências e gravação. Ele também fornece contas de notário para aprovar operações de cunhagem, transferência e queima, e suporta a conformidade através de limites diários e procedimentos de auditoria. A amostra do NFT Art Collection Marketplace foi projetada para o desenvolvimento de chaincode em TypeScript.

O pacote chaincode da estrutura de token não fungível pode ser baixado na console do Oracle Blockchain Platform e inclui os componentes a seguir.
  • NFTCollectiblesWithERC721.zip, um arquivo compactado que contém o chaincode empacotado para implantação.
  • NFTCollectiblesWithERC721-TypeScript.yaml, um arquivo de especificação que você pode usar com o Blockchain App Builder para organizar o chaincode NFTCollectiblesWithERC721.
  • NFTCollectiblesWithERC721_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 código de cadeia.

Para obter a estrutura de token fungível, na console do Oracle Blockchain Platform Digital Assets, clique na guia Ativos Digitais e selecione Estrutura de Token Não Fungível.

Para obter mais detalhes sobre o uso de coleções Postman, consulte os tópicos a seguir no Blockchain App Builder para Oracle Blockchain Platform.

Arquivo de Especificação

O arquivo de especificação usado para gerar o chaincode do marketplace de coleções de arte inclui o atributo events. A função de eventos chaincode suporta callbacks de eventos em chaincodes gerados para ativar notificações em tempo real e acionar workflows. Para obter mais informações sobre arquivos de especificação e os parâmetros usados em arquivos de especificação, consulte Arquivo de Especificação de Entrada para Tokens Não Fungíveis no Blockchain App Builder for Oracle Blockchain Platform.

O chaincode do mercado da coleção da arte é baseado no padrão estendido ERC-721, como mostrado no arquivo de especificação seguinte.
#
# Copyright (c) 2026, Oracle and/or its affiliates. All rights reserved.
#
 
# This specification file is an example how to build any whole non-fungible token application.
# For a whole non-fungible token application, art collection marketplace has been used as an example.
# Art collection marketplace is a digital marketplace that uses NFTs to enable the buying, selling, and showcasing of unique art pieces, providing secure ownership, provenance tracking, and exclusive rights for artists and collectors.
 
assets:
    - name: ArtCollection #Asset name
      type: token #Asset type
      symbol: ART         # Token symbol
      standard: erc721+   # Token standard
      events: true # Supports event code generation for non-GET methods
 
      anatomy:
          type: nonfungible # Token type
          unit: whole  #Token unit
       
      behavior:
        - indivisible
        - singleton                               
        - mintable:                  
            max_mint_quantity: 20000
        - transferable               
        - lockable
        - roles:
            minter_role_name: minter
       
      properties:  # Custom asset attributes for non-fungible token
           
          - name: Price # Custom asset attribute to set the price of a non-fungible token in the marketplace
            type: float
           
          - name: On_Sale_Flag # Custom asset attribute to maintain non-fungible token selling status in the marketplace
            type: boolean
       
      metadata: # To maintain the metadata on-chain, this tag will be used. Users won't be able to update the metadata attribute values after an NFT is minted.
           
          - name: Painting_Name # Custom asset attribute to represent the title given to a piece of artwork.
            type: string
           
          - name: Description # Custom asset attribute to represent a detailed explanation or interpretation of the painting's concept, style, or message.
            type: string
           
          - name: Painter_Name # Custom asset attribute to represent the name of the artist who created the painting.
            type: string
 
customMethods:
    - executeQuery
    - "post(token_id: string, selling_price: number)" # Post the non-fungible token for selling in the marketplace.
    - "buy(from_org_id: string, from_user_id: string, to_org_id: string, to_user_id: string, nonfungible_token_id: string, amount_paid: number)"  # Buy the non-fungible token after paying the amount using any payment gateways.

Detalhes do Endossador em Métodos de Chaincode

A Edição de Ativos Digitais do Oracle Blockchain Platform adiciona um parâmetro de endosso ao payload de solicitação para todos os métodos setter. O valor do parâmetro é endorsers ou sameOrgEndorser. Se o parâmetro sameOrgEndorser for verdadeiro, os endossos da transação deverão ser da mesma organização que o solicitante. O parâmetro endorsers especifica uma lista de pares que devem endossar a transação. Para obter mais informações, consulte Suporte de Endosso em Coleções Postman no Blockchain App Builder para Oracle Blockchain Platform. A tabela a seguir mostra o tipo de endossador para cada método.

Método Tipo de Endossador
activateAccount endorsers
addTokenAdmin sameOrgEndorser
addRole endorsers
addTokenSysRole endorsers
balanceOf endorsers
buy endorsers
createAccount endorsers
createArtCollectionToken sameOrgEndorser
deleteAccount endorsers
getAccountByUser endorsers
getAccountHistory endorsers
getAccountsByRole endorsers
getAccountsByTokenSysRole endorsers
getAccountStatus endorsers
getAccountStatusHistory endorsers
getAccountTransactionHistory endorsers
getAccountTransactionHistoryWithFilters endorsers
getAllAccounts endorsers
getAllLockedNFTs endorsers
getAllTokenAdmins endorsers
getAllTokens endorsers
getAllTokensByUser endorsers
getLockedNFTsByOrg endorsers
getTokenById endorsers
getTokenHistory endorsers
getTransactionById endorsers
getUserByAccountId endorsers
getUsersByRole endorsers
getUsersByTokenSysRole endorsers
init endorsers
isInRole endorsers
isInTokenSysRole endorsers
isNFTLocked endorsers
isTokenAdmin endorsers
lockNFT sameOrgEndorser
name endorsers
ownerOf endorsers
post endorsers
removeRole endorsers
removeTokenAdmin sameOrgEndorser
removeTokenSysRole endorsers
safeTransferFrom endorsers
suspendAccount endorsers
symbol endorsers
tokenURI endorsers
totalNetSupply endorsers
totalSupply endorsers
transferFrom endorsers
transferTokenSysRole endorsers
updateArtCollectionToken sameOrgEndorser