A comprehensive Web3-powered internet radio platform that combines audio streaming, NFT minting, token rewards, and educational content in a beautiful, modern interface.
- Web3 Wallet Integration: Connect with MetaMask, WalletConnect, and other major wallets
- Live Radio Streaming: High-quality audio streaming with modern player controls
- NFT Music Minting: Create and mint audio NFTs with royalty management
- Token Rewards System: Earn BTR tokens for listening and creating content
- Token-Gated Content: Premium content accessible via NFT/token ownership
- Live Crypto Prices: Real-time cryptocurrency market data
- Educational Hub: Curated Web3 learning content with access controls
- BlockTekRadio Tokens (BTR): ERC-20 reward token with listening/creator incentives
- BlockTekRadio NFT: ERC-721 music NFT contract with royalty support
- AccessControl: Token-gated content management system
- Frontend: React 18, TypeScript, Tailwind CSS, Framer Motion
- Web3: Wagmi, Viem, Ethers.js
- Backend: Node.js, Express, IPFS integration
- Blockchain: Multi-chain support (Ethereum, Polygon, Arbitrum, CoreDAO)
- Smart Contracts: Solidity 0.8.19, OpenZeppelin, Hardhat
- Node.js 18+ and npm
- Git
- MetaMask or compatible Web3 wallet
git clone <repository-url>
cd blocktek-radio
npm installcp .env.example .envEdit .env with your configuration:
# Required for blockchain functionality
PRIVATE_KEY=your_private_key_here
INFURA_PROJECT_ID=your_infura_project_id
WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id
# Optional: IPFS file uploads
INFURA_PROJECT_SECRET=your_infura_project_secretFrontend Development:
npm run devBackend Server:
npm run serverLocal Blockchain (optional):
npx hardhat node# Start local blockchain
npx hardhat node
# Deploy contracts
npm run deploy:localhost# Sepolia (Ethereum)
npm run deploy:sepolia
# Mumbai (Polygon)
npm run deploy:mumbai
# CoreDAO Testnet
npm run deploy:corenpx hardhat verify --network sepolia <CONTRACT_ADDRESS>- Connect Wallet: Click "Connect Wallet" in the navigation
- Start Listening: Use the radio player on the home page
- Earn Rewards: Accumulate BTK tokens while listening
- Access Premium: Use tokens/NFTs for exclusive content
- View Dashboard: Track stats, rewards, and NFT collection
- Connect Wallet: Ensure wallet connection
- Mint NFTs: Navigate to "Mint NFT" page
- Upload Content: Add audio files and metadata
- Set Pricing: Configure price and royalty percentages
- Deploy: Mint your NFT to the blockchain
- Smart Contracts: Located in
/contracts/ - API Endpoints: Backend routes in
/server/index.js - Frontend Components: React components in
/src/components/ - Web3 Integration: Wagmi configuration in
/src/config/
GET /api/health- Health checkPOST /api/upload- IPFS file uploadGET /api/crypto-prices- Live cryptocurrency pricesGET /api/stream/:contentId- Audio streamingGET /api/education- Educational contentPOST /api/analytics/listening- Listening analyticsGET /api/user/:address/stats- User statistics
BlockTekToken (BTK)
claimListeningRewards()- Claim tokens for listeningclaimCreatorRewards()- Claim tokens for creatingrecordListeningHours()- Track user activity
BlockTekNFT
mintMusicNFT()- Mint new music NFTgetNFTMetadata()- Get NFT informationroyaltyInfo()- EIP-2981 royalty standard
AccessControl
hasAccess()- Check content access permissionscreateAccessTier()- Define new access levelsregisterContent()- Add token-gated content
The platform supports deployment on multiple EVM-compatible chains:
- Ethereum: Mainnet and Sepolia testnet
- Polygon: Mainnet and Mumbai testnet
- Arbitrum: Mainnet and testnet
- Optimism: Mainnet and testnet
- CoreDAO: Mainnet and testnet
- Responsive Design: Mobile-first, works on all devices
- Dark Theme: Modern Web3 aesthetic with gradient accents
- Smooth Animations: Framer Motion powered transitions
- Interactive Elements: Hover states and micro-interactions
- Accessibility: WCAG compliant design patterns
- Loading States: Skeleton screens and progress indicators
- Smart Contract Security: OpenZeppelin standards
- Access Control: Role-based permissions
- Input Validation: Frontend and backend validation
- Rate Limiting: API endpoint protection
- Secure File Upload: IPFS integration with validation
- Wallet Security: Non-custodial Web3 integration
- User Analytics: Listening time, engagement metrics
- Token Economics: Reward distribution tracking
- NFT Metrics: Minting and trading statistics
- Performance Monitoring: API response times
- Error Tracking: Comprehensive error logging
npm run build
# Deploy dist/ folder to your hosting provider# Set production environment variables
NODE_ENV=production
PORT=3001
# Start production server
npm run server# Deploy to mainnet (ensure sufficient funds)
npm run deploy:mainnet- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check this README and inline code comments
- Issues: Open GitHub issues for bugs and feature requests
- Community: Join our Discord for discussions
- Email: Contact [email protected]
- β Basic radio streaming
- β Wallet integration
- β NFT minting
- β Token rewards
- β Educational content
- π Live streaming for creators
- π Advanced analytics dashboard
- π Mobile app development
- π Social features and chat
- π Governance token functionality
- π Cross-chain bridge integration
- π AI-powered content recommendations
- π Virtual concert hosting
- π Creator monetization tools
- π Enterprise partnerships
Built with β€οΈ for the Web3 community
BlockTekRadio - Where Blockchain Meets Audio