Skip to content

[Airdrop P5] Claim UI + burn #894

@realproject7

Description

@realproject7

Parent: #877
Depends on: #886, #887, #893

Scope

Update /airdrop page to show final campaign results and allow users to claim their PLOT.

Built and tested during Phase 0 test run (#892), reused at actual campaign end.

Campaign End State

When CAMPAIGN_END has passed, the /airdrop page transitions to show:

Final Results

  • Campaign complete badge
  • Final TWAP mcap + milestone achieved (or "No milestone reached")
  • Pool distribution: X PLOT distributed, Y PLOT burned
  • Burn tx link

Claim Section (replaces points panel)

  • If user is eligible:
    • Show allocated amount: "You earned X PLOT"
    • [Claim PLOT] button → calls MerkleClaim.claim(amount, proof)
    • Proof fetched from API: GET /api/airdrop/proof?address=0x...
    • After claim: show "Claimed" + tx link
  • If already claimed: show "Claimed" status + tx link
  • If not eligible: "You did not earn any PLOT in this campaign"

API Addition

GET /api/airdrop/proof?address=0x...

Returns Merkle proof for the user's claim:

{
  "amount": "1150000000000000000000",
  "proof": ["0x...", "0x...", ...],
  "claimed": false
}

Files

  • Update: src/app/airdrop/page.tsx (campaign end state)
  • src/components/airdrop/ClaimPanel.tsx
  • src/app/api/airdrop/proof/route.ts

Acceptance Criteria

  • Page shows final results after campaign end
  • Displays milestone achieved + distribution/burn amounts
  • Burn tx link visible
  • Eligible users can claim via MerkleClaim contract
  • Claim button calls contract with correct amount + proof
  • Claimed status shown after successful claim with tx link
  • Non-eligible users see appropriate message
  • Already-claimed users see claimed status

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent/T3Assigned to T3 builder agentairdropPLOT 10x Airdrop CampaigndesignDesign and UI changes

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions