DRM Anything NFT

DRM Anything NFT

This NFT builds upon the Selene Network distributed sales network framework to offer a project that demonstrates how to use signing to unlock hard to find (or hidden) data. This NFT uses an ‘Instant Access’ button which triggers the signing of a text-based message that gets decoded on the server which provides the hidden content.

A sales commission is paid to anyone that is a member of the network and minting is open-ended.

Minting

Because the NFT uses standard Selene Network functionality, the minting and access to the data can be found by clicking on the home icon in the NFT image box above.

Open-Source Code

As with all the Selene Network distributed sales network NFTs, all the files are available for download and verification hashes are provided in the project file.

Details on Signing

When you click the ‘Instant Access’ button, client-based JavaScript code launches MetaMask in order to sign a personal message. That message includes the current Unix time and the NFT smart contract address.

When the client-based JavaScript receives the signature back from MetaMask, it posts that information to the server along with the expected wallet address (visiting Metamask address), contract address and timestamp so that the signature can be decoded. Using that information, the server decodes the signature and the result is a network address. If that address matches the visiting MetaMask address, the decode is successful and the user provided information is verified to be correct.

After the signature decode has validated that the information presented to the server is valid, the server validates that the visitor holds at least one of the NFTs in question and that the signature was generated within the last 10 minutes.

If the server finds that the checks all pass, the server will include the secrete data in the response for the calling client-based JavaScript.

When the client-based JavaScript receives the response from the server, it will have the secrete content to display – if the signature decode was successful. At that point, the user will be shown the protected data.

More Info

If you would like help modifying this code to better suit your needs, feel free to tag me in the TraderPunks discord. In order to get into this discord group, you will have to demonstrate that you can use MetaMask and it’s hooked up to the Theta network and holding a Theta based TraderPunks NFT. If you’re holding this project NFT, you will get a top priority response from me (Amor).