Imagine owning and trading exclusive content, from music and art to virtual land and access passes, while maintaining complete control over who can access it, even across different blockchains.
How it's Works 🛠️ There are two contracts deployed Router and Portals
Router is a CCIP and ILogInterface Compatible Contract that performs upkeep and Cross chain transfer
Portals is a Function Capable ERC-721 Contract the holds the NFTs, here are the deployed Address and Chainlink Subscriptions
Avalanche Fuji Router - 0x624A9104f594b943254620d19371212C7Aa2a3a8 Portals - 0x15A552010D8bba68034EC4E8Fcc2CfDaFc0DE8E9 Functions Subscription - https://functions.chain.link/fuji/1516 Automation Subscription - https://automation.chain.link/fuji/10013484446831437677184902378559614187621707955900795943372880151634859699701
Polygon Mumbai Router - 0x67bd320CF5B75e04694F4c84Aa8898c6B9DeB30a Portals - 0xF66fdE3208b0855EE97035bF28112d383CdAD86e Functions Subscription - https://functions.chain.link/mumbai/979 Automation Subscription - https://automation.chain.link/mumbai/53852294395387212749523118815082309718236198448956367777703582160615461456762
Minting Content NFTs Content creators can mint NFTs on any Chainlink CCIP supported blockchain, including Polygon Mumbai, Avalanche Fuji and more. First they have to select the Content File they have to mint as NFT. That Content File will be encrypted using Lit Protocol using Access Control Conditions as the Owner of that Token, and then the Encrypted Content File will be uploaded to IPFS. Then the NFT will be minted on the selected blockchain.
Cross Chain Transfer Once the Owner of the NFT wants to transfer the NFT to another blockchain, they can initiate a Cross Chain Transfer. First the user NFT will be transferred to a Dump Address which can be burnt after the transfer is completed. Then the user will be asked to select the blockchain to which they want to transfer the NFT.
The transaction will trigger Chainlink CCIP and sent the data as the URI of the NFT and the address to transfer the NFT. A new NFT will be minted on the selected blockchain.
Once the NFT is Minted and event CrossChainMintSuccess will be Emitted with the details of the NFT and the blockchain to which it is transferred. This will trigger the Chainlink Upkeep which will start an Automation.
This Automation call will call a Chainlink Function which will call an API will the details of the newly minted NFT and the blockchain to which it is transferred. The API will update the Access Control Conditions for the NFT and return the new Hash. This hash will be updated as the Token URI for the new NFT, ensuring that the new NFT content is only accessible to the new owner on a new chain.
Built With
- forge
- nextjs
- solidity
- typescript
Log in or sign up for Devpost to join the conversation.