Decoder Crystal
The Decoder Crystal is an ERC-721 token on the Ethereum blockchain and is a critical aspect of the Forgotten Runes provenance.
10,000 Encoded On-Chain Wizards
To understand the Decoder Crystal, it is first crucial to understand the on-chain encoding of Forgotten Runes Wizard's Cult. Unlike many other NFTs, the Wizards actually live on the Ethereum blockchain. However, the specific images of these 10,000 Wizard permutations are not stored on-chain. Rather, the parts (ortraits) of the Wizards — the heads, bodies, props, runes , and familiars that make up each character — are contained in a single image grid on the blockchain.
IPFS
The InterPlanetary File System is a peer-to-peer network used for hosting and sharing data. IPFS is popular among NFT project developers for hosting project-related images. If an image is only stored on IPFS, the owner actually only owns a pointer to that image. This means that the image must have a host, or it will disappear.
One of the benefits of IPFS use for NFT project leaders is visibility and compatibility with off-chain organizations, such as OpenSea.
Forgotten Runes and IPFS
While all of the Wizards' data is stored on Ethereum, Magic Machine also include an IPFS URL in the tokenURI
This exists solely for convenience and off-chain interoperability, rather than out of necessity for the persistence of Wizards.
10,000 Decoded Wizards
Along with the on-chain, encoded image grid of the 341 total parts that result in the Forgotten Runes Wizards, there exists a pairing of wizard attributes necessary to decode it. This is the Decoder Crystal.
While it exists as its own token, the Decoder Crystal contains the code to call every Wizard in the collection from the Ethereum blockchain. This means that the characters of Forgotten Runes are not dependent on outside or centralized entities to exist. As long as there is Ethereum, there are Wizards.
Shortcomings of This Method
The main shortcoming for this method is that the traits are not accessible to other smart contracts. This could potentially create obstacles during integration with other on-chain projects (such as games).
The Lost Grimoire
Community member Meph1587 has created code to remedy this issue in The Lost Grimoire, which has been deployed on Rinkeby, though it is not yet on Ethereum Mainnet.
Transactions
The transactions used to store this data are available at the following hashes:
img: "0xbb6413bd70bae87b724c30ba9e46224fa63629709e7ccfe60a39cc14aa41013e",
traits: [
"0x227552b04af7606108d306654c620a655393451742e299e8bfd28236683da2cf",
"0x529b29d36d07c917cc24bf162d737adc0c8ddc07003f9d5ca59876cf8167bfda",
"0x8ec128ed9b3f4f92853d8df0ff6a2159963e81f2a611145f60a8d96990439049",
"0xe6f0b0e76ddbc581ba3a8155ff545b7d5c31a394ac0a54b44aa9ea21525d0d06",
"0x78a6304221ff044d3adcdb037be10aa843707f2c8241e81b4b2c6fbcb51f8b79",
"0x74b9d75a174e76981f823d594c2c2fbcaff61e66a76be7977e0cbeb52c28f01f",
"0x3500861637fce52bef4be39ae935e632881df4a69a47abcca8bbfc9490278dc6",
"0x96677df7c85535328b16d93acf8cd925b87886ca2198c3654ff8d8cc56236f69",
"0xa2977bf5ef9864796fe713db9e08f98fbbce129f4280651b6b9782c4ffdf4bd2",
"0xe9ecc9dd5f0518617afb8593157dde0bc58d5d1e4fdb5f10a3ff8f96a81897dc"
],
affinities: "0x1be4aa782c9dc164ecbf2cd155537e7250b344f405dff03b5c33fdd63261c80e"
This data itself is also stored within the Decoder Crystal.