NFTs Are More Than Goofy Jpegs
We see NFTs as tokenized React Applications. They serve as hybrids which connect the on- and off-chain worlds. This means they are minified programs that consume, generate, and manipulate data.
In short, these Non-Fungible Applications (NFAs) serve as tokenized software programs which double as containers of value!
I don’t think NFTs are inherently immutable. I’m sure I’ve seen some NFTs that have the ability to be “evolved” and change their attributes. The contract logic may be immutable, but attributes aren’t, and voting power that is derived from attributes may be dynamic as well.
— Francisco Giordano, OpenZeppelin
Overview: Features of Utility and Programmable NFTs
Code Sport Labs is building an industry focused ecosystem of programmable and utility NFTs. We see NFTs as tokenized React Applications. We call them Non-Fungible Applications (NFAs).
Below is a non-exhaustive list of potential use cases:
- Programmable payments (e.g. salaries, dividends, interest, rewards, etc.)
- Asset Tokenization (e.g., Gold [PAX Gold and Tether Gold], Real Estate, etc)
- Proof of Provenance, Certifications Such as Diplomas & Completion Certificates, and POAPs1
- Access control functionality (membership)2
- Governance (voting) via an ERC-721 DAO
- Dynamic QR Codes Integration
- Payment Escrows
- Brick and mortar payments integration (QR code scanning and crypto wallet integration)
- Non-transferable NFTs for credentialing, diplomas, certifications, authentication, etc.3
- Rewards (monetary or otherwise) for staking
Detailed Analysis: Programable NFTs
Because NFTs are bound to smart contracts (and are programmable), they may be used as primitives to provide cash flow entitlements, Blockchain‐based credentialing, proof of provenance (origin), proof of work (completed labor), and proof of attendance (of events) for individuals in real life scenarios.
Programmable NFTs have multiple uses cases. To illustrate:
- Monetary Entitlements: NFTs may entitle holders to either (a) perpetual, (b) limited with expiry, (c) continuous, or (d) discrete claims on future cash flows based on
- Vesting of Monetary Awards
- Staking: Interest Earned based on an amount of ETH staked by a member
- Payments for Labor: Satisfactory completion of time based labour services performed by a member
- Proof of Work/Contribution: Verifies satisfactory completion of time‐based labour services performed by a member
- Proof of Ownership: Attestation of ownership and therefore a claim on cash flows from a revenue generating product or business
- Proof of Attendance/Completion/POAPs: Confirms attendance and/or completion of classes/courses/homework from an educational institutions
- Proof of Provenance/Origin: Attests that NFT was issued by a smart contract owned and deployed by a specific entity (e.g., a school/educational institution, individual, or any organizational entity)
- The ERC-721 DAO minter can create NFTs with various privileges defined by NFT meta data
- Minter contract may dynamically update an on-chain access control list based on NFT type and or wallet address
- NFT metadata stored on IPFS may be “updated” by changing
- NB: An off-chain database (e.g., mySQL) may provide an alternative, additional, and/or redundant authentication, access control, and metadata storage mechanisms
- In off-chain scenarios, privileges may be manually changed (added or revoked) by trusted administrators
- Asset Tokenization: 100% backed, 1-1 collateralization with real world assets. Examples include real estate or in the fungible case, USDC
- NB: An interim solution to the non-transferability issue is to revoke the NFTs utility by changing its metadata file upon transfer.
- Live Example: Here is the json metadata associated with NBA star LaMello. The React app pulls in his player stats in real time. As noted in
ECNFT.sol, there are 3 classes of Dynamic NFTs based on
tokenIdrange. For example, the silver class begins at
- Tutorial: Chainlink offers a tutorial in How to Build Dynamic NFTs on Polygon
- Use Cases: Additional uses cases from Chainlink in 16 Ways to Create Dynamic NFTs Using Chainlink Oracles
- Live Example 1: This is json metadata for a Canvas-based game. Because it’s self hosted, the app may be easily updated by the creator without paying gas fees.
- Live Example 2: Here is another interactive NFT hosted by Ether Cards. Their
animation_urlkey points to an iframe. The iframe then embeds this React App
Charged Particles is a protocol that allows users to deposit ERC-20, ERC-721, or ERC-1155 tokens (ANY tokens) into an NFT
— Charged Particles Documentation
- Their docs have a list of use cases. Additionally these blog post by co-founder Ben Lackoff go into further detail: Possibility for Unlimited Creativity with Charged Particles and NFT Containers with Programmable Value.
Footnotes, References, and NFT Segmentation Analysis
1Proof of Attendance Protocol (POAP): Technical information on POAPs may be found here
2Access Control Functionality: For example, holders of an NFT could have exclusive access to gated web or real life communities. Or access to purchase member-only real world items (physical memorabilia, goods, or even services).
3Non-transferable NFTs: Use cases for non-transferability would include diplomas, credentialing and certifications as well as POAPs. And, although non-transferability is currently not supported on any EVMs, Vitalik supports the need this functionality.
4Dynamic NFTs: Are React Apps that change state and pull in real time data by connecting to an API. To facilitate feature updates, the metadata JSON file is typically self-hosted and not pinned to IPFS. Chainlink offers an explainer in What is a Dynamic NFT.
By design, the atomic [dynamic] layer of NFTs is not the NFT — it’s the NFT’s metadata.
— Playground Studios
5Interactive NFTs: These are React Apps (or HTML5 Canvas apps) that change state based on user clicking prompts or buttons within the NFT. Unlike Dynamic NFTs, they do not pull in real time data. As with Dynamic NFTs, the metadata JSON file is typically self-hosted and not pinned to IPFS.
6Containerized NFTs: Charged Particles has innovated this concept.