Skip to content

Latest commit

ย 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฏ FairDrop - Sybil-Resistant Airdrops on Solana

FairDrop Next.js TypeScript Solana

Fair token distribution powered by on-chain reputation

๐ŸŒ Live Demo ยท ๐Ÿ“บ Video Demo ยท ๐Ÿ”— FairScale


๐Ÿ“บ Demo Video

โ–ถ๏ธ Watch the Full Demo

The demo covers:

  1. โœ… Connecting Solana wallet (Phantom)
  2. โœ… Fetching FairScore from FairScale API
  3. โœ… Linking X/Twitter for social score boost
  4. โœ… Viewing tier benefits and score breakdown
  5. โœ… Claiming an airdrop with tier multiplier
  6. โœ… Cooldown system and claim history
  7. โœ… Score improvement tips and leaderboard

๐ŸŒŸ Overview

FairDrop is a sybil-resistant airdrop platform that uses FairScale reputation scores to distribute tokens fairly on Solana. Instead of equal distribution that rewards bot farms, FairDrop allocates tokens based on your on-chain reputation.

The Problem

Issue Impact
๐Ÿค– Sybil Attacks Bots create thousands of wallets to farm airdrops
โš–๏ธ Unfair Distribution Real users compete with fake accounts
๐ŸŽญ No Trust Layer No way to distinguish legitimate participants
๐Ÿ’ธ Wasted Tokens Projects lose value to farmers, not users

The Solution

FairDrop uses FairScale's FairScore to create merit-based distribution:

  • โœ… Gate access based on reputation tiers
  • โœ… Multiply allocations for trusted wallets (up to 3x)
  • โœ… Apply dynamic cooldowns based on trust level
  • โœ… Show score improvement tips to help users grow

๐Ÿ—๏ธ Architecture Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                              FairDrop Frontend                               โ”‚
โ”‚                          Next.js 14 + React + TypeScript                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚  โ”‚    Wallet      โ”‚    โ”‚   FairScale    โ”‚    โ”‚    Airdrop     โ”‚            โ”‚
โ”‚  โ”‚   Connection   โ”‚โ”€โ”€โ”€โ–ถโ”‚   API Client   โ”‚โ”€โ”€โ”€โ–ถโ”‚    Manager     โ”‚            โ”‚
โ”‚  โ”‚   (Phantom,    โ”‚    โ”‚                โ”‚    โ”‚                โ”‚            โ”‚
โ”‚  โ”‚   Solflare)    โ”‚    โ”‚  /score        โ”‚    โ”‚  Tier Gating   โ”‚            โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚  /fairScore    โ”‚    โ”‚  Multipliers   โ”‚            โ”‚
โ”‚         โ”‚              โ”‚  /walletScore  โ”‚    โ”‚  Cooldowns     โ”‚            โ”‚
โ”‚         โ”‚              โ”‚  /socialScore  โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ”‚         โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜             โ”‚                     โ”‚
โ”‚         โ”‚                      โ”‚                      โ”‚                     โ”‚
โ”‚         โ–ผ                      โ–ผ                      โ–ผ                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚  โ”‚    Solana      โ”‚    โ”‚   FairScore    โ”‚    โ”‚     Claim      โ”‚            โ”‚
โ”‚  โ”‚    Web3.js     โ”‚    โ”‚   Processing   โ”‚    โ”‚    History     โ”‚            โ”‚
โ”‚  โ”‚                โ”‚    โ”‚                โ”‚    โ”‚  (LocalStorage)โ”‚            โ”‚
โ”‚  โ”‚  - PublicKey   โ”‚    โ”‚  - Score 0-1000โ”‚    โ”‚                โ”‚            โ”‚
โ”‚  โ”‚  - Signing     โ”‚    โ”‚  - Tier Calc   โ”‚    โ”‚  - Records     โ”‚            โ”‚
โ”‚  โ”‚                โ”‚    โ”‚  - Badges      โ”‚    โ”‚  - Timestamps  โ”‚            โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ”‚                                                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                           External Services                                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚  โ”‚   FairScale    โ”‚    โ”‚     Solana     โ”‚    โ”‚    Solscan     โ”‚            โ”‚
โ”‚  โ”‚      API       โ”‚    โ”‚     RPC        โ”‚    โ”‚    Explorer    โ”‚            โ”‚
โ”‚  โ”‚                โ”‚    โ”‚                โ”‚    โ”‚                โ”‚            โ”‚
โ”‚  โ”‚ api.fairscale  โ”‚    โ”‚   Devnet /     โ”‚    โ”‚   Transaction  โ”‚            โ”‚
โ”‚  โ”‚    .xyz        โ”‚    โ”‚   Mainnet      โ”‚    โ”‚     Links      โ”‚            โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ”‚                                                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Data Flow

