In this month's edition of NFTify Diary, we had an interesting interview with Hana - our Business Lead. She talked about her role and why NFT creators should have their own smart contracts.
Could you please introduce yourself and the role you play in the NFTify team?
I am Hana, and I'm the Business Analyst Leader of NFTify. Basically, I’m in charge of researching the market and gathering user feedback to define product features.
Beyond that, I also get involved in designing solutions and the UX features you see on our NFT marketplace builder platform.
There are a lot of technical explanations of smart contracts, could you please explain it as though you're talking to a 5-year-old?
According to Wikipedia, Sir Nick Szabo—a lawyer and cryptographer—coined the word smart contracts in the early '90s. He described smart contracts as a set of promises in digital form, including protocols within which the parties perform on these promises.
To put it simply, smart contracts are the agreement rules and conditions that are established by all parties and then coded in a programming language. If the events specified by the conditions happen, then the code automatically executes. A transaction will be generated and recorded on the blockchain.
For example, a smart contract can be written that once A sends crypto, B should send an NFT in return. Smart contracts form the backend of most DeFi projects, NFT projects, and DAOs.
Are there perhaps different types of NFT smart contracts? If yes, please explain in detail.
There are different types of contracts including employment contracts, NDA agreements, and contracts of sale. Similarly, smart contracts exist in various types according to the purposes behind them.
There are DAO contracts, application logic contracts, smart legal contracts, and NFT smart contracts. But I'd like to speak more on NFT smart contracts:
NFTs are exclusive and indivisible digital items on the blockchain. Smart contracts power every aspect of non-fungible tokens. First, an NFT comes onto the blockchain when an address calls the mint function.
It's noteworthy that some conditions are always embedded in the smart contract before anyone can mint it. For instance, if the mint price is 3 ETH, the code might read that if a bidding address has up to 3 ETH, the smart contract should mint the NFT.
NFT contracts are always written to ensure a smooth transference from one address to another whenever the NFTs are traded. Secondly, NFT contracts contain the royalty percentage - such that the seller might receive some payments on every secondary sale.
The terms or functions in NFT contracts are not static. Instead, the conditions to program into the smart contract depend on the terms the project founders or the community wants.
There are two ways you can deploy your NFT contract: either as a shared smart contract or a self-owned contract.
What is the importance of having your own NFT smart contract as an NFT creator?
A separate NFT smart contract is the smart contract that an NFT creator deploys for his or her own NFT and without the plan to accommodate any external NFT item or collection into the contract in the future.
As an NFT creator, if you possess NFT smart contracts, you won't have to worry about any future risks because only you have the authority to mint NFT or approve someone else to do so.
Unlike shared smart contracts, NFT creators who deployed their NFT smart contracts will always have control over their contracts even if the platform ceases to exist.
Recall how Hit et Nunc, a once popular NFT marketplace on the Tezos blockchain with over $990k monthly volume and 22k monthly active users, discontinued its front-end around late last year.
Also, the royalty fee may be paid to you if the NFT's owner sells it in the future. With this, you'd not get paid by your direct buyers, but also receive some percentage everytime people trade your NFTs.
As the smart contract owner, you can set the percentage of your royalty fee as you desire. But conventionally, the highest is 50%.
How easy is it to create a smart contract? Do all current NFT marketplaces support such creation?
On the blockchain, deploying a smart contract is quite simple. You only need the code or bytecode to deploy your own smart contract.
Fortunately, it is becoming easier as some NFT marketplaces are allowing people to create self-owned smart contracts without writing codes. Usually, these NFT platforms would have handled the hardcore technical aspects.
Some of these NFT marketplaces are NFTify, Nfitykit, Bitski, Metaplex, Rarible, and others. More particularly, I will talk about NFTify's no-code smart contract creation feature later.
However, please note that not all existing NFT marketplaces allow for the smart contract creation. For example, one of the most well-known platforms, OpenSea, uses a unique smart contract for any wallet wishing to create NFT on their platform.
Apart from NFT marketplaces, there are also popular plug-ins like wp smart contract to create NFT smart contracts on your WordPress website. Indeed, smart contract creation is becoming easier every day.
What do you have to say regarding the recent backlash from NFT creators regarding the limited number of NFTs that can be minted in Opensea's smart contract?
I think this is a limitation of OpenSea shared smart contracts. How does a shared NFT smart contract work?
In a shared smart contract, the respective NFT platform is the owner of the contract. Nonetheless, it grants its users the ability to leverage its existing smart contract to create a "sub-contract."
When the users create a collection on OpenSea, it is actually not generated by a separate smart contract on the blockchain.
User’s collection is just a group at the backend and belongs to OpenSea shared smart contract.
This means the contract owner is OpenSea, not you when you create a collection or NFT directly on OpenSea.
And when OpenSea does not allow you as a user to create more NFT, you have no control over smart contracts to mint more NFT because you are not the owner.
Just like any other innovation, what are the possible weaknesses of smart contracts?
Just like any other innovation, smart contracts also have their limitations. According to Hana, here are the weaknesses:
1. Its Technicality Can Be Exploited
Building a smart contract requires a technical understanding of how to code different functions and solve problems. However, the same technicality serves as a weak point that black-hat hackers always exploit.
A recent incident to illustrate this is the phishing attack on OpenSea a couple of weeks back. The attacker exploited the wyvern contract of the users to maliciously make them validate some transactional orders.
2. They Can Be Difficult To Adjust
Smart contracts are deployed on blockchain nodes, and these nodes have an interconnected relationship. This makes adjusting smart contracts to be quite difficult - depending on the level of the change anyway.
This has been the problem with the Ethereum network. Hence the reason some Ethereum developers suggested hard-forking and sharding the network.
How does your platform—NFTify—help creators to easily create and deploy NFT smart contracts?
We discovered that NFT creators with no technical background might find it difficult to code their smart contracts from scratch and deploy them. This is the reason NFTify introduced a Collection feature where NFT creators can create their own smart contracts.
We created this feature as the foremost NFT marketplace builder platform that empowers NFT creators and entrepreneurs. How does the collection feature work?
By creating a collection on NFTify, the storeowner is deploying a separate NFT smart contract. So that the existence of your NFT contract is not entirely tied to the existence of NFTify as a platform.
In other words, you'd always retain a complete ownership of your NFT contracts and the NFTs minted therefrom.
Meanwhile, it's so easy to create your separate smart contract through our collection feature. First, create your storefront if you haven't - here is how to do that. Then go to your dashboard and press the "Create collection" button by the right. When you've clicked it, there'll be a prompt query to choose between ERC-721 and ERC-1155.
After this, fill in the particulars of your NFT including the description, logo, contact name, and address. Once you're done, click on "create collection" and with that, you have deployed your NFT contract. See, super-easy right?
If you were to advise NFT creators, what are the things you'd want them to note when creating an NFT smart contract?
I would advise you to always check and verify your contract owner which should be your wallet address. Similarly, always add the "ownable" method to exclusive functions like minting and burning so you will be the only one to call them.
These precautions and best practices are important to fence-off possible security breaches.
In addition, please bear in mind that you'd pay gas fees when you're creating your smart contracts, especially if it's a self-owned one. The cost of creation varies, depending on the marketplace or blockchain that you chose.
Hana, thank you for honoring this interview. It's been a wonderful ride.
It is my pleasure.