
Mosaic
A decentralized protocol that rewards creators and curators
Demo
About
The Mosaic Content Protocol enables: - **Content Creation**: Creators upload content to IPFS via Lighthouse and register it on ENS domains - **Micropayments**: Users pay to access content with small payments (e.g., 1 cent) - **Curation Staking**: Users stake PYUSD tokens on content they believe will be popular - **Revenue Sharing**: Payment from content consumption is distributed to stakers based on their vault shares - **ENS Integration**: Content is versioned and accessible via ENS text records (e.g., `artist.eth`, `researcher.eth`) ### Content Lifecycle 1. **Creation**: `createContent("bitcoin-whitepaper", ipfsHash, price, commission)` - Deploys dedicated vault for the content - Sets ENS text record: `contentId@1 = ipfsHash` - Creator becomes initial owner 2. **Access**: Users call `buyAccess(contentId)` - Pays PYUSD to content vault - Receives soulbound ERC1155 access token - Gains permanent access to content 3. **Staking**: Users stake PYUSD in content vaults to earn from future access purchases 4. **Updates**: Creators can update content versions: `updateContentVersion(contentId, newIpfsHash)` - Increments version: `contentId@2 = newIpfsHash`
How it's made
### Core Components 1. **ContentAccessToken**: ERC1155 contract managing content creation, access control, and payments 2. **SimpleVault**: ERC4626 vault for staking PYUSD tokens and earning rewards from content consumption 3. **ENS Integration**: Content metadata stored in ENS text records with versioning (`content@version` format) ## 🏗️ Architecture ``` Creator uploads content → IPFS (Lighthouse) → ENS text record → Smart Contract ↓ User pays for access → Mints Access NFT → Payment → Content-specific Vault ↓ Distributed to Stakers ``` ## 🛠️ Technical Stack - **Blockchain**: Ethereum (Sepolia testnet) - **Payment Token**: PYUSD (6 decimals) - **Storage**: IPFS via Lighthouse - **Naming**: ENS text records for content resolution - **Testing**: Foundry framework