Radically fair, radically creator-first
A Web3 membership protocol built on Polkadot that enables creators to monetize directly with 0% platform fees through NFT-based memberships.
FairPass is a decentralized membership platform built on Polkadot that empowers creators to monetize their content directly, without platform fees. Unlike traditional platforms (Patreon, Substack) that take 5-20% cuts, FairPass enables creators to keep 100% of their earnings through blockchain technology and NFT-based memberships.
- High Platform Fees: Traditional platforms charge 5-20% on creator earnings
- No Ownership: Creators don't own their audience data or relationships
- No Liquidity: Fans can't resell or trade their memberships
- Platform Lock-in: Creators are dependent on centralized platforms
- Zero Platform Fees - Creators receive 100% of membership payments
- NFT Memberships - Tradeable, verifiable membership tokens on Polkadot
- True Ownership - Creators own their data, fans own their memberships
- Secondary Market - Fans can resell memberships, creating liquidity and new revenue streams
- Built on Polkadot - Uses Web3 infrastructure for transparency, security, and fairness
- Creator Dashboard - Manage membership tiers, track subscribers, view analytics
- Flexible Tiers - Create custom membership levels with different prices and durations
- Direct Payments - Receive WND (Westend tokens) directly to your wallet, no intermediaries
- Royalties - Earn from secondary sales when fans trade memberships
- Profile Management - Showcase your work and build your brand
- Time-bound Memberships - Automatic expiration based on blockchain timestamps
- Marketplace - Browse and purchase memberships from all creators
- NFT Ownership - Your membership is a tradeable NFT asset
- Secondary Market - Buy discounted memberships or sell yours when needed
- Transaction History - Complete transparency of all purchases on-chain
- My Memberships - Manage all your active subscriptions in one place
- Wallet Integration - Seamless connection with Polkadot.js and SubWallet
- Real Polkadot Integration - Connects to Westend Asset Hub (system parachain)
- Multi-Wallet Support - Polkadot.js extension, SubWallet, and Talisman
- On-chain Payments - Real WND transfers for purchases
- NFTs Pallet Integration - Uses the modern
nftspallet - On-chain Metadata - NFT metadata stored directly on Westend Asset Hub
- Supabase Backend - PostgreSQL database with Row Level Security
- Demo Mode - Full simulation for testing without blockchain transactions
- Verifiable Ownership - All memberships are blockchain-verified assets
- React 18 with TypeScript - Type-safe component development
- Vite - Fast build tool and HMR
- Tailwind CSS - Modern, responsive utility-first CSS
- Lucide Icons - Consistent icon system
- Polkadot.js API (
@polkadot/api) - Core blockchain interaction - @polkadot/extension-dapp - Wallet connection and signing
- @polkadot/util - Cryptographic utilities and formatting
- Westend Asset Hub - Polkadot system parachain with NFTs pallet
- NFTs Pallet - Modern Substrate pallet for NFT operations
- Supabase - Backend-as-a-Service platform
- PostgreSQL - Relational database for creator profiles, tiers, memberships
- Row Level Security - Database-level access control
- ESLint - Code linting and quality
- TypeScript - Static type checking
- Vite Plugin React - Fast Refresh and optimizations
npm install
npm run dev- Click "Connect Wallet" โ "Use Demo Mode"
- Navigate to "For Creators" โ Create profile
- Create a membership tier
- Go to "Marketplace" โ Purchase your tier
- View in "My Memberships"
Note: Demo mode simulates all transactions for instant testing without blockchain setup.
Prerequisites: Polkadot.js extension + Westend testnet WND tokens
- Get tokens from https://faucet.polkadot.io/westend?parachain=1000
- Connect wallet (Real Mode)
- Create profile and membership tier
- Purchase membership โ Real NFT minted on Westend Asset Hub
- Verify on-chain (see Verification section below)
- Node.js 18+ and npm
- Polkadot Wallet: Polkadot Developer Signer (formerly Polkadot.js extension), SubWallet, or Talisman
- Modern web browser (Chrome, Firefox, Brave)
git clone https://github.com/yourusername/fairpass.git
cd fairpassnpm installThe project includes a .env file with Supabase credentials pre-configured:
VITE_SUPABASE_URL=https://your-supabase-url.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-keyNo additional configuration needed for development.
Option A: Polkadot Developer Signer (Recommended)
- Formerly known as "Polkadot.js extension"
- Chrome: https://chrome.google.com/webstore/detail/polkadot%7Bjs%7D-extension/mopnmbcafieddcagagdcbnhejhlodfdd
- Firefox: https://addons.mozilla.org/en-US/firefox/addon/polkadot-js-extension/
Option B: SubWallet
- Download: https://subwallet.app/download.html
- See SUBWALLET_SETUP.md for Westend Asset Hub configuration
Option C: Talisman
- Download: https://talisman.xyz/
npm run devThe app will open at http://localhost:5173
Option A: Demo Mode (Fastest - No Setup)
- Click "Connect Wallet" โ "Use Demo Mode"
- Simulated 100 WND balance
- All features work without blockchain
- Good for testing UI/UX
Option B: Real Mode (Actual Blockchain)
- See QUICK_TEST.md for 1-minute setup
- Get test tokens: https://faucet.polkadot.io/westend?parachain=1000
- Real NFT minting on Westend Asset Hub
-
Connect in Demo Mode:
- Click "Connect Wallet"
- Click "Use Demo Mode" button
- โ Instant connection with simulated 100 WND balance
-
Test All Features:
- โ Create creator profile
- โ Create membership tiers
- โ Mint NFTs (simulated)
- โ Transfer memberships (simulated)
- โ All transactions are fake but realistic
-
Use Cases:
- UI/UX testing
- Demo presentations
- Development without blockchain dependencies
-
Install Polkadot.js Extension (see Prerequisites)
-
Get Test Tokens:
- Direct Asset Hub Faucet: https://faucet.polkadot.io/westend?parachain=1000
- Enter your wallet address
- Complete captcha
- Receive 100 WND on Asset Hub instantly
-
Connect to FairPass:
- Click "Connect Wallet"
- Approve connection in extension
- Balance should show ~100 WND
- QUICK_TEST.md - 1-minute quickstart
- WESTEND_SETUP.md - Understanding Asset Hub vs Relay Chain
- SUBWALLET_SETUP.md - SubWallet-specific configuration
- Network: Westend Asset Hub (System Parachain 1000)
- RPC Endpoint:
wss://westend-asset-hub-rpc.polkadot.io - Token: WND (Westend DOT)
- NFTs Pallet: Available on Asset Hub (not Relay Chain)
After purchasing a membership, you can verify the NFT exists on Westend Asset Hub:
-
Via Polkadot.js Apps:
- Go to https://polkadot.js.org/apps/?rpc=wss://westend-asset-hub-rpc.polkadot.io#/chainstate
- Select
nftspallet โitem(u32, u32) - Enter your collection ID and item ID (displayed after purchase)
- Query to see owner address, metadata, and details
-
Via Transaction Explorer:
- Copy transaction hash from the purchase confirmation
- Visit https://westend.subscan.io/
- Paste hash to see on-chain confirmation and block details
-
Via Your Wallet:
- Open Polkadot.js extension or SubWallet
- View NFT in your account's assets/collectibles section
- Confirm ownership and metadata
-
Create Your Profile:
- Navigate to Creator Dashboard
- Click "Create Your Profile"
- Enter name, bio, and avatar URL
- Click "Save Profile"
-
Create Membership Tiers:
- Click "Create New Tier"
- Set tier name (e.g., "Bronze", "Gold", "Platinum")
- Set price in WND (e.g., 10 WND)
- Set duration in days (e.g., 30 days)
- Add benefits description
- Optionally set max supply and royalty %
- Click "Create Tier"
-
Manage Subscribers:
- View active memberships in dashboard
- Track revenue and subscriber count
- Monitor tier performance
-
Share Your Page:
- Copy your creator profile URL
- Share on social media
- Fans can purchase directly from your page
-
Browse Marketplace:
- Navigate to Marketplace
- Use filters (price, duration, creator)
- Discover creators and their tiers
-
Purchase Membership:
- Click on any tier card
- Review benefits and price
- Click "Purchase Membership"
- Approve transaction in wallet
- NFT is minted to your wallet
-
View Your Memberships:
- Navigate to My Memberships
- See all active and expired memberships
- Check expiration dates
- View transaction history
-
Secondary Market:
- List memberships for resale
- Buy discounted memberships from others
- Creators earn royalties on secondary sales
fairpass/
โโโ src/
โ โโโ components/ # React components
โ โ โโโ WalletConnect.tsx # Wallet connection modal
โ โ โโโ Navigation.tsx # Top navigation bar
โ โ โโโ ...
โ โโโ contexts/ # React Context providers
โ โ โโโ WalletContext.tsx # Wallet state management
โ โโโ lib/ # Utility libraries
โ โ โโโ polkadot.ts # Polkadot.js integration (NFTs pallet)
โ โโโ pages/ # Route pages
โ โ โโโ CreatorDashboard.tsx
โ โ โโโ Marketplace.tsx
โ โ โโโ MyMemberships.tsx
โ โ โโโ ...
โ โโโ App.tsx # Main app component
โ โโโ main.tsx # Entry point
โโโ fairpass-docs/ # Documentation
โ โโโ DEMO_VIDEO_SCRIPT.md # Video demo script
โ โโโ POLKADOT_DEVEX_FEEDBACK.md
โ โโโ HACKATHON_ANSWERS.md
โ โโโ NFT_INTEGRATION.md
โ โโโ ...
โโโ public/ # Static assets
โโโ supabase/ # Supabase schema and config
โโโ WESTEND_SETUP.md # Westend Asset Hub setup guide
โโโ SUBWALLET_SETUP.md # SubWallet configuration guide
โโโ QUICK_TEST.md # Quick testing guide
โโโ .env # Environment variables
โโโ package.json # Dependencies
โโโ tsconfig.json # TypeScript config
โโโ vite.config.ts # Vite config
โโโ README.md # This file
{
"@polkadot/api": "^16.5.2",
"@polkadot/api-contract": "^16.5.2",
"@polkadot/extension-dapp": "^0.62.3",
"@polkadot/util": "^13.5.8",
"@polkadot/util-crypto": "^13.5.8",
"@supabase/supabase-js": "^2.57.4",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"lucide-react": "^0.344.0"
}{
"@vitejs/plugin-react": "^4.3.1",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
"typescript": "^5.5.3",
"vite": "^5.4.2",
"tailwindcss": "^3.4.1",
"autoprefixer": "^10.4.18",
"postcss": "^8.4.35",
"eslint": "^9.9.1",
"typescript-eslint": "^8.3.0"
}npm installnpm run devnpm run buildBuild output will be in dist/ directory.
npm run previewThe app can be deployed to any static hosting service:
- Vercel:
vercel --prod - Netlify: Drag
dist/folder to Netlify - GitHub Pages: Push
dist/togh-pagesbranch - IPFS: Upload
dist/to IPFS for decentralized hosting
- Full UI/UX implementation with Tailwind CSS
- Real Polkadot wallet connection (Polkadot.js, SubWallet, Talisman)
- Westend Asset Hub integration
- Real WND transfers for payments
- Real NFT minting with NFTs pallet (migrated from deprecated Uniques)
- On-chain metadata storage
- Complete database architecture with Supabase
- Demo mode for testing without blockchain
- Transaction history tracking
- Creator profiles and membership tiers
- Marketplace with filters
- My Memberships dashboard
- Secondary marketplace with listing, purchasing, and royalty calculation
Phase 1: Enhancements
- IPFS integration for images and rich metadata
- Secondary market smart contract
- Creator royalties on resales
- NFT gallery view
- Advanced filtering and search
Phase 2: Production
- Mainnet deployment (Polkadot/Kusama)
- Multi-chain support (parachains)
- Mobile wallet support (Nova, Fearless)
- Content delivery integration
- Mobile apps (iOS/Android)
Phase 3: Scale
- Decentralized governance (DAO)
- Creator verification system
- Discovery algorithms
- API for third-party integrations
- Cross-chain bridges
Solution: You likely used the Relay Chain faucet instead of Asset Hub faucet.
- Use the direct Asset Hub faucet: https://faucet.polkadot.io/westend?parachain=1000
- See WESTEND_SETUP.md for details on Relay Chain vs Asset Hub
Solution: SubWallet needs to update network metadata.
- See SUBWALLET_SETUP.md for step-by-step fix
- Method 1: Update via Polkadot.js Apps โ Settings โ Metadata
- Method 2: Toggle Westend Asset Hub OFF/ON in SubWallet
- Method 3: Reload SubWallet extension
Solutions:
- Check internet connection
- Disable VPN/firewall temporarily
- Alternative RPC:
wss://westend-asset-hub-rpc.dwellir.com - Try demo mode to test app without blockchain
Common causes:
- Insufficient balance (need at least 2-5 WND for NFT operations)
- Wrong network (must be Asset Hub, not Relay Chain)
- Wallet approval cancelled
Why this happens: If you have MetaMask installed, it tries to auto-inject on all pages, even though FairPass uses Polkadot wallets.
Solution: This error is harmless and suppressed automatically. FairPass only uses Polkadot wallets (Polkadot.js, SubWallet, Talisman), not MetaMask. You can safely ignore this or disable MetaMask extension while using FairPass.
- Check browser console (F12) for detailed error messages
- Try demo mode to isolate if issue is blockchain-related
- Refer to documentation in
fairpass-docs/folder and setup guides
This project was built for the Polkadot Hackathon with the following goals:
- Demonstrate Real Polkadot Integration: Using Westend Asset Hub, NFTs pallet, and Polkadot.js API
- Solve a Real Problem: 0% platform fees for creator economy
- Showcase Web3 Benefits: True ownership, secondary markets, transparency
- Provide Developer Value: Clear documentation and feedback on Polkadot DX
- โ Real blockchain integration (not just mockups)
- โ NFT minting on Westend Asset Hub
- โ On-chain payments and transfers
- โ Multi-wallet support (Polkadot.js, SubWallet, Talisman)
- โ Demo mode for easy testing
- โ Comprehensive documentation
- โ Developer experience feedback
What makes FairPass stand out:
-
Real Problem, Real Solution
- Addresses the $100B+ creator economy with 5-20% platform fees
- Working prototype with actual blockchain transactions
- Not a proof-of-conceptโproduction-ready foundation
-
Technical Excellence
- Real NFT minting using Polkadot's NFTs pallet (migrated from deprecated Uniques)
- On-chain verification of all memberships
- Hybrid architecture: Web2 performance + Web3 ownership guarantees
- Clean, type-safe TypeScript codebase
-
Polkadot-Native
- Built specifically for Polkadot ecosystem
- Uses Westend Asset Hub system parachain
- Showcases NFTs pallet capabilities
- Ready for mainnet/parachain deployment
-
User-Centric Design
- Demo mode for instant testing (no crypto knowledge required)
- Smooth UX matching Web2 platforms (Patreon-like experience)
- Multi-wallet support with clear installation guidance
- Comprehensive error handling and user feedback
-
Open & Transparent
- Fully open-source with extensive documentation
- Developer experience feedback included
- Easy to test and verify (60 seconds demo, 5 minutes real blockchain)
- Secondary marketplace with tradeable memberships