"In the future, everyone will be world-famous for 15 minutes".

We believe that the best way to encapsulate "everyone" is through a process that randomly and verifiably selects "anyone" in a trustless manner. Fifteen minutes of fame is an experimental project found here.

How it Works

  1. Every 15 minutes a new 'epoch' begins.
  2. Users login through their Coinbase wallet and submit videos through our frontend here
  3. These videos are minted as Video NFTs using the Livepeer Video NFT library
  4. The NFT creation time and ID are stored in our smart contract and indexed on our subgraph
  5. The video file is stored on IPFS
  6. After 15 minutes have passed, any user may press the "Generate New Random Number" button which triggers a call to generate a Chainlink VRF using our smart contract and indexes that number on our subgraph
  7. The randomly generated number corresponds to one of the videos generated in the last epoch - the 'winning video'
  8. A feed of winning videos is featured
  9. At any point, the owner of a winning video (verified through checking if their Coinbase wallet ID owns the NFT) can add or edit the caption to the video

What we learned

  1. How to integrate with Coinbase wallet
  2. How to create and query a subgraph through the hosted service
  3. How to work with Polygon (first contracts we've deployed through mumbai testnet)
  4. How to mint a video NFT through Livepeer

Deployed addresses

Polygon mumbai testnet: 0xd5CF5aDA56328E05f527928C5A31eE668db35771

Notes

This is deployed on the Polygon mumbai testnet. All video submissions require two contract interactions and all calls to generate the a new random number for a new epoch require one contract interaction.

About us

Built in 48 hours at Graph Hack 2022 in San Francisco

Jonathan: https://www.linkedin.com/in/jonathanzwiebel Daniel: https://www.linkedin.com/in/daniel-taratorin-94b957115

Built With

  • chainlink-vrf
  • coinbase-wallet
  • datahub
  • hosted-service
  • ipfs
  • livepeer
  • polygon
  • the-graph
Share this project:

Updates