A decentralized platform for recording, tokenizing, and managing audio content on the blockchain. Built with Next.js, Ethereum, and IPFS for secure and permanent audio storage.
- 🎙️ Audio Recording: Record audio directly in your browser with real-time feedback
- 🔐 Blockchain Storage: Tokenize your audio as NFTs on the Ethereum blockchain
- 📦 IPFS Integration: Permanent, decentralized storage using Lighthouse and IPFS
- 💼 My Collection: Browse and manage all your tokenized audio recordings
- 🔗 Wallet Integration: Connect with popular wallets using RainbowKit
- 🌐 Multi-Chain Support: Compatible with Base, Avalanche, and testnets
- Next.js 15.3 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- RainbowKit - Wallet connection UI
- Wagmi - React hooks for Ethereum
- Ethers.js - Ethereum library
- Lighthouse SDK - IPFS file storage and encryption
- Hardhat - Ethereum development environment
- Solidity - Smart contract development
- OpenZeppelin - Secure smart contract libraries
- Ethereum - Base blockchain
- Base - Layer 2 scaling solution
- Avalanche - Alternative blockchain support
sonic/
├── app/ # Next.js App Router pages
│ ├── collection/ # My Collection page
│ ├── store/ # Audio recording & tokenization
│ ├── page.tsx # Homepage
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── components/ # React components
│ ├── Footer.tsx
│ ├── header.tsx
│ ├── walletConnect.tsx
│ ├── FeatureTag.tsx
│ └── StatCard.tsx
├── contracts/ # Solidity smart contracts
│ └── SonicIPToken.sol
├── hooks/ # Custom React hooks
│ └── useEthers.ts
├── lib/ # Utility libraries
│ ├── contract.ts # Contract ABIs and addresses
│ ├── audioTokenizationService.ts
│ └── SonicIPToken.sol
├── public/ # Static assets
│ └── assets/
│ ├── background/
│ └── logos/
├── scripts/ # Deployment scripts
├── hardhat.config.js # Hardhat configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies
- Node.js >= 22.0.0
- npm or yarn
- MetaMask or any Web3 wallet
- Lighthouse API Key (for IPFS storage)
-
Clone the repository
git clone https://github.com/hedauav/SONIC.git cd SONIC -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:NEXT_PUBLIC_LIGHTHOUSE_API_KEY=your_lighthouse_api_key NEXT_PUBLIC_RPC_URL=your_ethereum_rpc_url NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=your_walletconnect_project_id
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
- Navigate to the Record page
- Connect your Web3 wallet
- Click the record button and grant microphone permissions
- Record your audio
- Preview and upload to IPFS
- After uploading, enter NFT details:
- Token Name
- Description
- Click "Tokenize & Store on Blockchain"
- Confirm the transaction in your wallet
- Your audio is now an NFT!
- Navigate to My Collection
- View all your tokenized audio recordings
- Play, share, or view on IPFS
- See detailed NFT metadata and storage information
-
Compile contracts
npx hardhat compile
-
Deploy to testnet
npx hardhat run scripts/deploy.js --network base-sepolia
-
Update contract address
Update
CONTRACT_ADDRESSinlib/contract.tswith your deployed contract address
npm run build
npm start- Base Mainnet
- Base Sepolia (Testnet)
- Avalanche
- Avalanche Fuji (Testnet)
| Variable | Description |
|---|---|
NEXT_PUBLIC_LIGHTHOUSE_API_KEY |
API key for Lighthouse IPFS storage |
NEXT_PUBLIC_RPC_URL |
Ethereum RPC endpoint URL |
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID |
WalletConnect project ID |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- Lighthouse - Decentralized storage
- IPFS - InterPlanetary File System
- Filecoin - Decentralized storage network
- RainbowKit - Wallet connection
- Wagmi - React hooks for Ethereum
- OpenZeppelin - Smart contract security
- GitHub: @hedauav
- Project Link: https://github.com/hedauav/SONIC
⚡ Powered by FileCoin & IPFS