Combining smart contracts with NFTs will unlock a range of use cases and possibilities. To fully understand the potential of these technologies it is important to understand NFTs, Smart Contracts and Oracles in more detail.
NFT stands for Non-Fungible Token. It is a type of digital token which is unique and scarce. An NFT is essentially a unique proof of ownership of something, usually a digital asset. NFTs are digital versions of physical collector’s items and no two NFTs are the same.
Fungibility is the ability of an asset to be exchanged for another asset of the exact same type. For example a $5 bill is fungible with all other $5 bills. They represent the same value. But the Oppenheimer Diamond, for example, is non-fungible – meaning only one real, unique version exists.
The internet and digital technologies in general created an abundance of data and information, like files or photographs which could be replicated and shared endlessly. For example, if I took a picture of a celebrity on Santa Monica Boulevard from my phone, I could send that picture to thousands of people within seconds – creating thousands of versions of that picture right away.
Blockchain technology and specifically NFTs enable digital scarcity. Some data from an NFT can still be replicated and shared but the certificate of authenticity and legal rights of an asset will exist on a single, tamper-proof NFT. NFTs exist on blockchain networks such as Ethereum, and provide a certificate of authenticity as well as legal rights to the digital asset.
Smart Contract Definition
Smart contracts are one of the most powerful features of blockchain technology. A smart contract is a digital contract where the terms of agreement between users is set in code. A smart contract can also be programmed to self-execute when a set of predefined conditions are fulfilled. Smart contracts exist on decentralized and distributed blockchain networks.
There are efforts underway by several organizations to create smart contracts which will hold up in a court of law. The solutions will likely be in the form of smart contract interfaces where the code in a smart contract will simultaneously create a document in plain english defining the terms of the contract.
Smart contracts can be programmed to trigger other smart contracts into action or create new events when they are executed. Smart contracts can also hold assets, NFTs and cryptocurrencies within them. These assets can be distributed upon execution when a set of conditions are met based on the code defined in the contract.
Example: Smart Contracts & A Basketball Game
If I say the Lakers are going to win tonight’s game and you say the Knicks are going to win, we can create a bet using a smart contract. In this case we would create a new smart contract where each of us would put a Bitcoin (or any other cryptocurrency) into it. In the terms of the contract we would say if the Lakers win the smart contract should pay out fully to me and if the Knicks win it should pay out fully to you. When the game concludes and the smart contract receives a signal (through the oracle) that a certain team has won, it would execute the smart contract and pay out the two BTC it holds according to the outcome.
A blockchain oracle is a trusted third party service that provides smart contracts with authenticated external sources of data from the real world through an API. Oracles connect smart contracts with events in the outside world. Smart contracts often need to be triggered by an outside event. Continuing the example of the basketball game above – the smart contract would receive data indicating which team won the game through an oracle, in this case the oracle could be an API feed from a sports network like ESPN or NBC Sports.
Oracles can be created to provide a wide range of data to smart contracts. For example, an oracle could provide real world weather data, outcomes of events, outcomes of legal cases, financial statistics, economic data, interest rates, market data, performance data from a vehicle or machine and so on. The important thing to remember about oracles is that most smart contracts are meant to be executed when a condition is met in the real world, and oracles are the sources of data that can provide authenticated data about real world events.
There has been some debate about oracles being compromised in case or larger bets, so some smart contracts can also add multiple oracles to ensure that multiple sources or oracles validate the same outcome. So in the case of a basketball game we could write a smart contract which requires 5 oracles to participate, let’s say ESPN, NBC Sports, CNN Sports, BBC Sports and Yahoo Sports. The smart contract can require all five oracles to signal the exact same outcome before the contract can be executed.
Smart contracts can be programmed to self execute when a condition is met in the real world. Oracles provide data about real world events through authenticated API feeds for smart contracts.
How Smart Contracts & NFTs Can Interact With Each Other
There are two primary ways in which smart contracts and NFTs can interact with each other. NFT’s can be embedded in smart contracts and vice versa:
- NFT’s can be embedded within smart contracts. A smart contract can own an NFT within it which is then transferred to a user or another contract based on the rules and events defined in the smart contract.
- Smart contracts can be embedded in an NFT to call and access assets within the NFT. For example, a user can access a song which is embedded in an NFT through a smart contract. They would agree upon the terms using the smart contract, pay the agreed upon amount and then get access to that song. This is a process that will most likely run in the background when users hit play on their applications.
Combining NFTs with smart contracts will give users the flexibility to unlock a wide array of use cases. Complex contractual structures and agreements can be created. The underlying blockchain mechanisms will make the contracts transparent, tamper proof and auditable in real time. This will simplify and speed up any arbitration process in the future.
- Gaming: Tournaments in games could have a series of smart contracts and NFT combinations governing them. A player’s in-game items, such as skins, in-game assets and in-game tools can all be embedded in NFTs. Through a series of smart contracts players could agree upon a set of rules that define how the assets of the competitors in a tournament could go to the winner of each round.
- Streaming: Each movie or episode of a show can be embedded in an NFT. Users can access the show through a smart contract that takes a micro payment and then serves up the movie or episode on the user’s device for a certain period of time or a certain number of views.
Smart contracts and NFTs exist thanks to blockchain technology. Users already have a range of NFT standards to choose from when creating NFTs. I believe that several more NFT standards will be created in the future as new blockchain platforms are established. Thanks to the interoperable nature of blockchains users will be able to transact across different platforms from a single point. Meaning a user could access NFTs and smart contracts on separate platforms from their preferred platform. Blockchains will also secure on platform assets and transactions while providing real time auditability.
NFTs have the ability to instantly transform digital art, music and media into verifiable assets which are easy to buy and sell using blockchain tech. NFT’s have several enterprise use cases and have massive implications for media and Digital Rights Management. NFT’s will complement Web 3.0 to create a more transparent and secure internet.
Build your NFT smart contracts with us. Our Web3 solutions team will help you create the right set of smart contracts for your project and integrate on-chain and off-chain oracles to your smart contracts.
This blog is originally published here, https://www.linkedin.com/pulse/nft-smart-contracts-shaan-ray-mba/
Shaan Ray is a technology researcher and Web3 specialist who helps organizations unleash the power of emerging tech in reshaping their business goals. Under his mentorship, companies embrace transformative solutions to tap new markets and fresh customer segments. Shaan specializes in Blockchain technology, enterprise cryptocurrencies, and international business. Shaan can be reached at Linkedin, Facebook, Twitter and Instagram.