User Connects Wallet
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Fetch FairScore   โ”‚โ—„โ”€โ”€โ”€ FairScale API (/score?wallet=xxx&twitter=yyy)
โ”‚ from FairScale    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Calculate Tier    โ”‚     Score 0-299 โ†’ Bronze (1x)
โ”‚ from Score        โ”‚     Score 300-599 โ†’ Silver (1.5x)
โ”‚                   โ”‚     Score 600-849 โ†’ Gold (2x)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     Score 850-1000 โ†’ Diamond (3x)
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Display Airdrops  โ”‚     Filter by tier requirements
โ”‚ + Allocations     โ”‚     Calculate: base ร— multiplier
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Process Claim     โ”‚     Check cooldown (tier-based)
โ”‚                   โ”‚     Save to claim history
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”Œ FairScale API Integration

FairDrop deeply integrates FairScale at its core - not just for display, but for all business logic.

API Endpoints Used

Endpoint Purpose Example
GET /score Full score + breakdown + badges Main dashboard data
GET /fairScore Quick score lookup Leaderboard updates
GET /walletScore On-chain activity score only Analytics
GET /socialScore Social reputation score X/Twitter boost

Integration Code

1. Main API Client (src/lib/fairscale.ts)

const FAIRSCALE_API_BASE = "https://api.fairscale.xyz";

export async function getFairScoreFromAPI(
  walletAddress: string,
  apiKey: string,
  twitterHandle?: string
): Promise<FairScoreResponse> {
  // Build query with optional Twitter handle
  const params = new URLSearchParams({ wallet: walletAddress });
  if (twitterHandle) {
    params.append("twitter", twitterHandle);
  }

  const response = await fetch(
    `${FAIRSCALE_API_BASE}/score?${params.toString()}`,
    {
      headers: {
        "fairkey": apiKey,  // FairScale API authentication
        "Content-Type": "application/json",
      },
    }
  );

  const data: FairScaleAPIScoreResponse = await response.json();
  
  // Transform API response - scale 0-100 to 0-1000
  return {
    wallet: data.wallet,
    fairScore: Math.round(data.fairscore * 10),
    tier: mapTier(data.tier),
    badges: data.badges.map(transformBadge),
    breakdown: {
      walletScore: data.fairscore_base,
      socialScore: data.social_score,
      walletAgeDays: data.features.wallet_age_days,
      txCount: data.features.tx_count,
      activeDays: data.features.active_days,
      platformDiversity: data.features.platform_diversity,
      // ... more features
    },
  };
}

2. Tier-Based Access Control (src/components/AirdropList.tsx)

// Airdrops are gated by minimum tier requirement
const canAccessAirdrop = (airdrop: Airdrop): boolean => {
  if (!tier) return false;
  const tierOrder = ["bronze", "silver", "gold", "diamond"];
  const userTierIndex = tierOrder.indexOf(tier.name);
  const requiredTierIndex = tierOrder.indexOf(airdrop.minTier);
  return userTierIndex >= requiredTierIndex;
};

3. Allocation Multipliers (src/lib/fairscale.ts)

// Higher FairScore = larger allocation
export function calculateAllocation(baseAmount: number, fairScore: number): number {
  const tier = getTierFromScore(fairScore);
  return Math.floor(baseAmount * tier.multiplier);
}

// Tier multipliers
export const TIERS = {
  bronze:  { minScore: 0,   multiplier: 1.0 },
  silver:  { minScore: 300, multiplier: 1.5 },
  gold:    { minScore: 600, multiplier: 2.0 },
  diamond: { minScore: 850, multiplier: 3.0 },
};

4. Dynamic Cooldowns (src/lib/fairscale.ts)

// Trust reduces wait time between claims
export function getCooldownHours(tier: TierName): number {
  switch (tier) {
    case "diamond": return 0;   // No cooldown - max trust
    case "gold":    return 6;   // 6 hour cooldown
    case "silver":  return 12;  // 12 hour cooldown
    case "bronze":  return 24;  // 24 hour cooldown
  }
}

5. Social Score Integration (src/components/Dashboard.tsx)

// Users can link their X/Twitter handle to boost score
const handleTwitterSubmit = async () => {
  localStorage.setItem(TWITTER_STORAGE_KEY, twitterInput);
  setTwitterHandle(twitterInput);
  
  // Refetch score with Twitter handle included
  const result = await fetchFairScore(
    publicKey.toBase58(),
    twitterInput  // Passed to FairScale API
  );
  setScoreData(result);
};

API Features Used

FairDrop uses these FairScale API features:

Feature API Field How We Use It
Fair Score fairscore Main score (0-1000 scaled)
Wallet Score fairscore_base On-chain activity component
Social Score social_score X/Twitter reputation boost
Wallet Age features.wallet_age_days Display in breakdown
Transaction Count features.tx_count Activity metric
Active Days features.active_days Consistency metric
Platform Diversity features.platform_diversity DeFi exploration
Conviction Ratio features.conviction_ratio Holding behavior
Badges badges[] Achievement display
Tier tier Access gating

๐ŸŽฎ Features

Reputation-Based Allocation

Tier FairScore Multiplier Cooldown Benefits
๐Ÿฅ‰ Bronze 0-299 1.0x 24h Basic access
๐Ÿฅˆ Silver 300-599 1.5x 12h Early access
๐Ÿฅ‡ Gold 600-849 2.0x 6h Priority + Exclusive drops
๐Ÿ’Ž Diamond 850-1000 3.0x None VIP + Governance

