Protokol
  • Introduction To Digital Assets
  • Tutorials
    • How To Create Digital Assets
    • How To Trade Digital Assets
  • ARK CORE MODULES
    • NFT
      • Development
      • Complementary Examples
        • Base
        • Exchange
      • API Endpoints
        • Assets
        • Burns
        • Collections
        • Transfers
        • Base Configurations
        • Auctions
        • Bids
        • Trades
        • Exchange Configurations
    • Guardian
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Groups
        • Users
    • Nameservice
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Nameservice
    • Voting
      • Development
      • Complementary Examples
      • API Endpoints
        • Configurations
        • Create Proposal
        • Cast Vote
        • Statistics
  • Protokol Templates
    • Core Starter Kit
    • Solidity Typescript Hardhat
    • Nestjs
Powered by GitBook
On this page
  • STEP 1. Register A New Digital Asset Collection
  • How To Use NFTRegisterCollection Transaction
  • STEP 2. Create New Digital Assets
  • How To Use NFTCreate Transaction
  • STEP 3. Transfer Digital Assets
  • How To Use NFTTransfer Transaction
  • STEP 4. Burn Digital Assets (optional)
  • How To Use NFTBurn Transaction

Was this helpful?

  1. Tutorials

How To Create Digital Assets

Examples Showing How To Create Digital Assets (NFTs) On Blockchain

PreviousIntroduction To Digital AssetsNextHow To Trade Digital Assets

Last updated 4 years ago

Was this helpful?

STEP 1. Register A New Digital Asset Collection

NFTRegisterCollection transaction enables us to register a new type of digital asset by defining its structure. The structure is defined in the form of a standard JSONSchema (see example below). After the digital asset collection is registered we can create (mine) tokens with the help of NFTCreate transaction type. We need to define:

  • asset name

  • asset description

  • maximum supply (optional)

  • jsonSchema - structure of the digital asset

  • allowedIssuers - if empty anyone can create/mine a new asset

How To Use NFTRegisterCollection Transaction

Initialization

import { Builders } from "@protokol/nft-base-crypto";

NFTRegisterCollection - Builder

new Builders.NFTRegisterCollectionBuilder()
    .NFTRegisterCollectionAsset({
        name: "FIFA-20-PLAYERS",
        description: "FIFA 2020 Players",
        maximumSupply: 100,
        jsonSchema: {
            properties: {
                name: {
                    type: "string",
                },
                pac: {
                    type: "number",
                },
                sho: {
                    type: "number",
                },
                pas: {
                    type: "number",
                },
                dri: {
                    type: "number",
                },
                def: {
                    type: "number",
                },
                phy: {
                    type: "number",
                },
            },
        },
    })
    .nonce("1")
    .sign("SENDER_PASSPHRASE");

STEP 2. Create New Digital Assets

We can create (mine) new digital assets from the genesis wallet (the wallet that registered the new collection in STEP 1). To create a digital asset we need to comply with the asset type - that is the collection we registered with NFTRegisterCollection transaction. We need to specify:

  • collectionId

  • token attributes - need to comply with the registered JSONSchema

After token is created it lives inside the genesis wallet, until it is transferred to a trading address, or to a new owner with the NFTTransfer Transaction.

How To Use NFTCreate Transaction

NFTCreateAsset - Builder

new Builders.NFTCreateBuilder()
        .NFTCreateToken({
            collectionId: "c23b4a9e07329861422df43631d7aa72153cabcca3067941b94a69016ae8723b",
            attributes: {
                name: "Kalvin Phillips",
                pac: 90,
                sho: 89,
                pas: 60,
                dri: 57,
                def: 75,
                phy: 87,
            },
        })
        .nonce("1")
        .sign("SENDER_PASSPHRASE");

STEP 3. Transfer Digital Assets

We can transfer multiple owned digital assets. See example below for NFT Transfer Transaction Type.

How To Use NFTTransfer Transaction

NFTTransfer - Builder

new Builders.NFTTransferBuilder()
        .NFTTransferAsset({
            recipientId: "RECIPIENT_ADDRESS",
            nftIds: ["7373bbe5524898faec40bfcd12c6161981771f3be6426404208784831f4b0d02"],
        })
        .nonce("1")
        .sign("SENDER_PASSPHRASE");

STEP 4. Burn Digital Assets (optional)

Our NFT plugin set also enables burning capability for digital assets. This is useful with loyalty programs and expiring trading cards or gaming card functionality - where the asset is destroyed when used. Only token owners can burn/destroy a digital asset. Digital asset or usage history is still visible on the blockchain.

How To Use NFTBurn Transaction

NFTBurn - Builder

 new Builders.NFTBurnBuilder()
        .NFTBurnAsset({
            nftId: "6f252f11b119e00a5364d37670623d1b6be562f577984c819237ca4668e2897e",
        })
        .nonce("1")
        .sign("SENDER_PASSPHRASE");

examples/nft-register-collection.ts at develop · protokol/examplesGitHub
NFT RegisterCollection Runnable Example
examples/nft-create.ts at develop · protokol/examplesGitHub
NFTCreateAsset Runnable Example
examples/nft-transfer.ts at develop · protokol/examplesGitHub
NFTTransfer Runnable Example
examples/nft-burn.ts at develop · protokol/examplesGitHub
NFTBurn Runnable Example
Logo
Logo
Logo
Logo