Technical Steps and Requirements
Overview:
- First major step for us will be spinning up a DB as well as the required schemas/data models and routes in an API within our monorepo here.
- Artists pages and Featured page: we will need to build UI for viewing and creating artist pages and associated NFT cards as well as the main Featured artist page
- UI for submitting HYPE to lottery pool and logic for how/when to choose the random winner
- Integration with Mintbase along with alternate versions of UI and data models to accommodate this.
Details:
-
Database: Personally prefered DBs are PostgreSQL or MongoDB though I’m certainly willing to hear out opinions on other options. We would need CRUD routes for each schema/model in a Node.js (REST or GraphQL) API.
Current data models would be as follows:
artist_profile: [{
wallet_address: string,
name: string,
bio: string,
socials: [{icon: string, url: string}, ...],
collection: [featured_id, id2, id3, ...]
}]
nft: [{
id: sequential id,
owner_address: string,
title: string,
market_link: string,
preview_link: string,
description: string
}]
featured_artist: [{
wallet_address: string,
is_current: boolean,
date: number (UTC)},
}]
featured_artist_entries: [{
wallet_address: string,
tickets_entered: number
}]
-
Artist page UI: better mock ups are on the way, for now this basic framework skeleton should do. https://www.figma.com/file/t8IWSRWKE721PO9a8KmToY/HypeDAO-site?node-id=0%3A1
If you are working on this please do not spend much time on the actual styling as it will probably end up being changed and keep everything componentized so we can move the parts around if needed later. -
HYPE promotion pool: The main UI for this will be a submission form, though it would also be cool to to see the all current lottery ticket standings. A warning modal telling the artists they will be spending their HYPE and not get it back even if they lose would probably be appreciated.
In addition to the actual logic for choosing a random winner based upon ticket submissions in a script we will need something along the lines of a cron job to run the script at a specified time. -
Mintbase Integration: The first integration I would like is to be able to turn an NFT card into a mintbase card, using similar UI but with data from the selected Mintbase item as well as the ability to purchase/big on that item. This would need some experimentation but I believe the only thing we would need to chagne data model wise would be to add the following to the NFT model (and UI in the nft creation modal):
is_mintbase_item: boolean,
mintbase_item_id: string
mintbase_store_name (may or may not need this one)
Next Steps
- Adding HYPE as an upvote mechanism for nfts, if integrated with Mintbase, the collector would receive this Hype upon purchase (Thank you @Verbash for the suggestion!)
- Collector leader board page: have stats for collectors so they can brag about the NFTs they’ve collected from HypeDAO artists, hype earned, NEAR spent, etc.
- Collector gallery, similar to artist pages but for collectors to display and view their collections.
- further integration with Mintbase: ability to create a store and mint an item using our custom in house UI