NFT Tickets

NFT Registration Ticket

Ticket representation inside blockchain:

{
    "ticket": {
        "type": "nft-reg",
        "nft_ticket": bytes,     // NFT ticket (encoded with base64), see below
      	"version": integer,      // version, 0 now
        "signatures": object,    // signatures, see below
      	"key1": string,          // Unique key
      	"key2": string,          // Second unique key
        "creator_height": int,   // Block height at which NFT Ticket was created
                                 //   it is used to check if the SN that created 
                                 //   this ticket was indeed in the list of top 10 SN
                                 //   at the moment of registration
        "total_copies": int,     // Number of available copies in NFT
        "royalty": float,	 // Royalty %
        "royalty_address": string, // Address to pay royalty
        "green": boolean,	 // Indicate whether there green payment
      	"storage_fee": int,      // Registration fee, in PSL
    }
}

Where nft_ticket is base64 encoding of the following JSON, as a string:

This JSON is created by WalletNode during the New NFT Registration process

Where app_ticket is ascii85 of the following JSON, as a string:

This JSON is created by WalletNode during the New Art Registration process

Dupe detection and fingerprints files and IDs

Dupe detection service - dd-service outputs data as json (dd_and_fingerprints) in the following format

WalletNode calculates IDs for dd_and_fingerprints_ids field of app_ticket as:

Base58(SHA3_256(compressed(Base64(dd_and_fingerprints).Base64(signatureSN1).Base64(signatureSN2).Base64(signatureSN3).counter)))

Where:

  • dd_and_fingerpints, is data returned by dd-service

  • signatureSN1-3, is Supernode's signatures of dd_and_fingerpints data

  • counter, is number in the range from dd_and_fingerprints_ic to dd_and_fingerprints_ic + dd_and_fingerprints_max

All three parts are concatenated together using "." as separator

rq_ids files and IDs

raptorQ service - rq-service outputs rq-symbols's id's in the following format

WalletNode calculates IDs for rq_ids field of app_ticket as:

Base58(SHA3-256(compress(Base64(rq_ids).Base64(signature).counter)))

Where:

  • rq-service-data, is data created by rq-service

  • signature, is creators signature over rq-service-data

  • counter, is number in the range from rq_ids_ic to rq_ids_ic + rq_ids_max

All three parts are concatenated together using "." as separator

And signatures are the following JSON object:

All signatures here are of nft_ticket

principalelement is created by WalletNode before sending ticket to SuperNodes for further processing

mn2 and mn3 elements are created by SuperNode 2 and SuperNode 3 respectfully

signature elements are created by cNode on the SuperNode 1 as part of cNode API call tickets register nft, and MUST not be passed into the call

Ticket is written into blockchain by the cNode API tickets register nft:

here,

  • key1 is unique human readable extract from fingerprints

  • key2 is anything else that can be used as secondary key

NFT Activation Ticket

Ticket representation inside blockchain:

Ticket is written into the blockchain by the cNode API tickets register act:

NFT Sell Ticket

Ticket representation inside blockchain:

Ticket is written into the blockchain by the cNode API tickets register sell:

NFT Buy Ticket

Ticket representation inside blockchain:

Ticket is written into the blockchain by the cNode API tickets register buy:

NFT Trade Ticket

Ticket representation inside blockchain:

Ticket is written into the blockchain by the cNode API tickets register trade:

Last updated

Was this helpful?