Hey Reddit, just wanted to share something cool I’ve been working on.
It’s an NFT protocol, but different from the usual NFT contracts you’ve seen.
Most NFT contracts hardcode their minting logic directly into the contract. What I’ve built (It’s called “Cell”) is not really an “NFT contract”, but an “NFT virtual machine contract”. There is no NFT collection-specific logic built into the contract. The contract acts as an operating system that interprets and executes offchain signed messages called “script” and authorizes whether to mint them into NFTs or not. Which means you can use this offchain scripts to print as many NFTs as you want for free. And it lets you do all that without relying on a 3rd party. If you want to quickly see what it is, I recommend checking out this video: https://www.youtube.com/watch?v=AVvwy3JuCKo
Another important part of Cell is its “universal tokenId” system. Unlike most NFT collections where the NFT creator arbitrarily assigns tokenIds, the universal tokenId ensures that every single unique NFT will have EXACTLY the same tokenId across space and time, regardless of which blockchain it’s stored on, regardless of which contract it’s stored on, and regardless of when it was minted, both relatively and absolutely. This is achieved by implementing an onchain IPFS encoder that makes the NFT tokenIds “IPFS native”. Essentially, the tokenId is UINT256 encoded version of the tokenURI. You can imagine how this can make the management of cross-chain swaps and managements of NFTs much simpler, as well as making the management of L1-L2 NFT bridging much simpler. Just to be clear I have no interest in building these bridge systems myself, but am thinking about various options to experiment or integrate with existing bridge/L2 solutions, and excited to see where we can go.
Lastly, I’ve built this protocol to be a completely open and free public utility protocol, with no owner. Any company or hobbyist can just start using it without worrying about licensing issues, just treat it like node.js or ruby on rails.
If you want to learn more, check out:
It’s currently in beta on Rinkeby with fully open sourced/verified code (more in the tweet thread), and planning to go live on ETH mainnet soon.
Would appreciate any feedback. Thanks!