The new frontier of digital merch
The world of digital collectibles is still a very new and developing market segment, and in many ways is a sort of wild west of online sales. NFTs are the main product, and these one-of-a-kind tokens are ideal collector’s items thanks to their unique token IDs and verifiable authenticity.
However, as the new frontier of digital merchandise, there are still a few kinks to work out in the NFT market. First off, the authenticity of NFTs can be forged, and network forks in blockchains can lead to dual copies of NFTs. Even though tracing an NFT’s transaction history is theoretically possible on the public ledgers of blockchain networks, it can be difficult, and there have already been cases where fake copies of NFTs have been passed off successfully as originals.
Secondly, most NFT marketplaces only implement royalty payment functionality at the application level. This means that when an NFT is transferred away from the marketplace where it was created, its original creators will never see a penny for it again.
The solution
The main advantages of NFTs are enabled by the blockchain technology used to create them. So any solution to the issues of forgery and royalty payment functionality must happen at the blockchain level. As we can see with royalty payments at the application level, anything implemented outside of the token or smart contract itself can be bypassed by simply transferring the token outside of the application environment.
This is why we at Tatum have created new ERC-721 smart contracts that implement both provenance data recording and percentage-based royalty payment functionality at the blockchain level. The token itself holds a record of every transaction since its creation, and automatically pays out royalties as percentages of the sale price to the original creators. These royalties are paid either in the native currency of the blockchain or in any ERC-20 token specified in the mint NFT call.
But what about EIP-2981?
EIP-2981 is a popular standard for royalty NFTs, but it has a few shortcomings. You can only pay out royalties to one creator and the royalty payment is voluntary. Essentially, you just have to trust that people will pay the royalties, and that just wasn’t good enough for us.
So our new NFTs significant advantages over the EIP-2981 standard:
They can pay out royalties to multiple creators, instead of just one.
Each creator can receive a different percentage and all of them will be paid every time the NFT is transferred.
They feature the option to require a minimum amount of fixed cashback upon transfer.
If the designated percentage royalty of the sale price is less than the minimum fixed amount of cashback, the minimum fixed amount will be paid out. To implement voluntary cashback like in EIP-2981, you can simply mint an NFT with a fixedValue of 0.
They can pay out royalties in ERC-20 tokens.
This means you can mint an NFT on Ethereum that pays out cashback in USDT, on Celo that pays out in cUSD, or in any other custom ERC-20 you want.
These smart contracts are prebuilt, validated, and instantly deployable with just a few lines of code using Tatum. There’s no need to learn Solidity and code your own smart contracts, everything is ready-to-go with any of our free or paid plans. Provenance NFTs with percentage royalties are currently available on:
- Ethereum
- Polygon (Matic)
- Celo
- Harmony (ONE)
- Binance Smart Chain
Here’s how to create them.
So let’s do a quick rundown of how to create these NFTs and work with the provenance and percentage royalty functionalities. For additional information about all the API endpoints related to our provenance NFTs, please refer to our full guide.
For the following operations, we’re going to be using the Tatum JavaScript SDK. The same endpoints are available as REST API calls in our API documentation.
Import required JS libraries
First, download the JavaScript SDK for all supported blockchains in Tatum and import the required libraries.
Deploy NFT smart contract
Next, we will deploy an NFT smart contract on Ethereum. Normally, to create an NFT you’d need to learn Solidity and code your own smart contract. To speed things up, we’ve created prebuilt and validated smart contracts for you. You can instantly deploy them with just a few lines of code.
The required parameters are:
- The name of the NFT
- The name of the blockchain
- The NFT symbol
- Provenance: true. Enabling provenance in this call also enables percentage royalty cashback.
And that’s it. You’ve deployed your own NFT smart contract on Ethereum.
Get the address of the smart contract
To work with the smart contract we’ve just deployed to mint, transfer, and perform other operations with the NFTs we’ll be minting, we’ll need to use the address of the smart contract.
To get the address of the smart contract, use the transaction ID in the response to the previous call with the Get NFT contract address endpoint:
The response will be the address of your NFT smart contract.
Upload metadata
Before we mint NFTS, we have to upload the metadata (image, audio, video, etc.) that we will include in the NFT. Tatum features native integration with the InterPlanetary File Exchange (IPFS), which is one of the most popular and wideand allows you to upload files up to 50 MB for free. Please check this guide to learn how to upload metadata to IPFS.
Mint a new unique ERC-721 token
Now that we have the address of our smart contract and have uploaded our metadata, we can mint NFTs.
In this call, we’ll specify the percentages of each sale each creator (author) will receive when the NFT is transferred in the “cashbackValues” field. We will also specify the minimum amounts of cashback that must be paid out in the “fixedValues” field. If the cashback to be paid from the percentage of the sale is less than the fixed value, the fixed value will be paid to the authors instead. This serves as sort of an insurance mechanism against someone entering the sale price as a very small value to avoid paying royalties.
The required fields to mint a new NFT are:
- The recipient’s address in the “to” field
- The URL of our JSON scheme on IPFS
- The ID of the token to be minted. This can be any unique number and depends on your numbering convention. Some developers use chronological numbering, some do it by date and time, it’s up to you to decide how you will organize your token IDs.
- Provenance: true. Provenance must be enabled in this call as well.
- Author address is the address, where cashback will be sent.
- The percentage value of the cashback in the “cashbackValues” field. In the example below, the value “0.5” means that 0.005% of the sale price will be transferred to the author each time the NFT is transferred.
- The minimum fixed value of the cashback is in the “fixedValues” field. This value is the minimum cashback value that will be paid and is a fixed amount of the blockchain’s native currency.
- The name of the blockchain
- The address of the NFT smart contract
- The address of the custom ERC-20 token smart contract the creators would like to receive cashback in. If this field is absent, cashback will be paid out in the native currency of the blockchain (in this case, ETH).
Get NFT provenance data
Now, you need to confirm the authenticity of a specific NFT. Luckily, the NFT was minted with provenance data enabled and contains a full record of its transaction history.
To get the provenance data for the NFT, use the following endpoint. You’ll need to enter:
- The address where the token is held
- The token ID of the NFT
The response will be all of the transaction data from the entire history of the NFT, along with any optional provenance data that was entered when it was transferred.
And there you have it!
You’ve just created an NFT that will record provenance data and pay out the percentage royalties with just a few simple API calls.
You can just as easily transfer the NFT, update the cashback values for authors, find out which NFTs a specific address holds, and get NFT metadata for a specific token.
If you’re ready to get started and try it for yourself, go ahead and sign up for an API key to communicate with Tatum’s infrastructure. you can do everything with our full-featured free plan. You’ll only have to upgrade if you start getting some user traffic and need more than 5 API requests per second.
Once it’s time to scale, you can upgrade to a paid plan, and you won’t have to break the bank. Our entry-level paid plan is available for $9/month and gives you 200 rq/s, which is more than enough to run a full-fledged blockchain app. No need to run nodes, no need to hire blockchain developers, and you can scale as fast as you need to.
For inquiries, questions, any kind of help, hop onto the Tatum Discord or our subreddit.
Happy coding!