The Other World Cup
CHARMING is a World Cup fan-culture voting product built around one simple idea: FIFA crowns champions on the pitch. $CHARMING crowns charmers in the stands.
Public moments are nominated, voted on, and crowned each round.
Eligibility and daily votes come from stored holder snapshots.
Public content only, adults only, no identity hunting, removals respected.
Product Concept
CHARMING is a World Cup fan-culture voting platform for $CHARMING holders. It turns public matchday moments into daily voting rounds where nominees earn points and countries climb the Standings for the Stands.
- Cinematic landing page and holder dashboard
- Daily fan-culture nominees and voting rounds
- Country leaderboard scoring
- Admin controls for rounds, nominees, votes, snapshots, and winners
Narrative
Every World Cup has two tournaments: one on the pitch and one in the stands. $CHARMING exists for the second tournament, crowning the fan-culture moments that make the world stop scrolling.
- Champions on the pitch. Charmers in the stands.
- The pitch has a scoreboard. Now the stands have one too.
- Rep your colors. Bring the charm. Own the stands.
Holder Journey
Holders connect a Solana wallet, sign a verification message, pass the snapshot check, receive a daily vote allowance from their token tier, and watch the leaderboard update.
- Connect wallet
- Verify ownership with a signature
- Check latest holder snapshot
- Vote daily until the wallet allowance is used
Voting System
Voting is snapshot-based instead of live-balance based. This prevents users from moving tokens between wallets during a round to manipulate results.
- Each vote row counts as 1 vote
- Votes require a live round and eligible snapshot
- Daily allowance is calculated server-side from token balance
- 100k+ $CHARMING holders receive daily votes by tier
Snapshots
Holder snapshots define who can vote and how many daily votes they receive. MVP sources include manual CSV import and mock data, with Solscan or Helius integrations possible later.
- Store wallet, balance, rank, percentage, daily vote allowance, and source
- Track snapshot runs with status, provider, holder count, and errors
- Take snapshots before each round or daily for launch
Safety
CHARMING must stay respectful, public, and fan-culture focused. The product celebrates public matchday aura without encouraging harassment, stalking, or objectification.
- Public content only
- Adults only
- No identity hunting or private information
- No creepy captions
- Removal requests respected
Architecture
The recommended stack is Next.js App Router, TypeScript, Tailwind CSS, Supabase, Solana Wallet Adapter, Recharts, and Vercel deployment.
- Public, dashboard, and admin route groups
- Supabase tables for rounds, nominees, votes, snapshots, country scores, and audit logs
- Service role keys stay server-side only
- Vote submissions are validated server-side
- Free-tier mode uses on-demand wallet snapshots, cached Supabase rows, daily maintenance, and no sitewide realtime polling
Helius Setup
Helius is used server-side for on-demand wallet balance checks. The browser never receives the API key. The active CHARMING mint is VmdfNPzd7A492TBQYp7QpUoBYv2HFpqaL9no3Sopump on Solana mainnet.
- Add HELIUS_API_KEY, SNAPSHOT_PROVIDER=helius, SOLANA_NETWORK=mainnet, and the mainnet NEXT_PUBLIC_CHARMING_CA
- Wallet verification creates or reuses today's cached holder snapshot row
- Daily vote allowance comes from the cached token balance tier
- Use devnet only for isolated test SPL token work
Devnet Testing
Use funded devnet wallets to validate balance detection, token-tier daily voting, vote casting, and leaderboard updates before switching to the real token.
- 150,000 test tokens = 1 vote/day
- 1,250,000 test tokens = 3 votes/day
- 6,000,000 test tokens = 10 votes/day
- 15,000,000 test tokens = 50 votes/day
Admin Control Room
Admin-created nominees are the source of truth for the public app. Visible, safety-confirmed nominees from the active live round flow into the homepage, dashboard, vote page, and leaderboards.
- Add nominees in /admin/nominees
- Use /admin/manual-votes for audited launch testing adjustments
- Hide/unhide nominees to control public visibility after refresh
- Country scores recalculate from real nominee vote rows
Daily Token Tiers
Snapshot still matters. Token balance is read from the latest completed snapshot, vote allowance resets daily, and results are counted as simple daily votes.