Core Features

Feature Description
๐Ÿ” Tier-Gated Access Only eligible wallets can claim specific airdrops
๐Ÿ“ˆ Dynamic Multipliers Higher reputation = larger token allocations
โฑ๏ธ Smart Cooldowns Trust level reduces wait times between claims
๐Ÿ“Š Score Breakdown Transparent view of how your score is calculated
๐Ÿ† Achievement Badges Visual recognition of on-chain accomplishments
๐Ÿ“œ Claim History Track all your claims with transaction links
๐Ÿ’ก Improvement Tips Personalized suggestions to boost your score
๐Ÿ… Leaderboard See how you rank against other users
๐ŸŽš๏ธ Eligibility Simulator Preview what you unlock at different score levels
๐Ÿ“ค Social Sharing Share your score on X/Twitter

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Solana wallet (Phantom recommended)
  • FairScale API key (Get one here)

Installation

# 1. Clone the repository
git clone https://github.com/z0neSec/FairDrop.git
cd FairDrop

# 2. Install dependencies
npm install

# 3. Set up environment variables
cp .env.example .env.local

Configuration

Edit .env.local:

# Required: FairScale API Key
NEXT_PUBLIC_FAIRSCALE_API_KEY=your_api_key_here

# Optional: Solana RPC URL (defaults to devnet)
NEXT_PUBLIC_RPC_URL=https://api.devnet.solana.com

Running the App

# Development mode (with hot reload)
npm run dev

# Production build
npm run build
npm start

Open http://localhost:3000 in your browser.


๐Ÿ“ Project Structure

FairDrop/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css          # Global styles + Tailwind
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx           # Root layout with providers
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx             # Main page component
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ Navbar.tsx           # Navigation + wallet button
โ”‚   โ”‚   โ”œโ”€โ”€ HeroSection.tsx      # Landing hero section
โ”‚   โ”‚   โ”œโ”€โ”€ HowItWorks.tsx       # Feature explanation
โ”‚   โ”‚   โ”œโ”€โ”€ Dashboard.tsx        # Main dashboard (score + airdrops)
โ”‚   โ”‚   โ”œโ”€โ”€ ScoreDisplay.tsx     # FairScore visualization + breakdown
โ”‚   โ”‚   โ”œโ”€โ”€ AirdropList.tsx      # Airdrop cards + claim logic
โ”‚   โ”‚   โ”œโ”€โ”€ ScoreImprovementTips.tsx  # Personalized tips
โ”‚   โ”‚   โ”œโ”€โ”€ ShareScore.tsx       # Social sharing
โ”‚   โ”‚   โ”œโ”€โ”€ Leaderboard.tsx      # Top users ranking
โ”‚   โ”‚   โ”œโ”€โ”€ EligibilitySimulator.tsx  # Score preview slider
โ”‚   โ”‚   โ”œโ”€โ”€ PlatformStats.tsx    # Platform metrics
โ”‚   โ”‚   โ””โ”€โ”€ Footer.tsx           # Footer links
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ fairscale.ts         # โญ FairScale API integration
โ”‚   โ”‚   โ””โ”€โ”€ utils.ts             # Helper functions
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ providers/
โ”‚       โ””โ”€โ”€ WalletProvider.tsx   # Solana wallet context
โ”‚
โ”œโ”€โ”€ public/                       # Static assets
โ”œโ”€โ”€ .env.example                  # Environment template
โ”œโ”€โ”€ tailwind.config.ts            # Tailwind configuration
โ””โ”€โ”€ package.json                  # Dependencies

๐Ÿ› ๏ธ Tech Stack

Category Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS
Animations Framer Motion
Blockchain Solana Web3.js
Wallet Solana Wallet Adapter
Reputation FairScale API
Deployment Vercel

๐ŸŒ Deployment

Deploy to Vercel (Recommended)

Deploy with Vercel

  1. Click the button above
  2. Connect your GitHub account
  3. Add environment variable: NEXT_PUBLIC_FAIRSCALE_API_KEY
  4. Deploy!

Manual Deployment

# Build for production
npm run build

# The output is in .next/ folder
# Deploy to any Node.js hosting provider

๐Ÿ”ฎ Future Roadmap

  • On-chain claim transactions with SPL tokens
  • Project dashboard for airdrop creators
  • Merkle proof verification for large drops
  • Multi-chain support (EVM via FairScale)
  • DAO governance integration
  • Real-time score updates via WebSocket
  • Mobile app (React Native)

๐Ÿ“„ License

MIT License - see LICENSE for details.


๐Ÿ™ Acknowledgments


Built with ๐Ÿ’š for the FairScale Hackathon 2026

๐ŸŒ Live Demo ยท ๐Ÿ”— FairScale ยท ๐Ÿฆ Twitter

About

Sybil-Resistant Airdrop Platform - A smart airdrop distribution tool that uses FairScale API

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages