« All posts

Fan Loyalty Streaks Move to Solana, Immune to App Resets

Loyalty Ledger stores fan check-in streaks and badges as Solana program accounts, so no app owner can reset, inflate, or delete a fan's history.

Loyalty Ledger is a hackathon project that moves fan loyalty tracking off centralized databases and onto Solana. When a user connects a wallet, picks a team, and checks in, the action writes to a program-owned PDA (Program Derived Address) account via an Anchor program instead of a row the app controls. That means streak counts, tier levels, and check-in history can't be faked, inflated, or wiped by the app itself. The FIFA World Cup flow is fully on-chain, while other sports like NBA are clearly labeled as stubbed demos rather than hidden as fake.

The technical centerpiece is the account design keyed to wallet, sport, and team, plus a leaderboard built on top of it. Early on, sport and team existed only as PDA seeds, which made queries like 'rank all Argentina fans' impossible since seeds can't be enumerated backwards. The developer moved those fields into the actual account data, enabling a real getProgramAccounts-based leaderboard filtered by sport and team — a change that required a full program redeploy mid-hackathon.

Solana was chosen specifically because sub-second confirmations and near-zero fees make frequent, low-value check-ins practical rather than gimmicky. An unplanned side effect of using PDAs instead of a database: any third-party app that knows the program ID — a ticketing platform, a streaming service — can read a fan's loyalty record directly and build on it without needing permission or API access, something a typical database-backed app can't offer.