đ¸Pay to View Application
In this example, file owners let only those who access a particular file who have minted NFT from the contract defined by the owner in access conditions.
Step 1: The user uploads an encrypted file to the Lighthouse IPFS node. Refer to this NodeJS Encryption Upload or ReactJS Browser Encryption Upload code example.
Lighthouse node returns an IPFS CID/Hash for the encrypted file.
Step 2: Suppose the user(file owner) wants only people who buy an NFT from a particular collection to access the encrypted file; he applies access control to the encrypted file.
For example, in the case of NFT
After applying the access condition, only the user who owns NFT from that particular collection can get access to the file.
Note: access conditions are not only restricted to NFT. Users can apply custom contracts, time-based, and native token-based conditions also.
Step 3: Lighthouse view URL can be used to view the encrypted file and displays it at the user end, or the user can build a custom decryption view page, refer to this code example.
Step 4: NFT can also be made a soul-bound token (SBT) so that the owner is not able to transfer to any other address
Last updated