Giter Site home page Giter Site logo

mcarlomagno / protosound Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 1.0 13.63 MB

๐ŸŽต ProtoSound is a web3 platform where musicians can upload their songs minting Soulbound Tokens + a collection of NFTs.

Home Page: https://protosound.netlify.app/

Solidity 21.67% TypeScript 77.75% HTML 0.47% CSS 0.11%
chainlink hackathon ipfs polygon web3 nft soulbound

protosound's Introduction

ProtoSound ๐ŸŽต

Contracts tests Client tests Deployment Netlify Status

ProtoSound is a web3 platform where musicians can upload their songs minting a Soulbound Tokens (song + cover) for their profile.

This action will also generate a collection of NFTs song covers generated by the artist that will be randomly assigned to the buyers when they purchase a song.

Running this project

Install dependencies.

yarn install

Compile contracts

yarn hardhat compile

Testing

Run local hardhat node

yarn hardhat node

Add your account private keys and token URIs opening .env or creating one

HARDHAT_ACCOUNT1='...'
HARDHAT_ACCOUNT2='...'
HARDHAT_ACCOUNT3='...'

# For running tests
AUDIO_URI='https://...'
IMAGE_URI1='https://...'
IMAGE_URI2='https://...'
IMAGE_URI3='https://...'

# For testing on Polygon Mumbai
MATIC_ACCOUNT1='...'
MATIC_ACCOUNT2='...'
MATIC_ACCOUNT3='...'

# defines the network to use during deployment
# 'matic' | 'hardhat'
NET='...'

Run tests, by default runs in local hardhat node

yarn hardhat test

Optionally you can run them in Polygon Mumbai

โš ๏ธ It might take several minutes to run all the tests.

yarn hardhat test --network matic

Deployment

Deploy contracts to default network (local hardhat)

yarn hardhat run scripts/deploy.ts 

Or deploy to Polygon Mumbai

yarn hardhat run scripts/deploy.ts --network matic

How it works?

Contracts

The ProtoSound contract allows users to create songs setting a price and minting 3 types of tokens, an AuthorSongCover Soulbound token, an AuthorSongAudio Soulbound token, and a collection of SongCover NFT tokens.

When another user wants to buy and consume a song, after paying the price, one of the mentioned SongCover tokens are randomly selected from the collection and transferred to the buyer. Aquiring a new NFT token plus the song itself.

protosound's People

Contributors

mcarlomagno avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

dontupa

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.