Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User Story: AI + NFT Web3 Application (Ethereal Nexus) #1

Open
7 tasks
kamescg opened this issue May 19, 2023 · 0 comments
Open
7 tasks

User Story: AI + NFT Web3 Application (Ethereal Nexus) #1

kamescg opened this issue May 19, 2023 · 0 comments

Comments

@kamescg
Copy link
Member

kamescg commented May 19, 2023

👨‍💻 User Story

As a player in the Web3 universe I want a unique profile picture (PFP) generated using artificial intelligence.

More specifically I want to use a Dreambooth API to generate profile pictures that is minted as a 1-of-1 non-fungible token (NFT) hosted using distributed storage like IPFS and/or Arweave.

📜 Disclaimer

To be eligible for the payout you must first get approval to work on the bounty.

It's recommended to share a link to your personal Github account.

🧱 Project

Create a Web3 application that combines Dreambooth AI and ERC721 NFTs.

The application should allow users to generate personalized "Web3 Metaverse" profile pictures.

The PFPs will be generated using Dreambooth, which is AI program that can be trained on object, like a person, and recreate that object in a variety of different environments. The NFT will be minted on the Optimism network, which is a popular Ethereum rollup and permantely stored on either IPFS or Arweave.

Application Features

  1. Purchase NFT Access Control Pass
    User are required to purchase an access control NFT for 10 USDC. The cost of the NFT will be used to run the servers required to generate the AI profile pictures.

The access control NFT is separate from the PFP NFT. And is used as solely as purchase receipt and as an API access control trigger.

  1. Upload Images to Server
    User should be able to upload 5-10 photos of themselves on a private server. The images should be stored in Vercel object storage and be erased after the PFP has been generated.

  2. Generate AI Profile Pictures
    User should be able to generate 100 unique profile pictures using a model trained on the upload images in the previous step. Users can save all of the hi-res images at no additional cost.

  3. Select Favorite & Mint on Blockchain
    Users should be able to select a single PFP, which will be uploaded to IPFS or Arweave, and minted on the Optimism L2 rollup.

Required Functionality:

  1. Dreambooth API Integration
  2. ERC721 Access Control Smart Contract
  3. ERC721 PFP Smart Contract
  4. IPFS Image Upload

Developer Tasks:

  • Create turbo monorepo using TurboRepo
  • Clone TurboETH Web3 Application template main branch.
  • Clone TurboETH smart contract boilerplate.
  • Create ERC721 Access Control NFT using Solbase (smart contracts)
  • Create ERC721 AI PFP NFT using Solbase (smart contracts)
  • Create Image Upload Service (application)
  • Create API that communicates with external Dreambooth API (application)

Example Application Template

The Places TurboETH template is good example of how to setup a turbo monorepo that includes independent TurboETH application and smart contract packages.

The WAGMI CLI is used to connect the application and smart contracts. React read, write and events are automatically generated.

Mockups

The initial mockups and ideas are available on Figma and are free to download, copy and update.

combo

@kamescg kamescg changed the title Bounty: AI + NFT Web3 Application (Ethereal Nexus) - 1250 OP Reward Bounty: AI + NFT Web3 Application (Ethereal Nexus) May 19, 2023
@kamescg kamescg changed the title Bounty: AI + NFT Web3 Application (Ethereal Nexus) User Story: AI + NFT Web3 Application (Ethereal Nexus) May 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant