
StreamPass
Write your story on-chain, let it live forever.
Demo
About
The problem it solves 🧩 The Problem It Solves The traditional film crowdfunding and reward systems suffer from several limitations: ❌ Lack of transparency: Investors have little visibility into how rewards or earnings are distributed. ❌ Centralized control: Winner selection, reward delivery, and access control are often centralized and not verifiable. ❌ Poor cross-chain and token utility: Most film platforms don't support tokenized assets or multi-chain interaction. ❌ Weak engagement incentives: There's often no fun or identity-based reward to keep investors engaged long-term. ✅ How Stream Pass Solves It Stream Pass transforms the film funding and fan engagement process using blockchain, NFTs, and Chainlink services: 🔗 Tokenized Film Investment Every film is linked to an ERC1155 token. Fans can invest with USDC and receive tokens that represent ownership or support. 🎁 Lottery & Reward System with Chainlink VRF Investors are automatically entered into provably fair lotteries powered by Chainlink VRF, with rewards like NFTs, USDC, and exclusive badges. 🪪 Soulbound Badges Winners and key contributors receive non-transferable NFT badges (SBTs), strengthening community reputation and identity. 🌐 Cross-chain Support (Chainlink CCIP) FilmToken and USDC dividends can be transferred securely across chains like Ethereum Sepolia and Avalanche Fuji. 🔐 Secure Content Access via NFTs Video content is encrypted with Lighthouse and unlocked only for NFT holders using Lit Protocol—ensuring true Web3-based access control. 🧠 Hybrid On-chain & Off-chain Data Metadata and film details are stored on Supabase/IPFS and synced with smart contracts using Chainlink Functions, keeping costs low and data decentralized.
How it's made
Challenges we ran into ### 🎲 1. Achieving Fair and Verifiable On-Chain Lotteries **The Challenge:** How to implement a lottery system that’s fair, tamper-proof, and doesn’t rely on centralized logic. **Solution:** Integrated **Chainlink VRF** to provide verifiable on-chain randomness. I configured subscriptions, adjusted `callbackGasLimit`, and carefully optimized `fulfillRandomWords()` to avoid gas exhaustion and failed callbacks. --- ### 🔐 2. NFT-Based Content Access Control **The Challenge:** How to restrict video access only to users holding specific NFTs or SBTs while keeping the media encrypted and decentralized. **Solution:** Used **Lighthouse** for encrypting and storing video files on IPFS, combined with **Lit Protocol** to define access control conditions. The frontend handles wallet signatures and decryption only if access conditions (e.g., NFT ownership) are met. --- ### 🌉 3. Cross-Chain Asset & Reward Synchronization **The Challenge:** How to synchronize FilmToken and USDC rewards between Ethereum Sepolia and Avalanche Fuji, including gas and LINK fee handling. **Solution:** Implemented **Chainlink CCIP** to transmit secure cross-chain messages and assets. I added support for both LINK and native token fee payments, and built validation mechanisms to ensure states matched across chains. --- ### 🧪 4. Debugging Chainlink Callback Failures **The Challenge:** VRF callbacks would sometimes fail silently due to insufficient gas or edge cases in data handling. **Solution:** Emitted detailed events (e.g., `requestId`, `gasUsed`, `winner`) to trace errors, and used Hardhat to simulate transactions and optimize gas usage. This allowed fine-tuning of callback execution. --- ### 🧱 5. Enforcing Non-Transferable Soulbound Badges **The Challenge:** How to ensure honor badges are soulbound (non-transferable) and one-per-user. **Solution:** Extended ERC721 with custom logic in `_beforeTokenTransfer` to block transfers, and enforced `balanceOf == 0` during minting to prevent duplication. --- ### 🧰 Other Challenges - Designing a Supabase schema that syncs with on-chain token IDs - Separating metadata creation (off-chain) from token minting (on-chain) - Syncing UI state with blockchain confirmations