Skip to content

Commit

Permalink
Small changes and README update
Browse files Browse the repository at this point in the history
  • Loading branch information
luloxi committed Sep 20, 2024
1 parent 023b5e1 commit 4d67fcf
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 65 deletions.
28 changes: 0 additions & 28 deletions BACKEND.md

This file was deleted.

54 changes: 32 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,6 @@ yarn start

Visit your app on: `http://localhost:3000`. You can interact with your smart contract using the `Debug Contracts` page.

# Roles within the platform

- Artists
- NFT collectors (buy, sell, auction, collect)
- Marketplace owner (one address, could be a DAO in the future)
- Free users (watch, listen, in the future may consume ads)

# Roadmap

- To see detailed development info, [see here](https://lulox.notion.site/TECHNAI-3458ad216e8c40a9b4489fe026146552?pvs=74)
Expand Down Expand Up @@ -157,35 +150,52 @@ Visit your app on: `http://localhost:3000`. You can interact with your smart con

# Completed product description

Technai is a Web3-based marketplace that empowers artists to mint and monetize their work as NFTs while providing collectors with unique investment opportunities.

Our mission is to break down the barriers for artists and collectors by providing an easy-to-use platform that fosters creativity, collaboration, and sustainable income through digital art. The platform solves the problems of high minting costs for artists, lack of continuous royalties, and limited cross-chain interoperability, allowing for a more inclusive and connected NFT ecosystem.

## Background

- Project started on [Aleph Hackathon](https://www.aleph.crecimiento.build/es-aleph-hackathon)
- This repo was started with `npx create-eth@latest` with Foundry and integrated with the contracts and frontend from [github.com/luloxi/technai-marketplace](https://github.com/luloxi/technai-marketplace)

## Deployed artifacts

### Frontend
## Roles within the platform

### Contracts
- Artists: Mint, remix, and earn royalties from NFTs.
- NFT Collectors: Buy, sell, auction, and collect NFTs while benefiting from features like batch buying and cross-chain transfers.
- Marketplace Owner: A central entity (or DAO) that manages marketplace fees and operations.
- Free Users: Explore, watch, and listen to content, with future plans to include ad-supported music streaming.

## Features

🎶 **Music player**: This music player allows listening to onchain music, creating playlists, liking songs, all from your desktop or your mobile with our PWA.
🎨 **Simple Mint**: A cost-free minting solution for artists where the first minter sponsors the collection’s minting costs. The sponsor receives a share of royalties on all future sales, creating opportunities for art investors. The marketplace takes a 5% fee on first mint transactions.

TBD -> If you listen to music you don't own, an ad will play once in a while to pay to the artists.
🔄 **Remixing Feature**: Allows artists to remix existing art and share royalties with the original artist. This promotes creative collaboration, where both the remixer and the original creator benefit from the sales of the remix.

📊 **Artist Dashboards**: Provide real-time insights for artists, such as statistics on how many times their NFTs have been viewed, liked, played (for music), etc.
✅ **Royalties**: Artists can set royalties on their NFTs, earning passive income on future sales. In the case of Simple Mint, first minters also earn a percentage of royalties on all sales within the collection.

🎨 **Simple Mint**: A way for artists to upload and mint their collections for free, where a first minter sponsors the collection minting costs and gets a share of the royalties of all the NFTs minted in that collection. This creates a market for art investors being eager to first mint a piece of art they like.
🎶 **Music Player**: A full-featured on-chain music player that supports playlists, song likes, and playback on mobile and desktop via our PWA. Ads play for users streaming music they don’t own, providing additional income for artists.

The complete cost for first minters consists in the price of 1 NFT plus the gas costs of the deployment transaction. The marketplace collects 5% of each first mint price.
🌐 **Cross-Chain NFTs**: Seamless cross-chain NFT transfers using Chainlink's CCIP, allowing artists to extend their reach and access new markets.

**Royalties**: Artists have an option to set a royalty. This royalty is paid to the artist every time the NFT is sold through a market that supports the royalty standard, creating a passive income stream for artists.
🪄 **Token Gated Content**: NFT holders get exclusive access to perks like backstage passes, special events, and live event rewards.

In the case of Simple Mint, the first minter of a collection gets a share of the royalties of all the NFTs minted in that collection.
📦 **Batch Buying**: A cost-saving feature that allows users to purchase multiple NFTs in a single transaction, reducing gas fees.

📈 **Royalty and Revenue Tracking**: Let artists track their royalties, sales, and revenue in an easy-to-understand interface.
🔒 **Web 2.5 Login**: Users can create profiles using familiar Web2 accounts like Twitter, Google, or Instagram, making onboarding easier. This auto-generates a crypto wallet for seamless interaction with the marketplace.

🌐 **Cross-Chain NFTs**: We allow artists and collectors to easily bridge their NFTs between blockchains, and thus access other marketplaces. We offer this functionality for NFTs minted on our marketplace by leveraging the Chainlink CCIP (Cross-Chain Interoperability Protocol).
🤝 **Social Features**: Build a personal profile, like NFTs, follow artists, message collectors, comment on pieces, and receive notifications about new drops from your favorite creators.

🔄 **Remixing Feature**: Take another artists piece and remix it. Then upload specifying what piece you remixed, and you can be displayed as a remixer artist on the art piece you remixed. The creator of the original piece will receive a percent of the royalties of the remix.
👩‍🎤 **Artist NFTs (Limited Edition)**: Special artist NFTs that grant holders VIP experiences like backstage access, event invites, and more.

🤝 **Social Features**: You can create your own profile, like NFTs, get notifications on your favorite artists, message with other collectors and artists, comment on NFTs, and much more!
🎓 **Educational Content**: A comprehensive onboarding experience, including video tutorials and step-by-step guides, to help users unfamiliar with NFTs, minting, or Web3 get started.

📊 **Artist Dashboards**: Artists can view real-time insights into their NFTs' performance, including views, likes, and plays (for music), giving them deeper analytics into their work.

📈 **Royalty and Revenue Tracking**: A simplified interface for artists to monitor royalties, sales, and overall revenue, providing a clear view of their earnings and growth trajectory.

## Deployed artifacts

### Frontend

### Contracts
15 changes: 12 additions & 3 deletions packages/nextjs/app/myProfile/_components/NFTCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,20 @@ export const NFTCard = ({ nft }: { nft: Collectible }) => {

{/* Tab Content */}
{activeTab === "artwork" && (
// Render all combined content (artwork, info, actions) here
<div>
<figure className="relative">
{/* eslint-disable-next-line */}
<img src={nft.image} alt="NFT Image" className="h-60 min-w-full" />
{/* Check if image is IPFS or external URL */}
<img
src={
nft.image
? nft.image.startsWith("ipfs://")
? nft.image.replace("ipfs://", "https://ipfs.io/ipfs/")
: nft.image
: "https://via.placeholder.com/300" // Fallback image
}
alt="NFT Image"
className="h-60 min-w-full"
/>
</figure>
<div className="card-body space-y-3">
{nft.animation_url && (
Expand Down
8 changes: 4 additions & 4 deletions packages/nextjs/contracts/deployedContracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract";
const deployedContracts = {
31337: {
SimpleMint: {
address: "0x4bf010f1b9beda5450a8dd702ed602a104ff65ee",
address: "0x70bda08dbe07363968e9ee53d899dfe48560605b",
abi: [
{
type: "constructor",
Expand Down Expand Up @@ -320,7 +320,7 @@ const deployedContracts = {
},
},
MockNFT: {
address: "0x40a42baf86fc821f972ad2ac878729063ceef403",
address: "0x26b862f640357268bd2d9e95bc81553a2aa81d7e",
abi: [
{
type: "constructor",
Expand Down Expand Up @@ -940,7 +940,7 @@ const deployedContracts = {
},
},
MockUSDC: {
address: "0x96f3ce39ad2bfdcf92c0f6e2c2cabf83874660fc",
address: "0xa56f946d6398dd7d9d4d9b337cf9e0f68982ca5b",
abi: [
{
type: "constructor",
Expand Down Expand Up @@ -1397,7 +1397,7 @@ const deployedContracts = {
},
},
Marketplace: {
address: "0x986aaa537b8cc170761fdac6ac4fc7f9d8a20a8c",
address: "0x5d42ebdbba61412295d7b0302d6f50ac449ddb4f",
abi: [
{
type: "constructor",
Expand Down
16 changes: 8 additions & 8 deletions packages/nextjs/utils/simpleNFT/nftsMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ const nftsMetadata = [
image: "https://ipfs.io/ipfs/QmdsAeLoVrhu9APcXZuTGfnptgSrty2rfUULr5bqEEotLK",
animation_url: "https://ipfs.io/ipfs/QmfF1jkVp339GXh5VtuYF3Kj4wLfKfYieQ8zp47LQWM8RP",
attributes: [
// {
// trait_type: "Artwork",
// value: "abstract",
// },
{
trait_type: "Artwork",
value: "abstract",
},
{
trait_type: "Reproduction Type",
value: "mp3",
Expand Down Expand Up @@ -85,9 +85,9 @@ const nftsMetadata = [
},
// {
// description: "So delicate.",
// external_url: "https://austingriffith.com/portfolio/paintings/", // <-- this can link to a page for the specific file too
// // external_url: "https://austingriffith.com/portfolio/paintings/", // <-- this can link to a page for the specific file too
// image: "https://austingriffith.com/images/paintings/flamingo.jpg",
// animation_url: "https://ipfs.io/ipfs/QmfF1jkVp339GXh5VtuYF3Kj4wLfKfYieQ8zp47LQWM8RP",
// animation_url: "https://ipfs.io/ipfs/QmfF1jkVp339GXh5VtuYF3Kj4wLfKfYieQ8zp47LQWM8RP",
// name: "Flamingo",
// attributes: [
// {
Expand All @@ -106,9 +106,9 @@ const nftsMetadata = [
// },
// {
// description: "Raaaar!",
// external_url: "https://austingriffith.com/portfolio/paintings/", // <-- this can link to a page for the specific file too
// // external_url: "https://austingriffith.com/portfolio/paintings/", // <-- this can link to a page for the specific file too
// image: "https://austingriffith.com/images/paintings/godzilla.jpg",
// animation_url: "https://ipfs.io/ipfs/QmfF1jkVp339GXh5VtuYF3Kj4wLfKfYieQ8zp47LQWM8RP",
// animation_url: "https://ipfs.io/ipfs/QmfF1jkVp339GXh5VtuYF3Kj4wLfKfYieQ8zp47LQWM8RP",
// name: "Godzilla",
// attributes: [
// {
Expand Down

0 comments on commit 4d67fcf

Please sign in to comment.