Required Language And Framework For NFT Development
NFTs are attracting attention from many investors around the world as proof of the irreplaceable and unique value of digital content. As proof of this, a digital artwork published as an NFT in March 2021 was sold for about 7.9 billion JPY.
Nowadays, even artworks drawn by children are sold and bought at a very high price of several million JPY, and even game characters are also exhibited as NFT, which is definitely an investment target. So how can we develop an NFT (Non-Fungible Token)?
NFTs can list digital content such as images, videos, and event tickets in a dedicated marketplace with a simple procedure. However, when it comes to apps such as games, it is necessary to develop through a well-formed process. Therefore, in this blog, we will explain in detail what kind of programming language and framework is required to develop NFTs.
About NFT
NFT stands for and has the meaning of “Non-Fungible Token”. Bitcoin and other cryptocurrencies, even cash usually do not vary in value no matter how many token is exchanged. There is no difference in the value of 100 JPY for a person and 100 JPY for another. This “exchangeable” means “fungible”.
On the other hand, NFT is an irreplaceable (non-fungible) token that proves ownership to digital content by a digital data unit on the blockchain, such as sculptures and jewels, giving those the value that is unique in the world. Traditionally, digital content can be duplicated indefinitely on the Internet, and the same images on one person’s computer can exist on another person’s computer as many times as possible. And it was almost impossible to prove any one of them as the owner. However, it was NFT that realized this in a way that it could not be tampered with or forged with blockchain technology, and it had a great impact on people’s concern all over the world.
Therefore, by using NFTs, it is possible to add value as original ownership to images, videos, and music, such as paintings and hanging scrolls. Moreover, the target is expanding to RPG games and trading card games. One example is the NFT game “My Crypto Heroes”, which was released for the first time in Japan. This game can be played on both PCs and smartphones, and players aim to conquer the world by collecting items such as weapons that are also NFTs while collecting world heroes made with NFTs. Characters and items are NFTs, so you can buy and sell them in a marketplace.
However, in the NFT market, if you want to sell a character from a general online game or social game, you cannot do it. Unless it is a game created using a special technology called a smart contract on the crypto asset of Ethereum, which will be explained later, it is impossible to add value to characters as an NFT or buy or sell them in the market.
In addition, it is possible to build a mechanism that rewards the original author each time the work is delivered to a buyer, different from the secondary and tertiary markets by utilizing smart contracts. It can be said that it is a remarkable feature unique to NFTs.
NFT and Ethereum
NFT trading and development cannot be considered without Ethereum. In other words, the NFT system works because of Ethereum, which is called a blockchain “platform”, which is different from other cryptocurrencies. So, let’s continue with the ERC standards that are essential for Ethereum and NFT development.
What is Ethereum?
Ethereum is the second most popular blockchain after Bitcoin. It was released in January 2014. The key currency is Ethereum (ETH), which generates blocks every 15 seconds, so it is much faster than Bitcoin, which takes about 10 minutes, and it can be traded in large quantities. Ethereum is a decentralized application platform, and by using a mechanism called smart contract, which will be described later, it is possible to create and run unique tokens and applications on the blockchain. This is a big difference from other crypto assets, and it is the reason why NFT can be operated.
Ethereum, which is a platform type, is a very attractive blockchain for developers because it has a high degree of freedom and various software can be created. Therefore, since its birth, many people have started to create their own tokens by utilizing this. However, if you make a token on the blockchain, you need an individual wallet (an online wallet that is absolutely necessary when dealing with virtual currency), and it is not compatible if the token standard is different. Therefore, if each developer freely creates tokens in his own way, it is not practical because it requires troublesome work such as setting up a different wallet each time.
Therefore, if this standard is unified, wallets can be centrally managed and compatibility will be created, so the idea that it will lead to the development of the Ethereum market due to its ease of use is born.
What is The ERC Standard?
With the above circumstances, the common standard for smart contracts (described later) called “ERC” was established with the aim of improving convenience for the entire developer community. It will become a formal standard once it is proposed on GitHub and approved by the developer community. (GitHub is a service provided by a Microsoft-affiliated US company that allows multiple software developers to manage and share source code.)
ERC20 was first born in November 2015, and when it was released, it was used to create a number of unique tokens. ERC223 was born in March 2017 as the improved version.
Furthermore, “ERC721” was born in September of the same year with the purpose of developing the idea of this common standard in a completely different direction.
Unlike the previous ERCs, this ERC721 has made it possible to create an irreplaceable new type of token called NFT. All NFTs are created according to the rules of this ERC721, and conversely, the app cannot be launched on Ethereum unless it complies with this standard. Of course, Japan’s first NFT game “My Crypto Heroes”, introduced earlier, was also developed according to the ERC721 standard.
By the way, Canada’s Dapper Labs launched the world’s first NFT game, “CryptoKitties”, just two months after approval (November 2017), after proposing this ERC721. This “CryptoKitties” ignited the NFT game and, at the same time, raised awareness of NFTs worldwide.
Ethereum and Smart Contracts
ERC is a common standard for “smart contracts,” which are indispensable technologies for Ethereum. A smart contract is a program that automatically executes transactions on the blockchain according to rules coded in a specific programming language. The program coded here is converted into a form that can be processed on the blockchain and then deployed. Software and applications once deployed on the blockchain are almost impossible to rewrite or tamper with. Moreover, it has the advantages of speed improvement and cost reduction.
ERC is proposed on GitHub by developers and will become a formal smart contract standard if approved within the community, but the numbers following ERC represent the order in which they were proposed. This means that the first ERC20 was proposed on the 20th. And the 721st proposal and approval was ERC721.
Using the ERC721 standard, NFTs can be developed, certifying ownership of digital content and recording all transaction history on the Ethereum blockchain. Therefore, all transactions are traceable, so no matter how many times you buy or sell, you won’t lose track of who your content belongs to. Moreover, if you embed a royalty clause in a smart contract, the original author will be paid a certain percentage each time a sale is completed, so the copyright is also firmly guaranteed.
“Solidity” Language For Creating Smart Contracts
To develop an NFT according to the ERC721 standard, we use a program development language called “Solidity”. Solidity is a high-level object-oriented programming language created solely for the development of smart contracts on Ethereum. Since it is a high-level language, it needs to be compiled like C language and Java. It is based on C++ and is made with reference to Python and JavaScript, and especially because it has a grammar similar to JavaScript, it will be very easy to use if you have development experience with JavaScript. Moreover, as the update is ongoing, the accuracy will improve over time.
Since “Solidity” is a high-level programming language, it is easy for people to understand, but it is difficult for computers to understand. Therefore, we will go through the process of translating it into low-level bytecode using EVM (Ethereum virtual machine) and executing it. You can also create smart contracts in a Python-like language called “Vyper”, but it is still inexperienced and practically not comparable to “Solidity”. Therefore, it is safe to assume that “Solidity” will be used for NFT development for now.
“Truffle” Framework of “Solidity”
Solidity has “Truffle” as a de facto standard framework, which is already widely used in many development situations. Truffle has the ability to automate the compilation, testing, and deployment of smart contracts. The flow of using Truffle is to first create an application template. Next, compile the smart contract, launch the node for local development, deploy the smart contract to the node, and test it. Therefore, if you make good use of Truffle, you can quickly and easily create smart contracts using Solidity, so we highly recommend it.
Summary
I told you in detail about NFT (Non-Fungible Token). If you want to develop and implement NFT, the existence of Ethereum is indispensable. However, Ethereum is worried that gas charges (commissions) are soaring even in many virtual currencies. In other words, this high gas cost can be a major obstacle to entering the market.
Therefore, the development of a new blockchain that does not cost much fees is progressing, so there is a possibility that the way NFTs should be will change in the future. If more gameplay and investors can participate in the NFT market, the market size is expected to grow further in the future. In that sense, now is a great opportunity to develop NFTs.
Relipa is specialized only for Japanese companies, and excellent engineers will help you develop NFT (Non-Fungible Token). If you are a startup or developer who is thinking of entering the NFT market in earnest, please feel free to contact us.

