Parent: #877
Depends on: #882, #883, #885
Scope
Build the user points panel (Section 2) with streak card, point breakdown, and referral management.
Wireframe
┌─────────────────────────────────────────────────┐
│ Your PL Points: 1,250 │
│ Your share: 2.3% of pool │
│ Estimated airdrop (if Gold): 1,150 PLOT ($80K) │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 🔥 Streak: 32 days [Check In] │ │
│ │ Current boost: +20% │ │
│ │ Next tier: 50 days (+30%) │ │
│ │ ██████████████░░░░░ 32/50 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ Breakdown: │
│ Buying: 800 PL (64%) ← +20% boosted │
│ Referrals: 350 PL (28%) ← +20% boosted │
│ Writing: 100 PL (8%) ← +20% boosted │
│ Rating: 0 PL (0%) │
│ │
│ Referred by: @alice (set once) │
│ — or if not set — │
│ Who referred you? [________] [Set] (one-time) │
│ │
│ Your referral link: │
│ plotlink.xyz/airdrop?ref=project7 [Copy][Share]│
│ [Use Farcaster username] (if eligible) │
│ Referred users: 5 │
└─────────────────────────────────────────────────┘
Sub-components
Streak Card
- Current streak count + [Check In] button
- [Check In] triggers SIWE sign →
POST /api/airdrop/checkin
- Active boost % applied to earnings
- Progress bar toward next tier threshold
- Button disabled with "Checked in today" label after daily sign
Point Breakdown
- Table/list of points by action (buy, referral, write, rate)
- Show boost indicator ("← +20% boosted") on rows when streak is active
- Total points, share of pool %, estimated airdrop at each milestone
Referral Section
- "Referred by: @username" display (if set)
- "Who referred you?" input (one-time, only when referral is empty, non-editable after set)
- Your referral link with [Copy] and [Share] (X/Twitter) buttons
- [Use Farcaster username] button (only if wallet has linked Farcaster account and code is not yet set)
- Referred users count
Connect Wallet Prompt
- If no wallet connected, show a prompt to connect wallet to view points
Data Source
GET /api/airdrop/points?address=0x... — returns points, streak, referral info
Files
src/components/airdrop/UserPoints.tsx
src/components/airdrop/StreakCard.tsx
Acceptance Criteria
Parent: #877
Depends on: #882, #883, #885
Scope
Build the user points panel (Section 2) with streak card, point breakdown, and referral management.
Wireframe
Sub-components
Streak Card
POST /api/airdrop/checkinPoint Breakdown
Referral Section
Connect Wallet Prompt
Data Source
GET /api/airdrop/points?address=0x...— returns points, streak, referral infoFiles
src/components/airdrop/UserPoints.tsxsrc/components/airdrop/StreakCard.tsxAcceptance Criteria