StreamChain is a Twitch-like live streaming platform featuring real-time video streaming, chat, viewer tracking, follow system, and NFT-based achievements.
Built using MERN + WebSockets + RTMP + Blockchain, this project explores real-time systems, Web3 integration, and scalable backend architecture.
- π΄ Live video streaming via RTMP + HLS
- π¬ Real-time chat using Socket.IO
- π₯ Viewer count tracking
- β Follow / Unfollow streamers
- πΌοΈ Custom stream thumbnails
- π§βπ» Profile management (avatar, bio, phone)
- π NFT achievements (First Viewer, OG Supporter, Super Fan)
- π JWT-based authentication
- π¦ MetaMask wallet connection
- βοΈ Stream creation dashboard
streamchain/
βββ client/ # React frontend (Vite + Tailwind)
βββ server/ # Express backend + RTMP + WebSockets
βββ contracts/ # Foundry smart contracts (NFT badges)
βββ README.md
βββ .gitignore1οΈβ£ Clone the Repository
git clone https://github.com/YOUR_USERNAME/streamchain.git
cd streamchain
2οΈβ£ Backend Setup
cd server
npm install
Create a .env file inside server/:
PORT=8000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
Start the backend server:
npm start
3οΈβ£ RTMP + HLS Server In another terminal (inside server/):
node rtmp-server.js
This starts: β’ RTMP server on port 1935 β’ HLS server on port 8001
4οΈβ£ Frontend Setup
cd client
npm install
npm run dev
Frontend will run at:
http://localhost:5173
5οΈβ£ Smart Contracts (NFT Badges)
cd contracts
forge install
forge build
β’ Server URL: rtmp://localhost:1935/live
β’ Stream Key: (generated per stream)
β’ HLS Playback: http://localhost:8001/live/{streamKey}/index.m3u8