This is a practice project to learn Web3 technology.
oneNFS is a music creation Web3 platform. We leverage blockchain technology and advanced encryption to create a fair, transparent, user-centric ecosystem for artists and listeners.
Demo address: https://one-nfs.vercel.app/
Main functions
- Private Playlist : Fully Homomorphic Encryption (FHE) ensures that your listening habits are always yours.
- ? Flexible Ownership : Purchase or Rent Immutable Voice (NFS) - Choose from you!
- ? Creator Control : The artist decides terms, prices and royalties at his own discretion.
- Secondary Market : Creators benefit from every resale and rental.
- Transparent source : Clear ownership history on the blockchain.
Important addresses and transactions
OwnSound contract address (deployed on Polygon Amoy):
0xaD4b216C20Ac6a06D67d03c8176C047BB81CB7A0
Technology stack
- Front-end : Next.js, etherthers.js, Tailwind CSS, Shadcn-ui, Framer Motion
- Backend : Node.js, Express.js, fhevmjs
- Blockchain : Polygon Amoy, Inco FHE, ERC-20 and ERC-721 smart contracts
- Storage : IPFS for decentralized content storage
- Encryption : AES encryption using Inco Fhevm's Full Homomorphic Encryption (FHE) library
- NFT standard : ERC-721 Non-wind sound (NFS)
How it works
- Content creation : Artists upload their audio content to create non-replicable sounds (NFS).
- Ownership : Users can purchase NFS directly or rent NFS at extremely low prices.
- Royalties : Smart contracts automatically distribute royalties for sales and rentals to creators.
- Private playlist : Users create encrypted playlists to ensure platform privacy.
- Secondary Market : NFS is traded on the built-in market and creators can earn share from each sale.
Safety features
- Completely homomorphic encryption to protect playlist privacy
- Blockchain-based ownership verification
- Multi-signature wallet for high-value transactions
- Regular smart contract audit
Get started
- Clone repo
- Install dependencies: Enter the client directory, npm install
- Set the necessary API key and contract address in the .env file
- Run the development server Run the development server