Skip to content

[EPIC] PlotLink Buy-Back Sprint v5 — Airdrop Campaign #1229

Description

@realproject7

Spec: docs/PLOTLINK-diamond-hand-airdrop-5.md · Design: z-design/plotlink-airdrop-final.html

Campaign in one paragraph

Users activate by signing into PlotLink (SIWE) + confirming an X handle (via twitterapi.io) + clicking Follow on @plotlinkxyz, with an optional Farcaster follow that adds a multiplier bonus. Once activated, every PLOT spent on storyline tokens during the 3-month campaign contributes to share of the released pool. Bringing friends multiplies the share (up to 3×). At month 3, the milestone reached by PLOT's FDV determines what fraction of the 200K pool gets released — the rest burns forever.

Three phases

  • Phase A — Activate (one-time, ~3 min): SIWE + X handle + X follow (+ optional FC follow)
  • Phase B — Mine (3 months): PLOT spent on storyline tokens, tracked by existing v1 cron
  • Phase C — Settle (T+3 months): 7-day TWAP → tier → released_pool, Merkle distribution, burn unclaimed

Pool

  • 200,000 PLOT (20% supply) locked via Mint Club Locker on Base for 3 months
  • Sourcing: Project7 ~11% + 9% buyback on bonding curve over 7-day TWAP pre-launch

Milestone tiers (per §4.3)

Tier FDV Released Burned
🥉 Bronze $100K 10% (20K) 90% (180K)
🥈 Silver $1M 30% (60K) 70% (140K)
🥇 Gold $5M 50% (100K) 50% (100K)
💎 Diamond $10M 100% (200K) 0%

Sub-Bronze (FDV < $100K): 0% released, 100% burned.

Phases + tickets

Phase 0 — Operator setup (~0.6d)

Phase 1 — v1 reset + cron fix (~0.8d)

Phase 2 — Backend (~5.8d)

Phase 3 — Frontend (~6.7-7.2d) — all reference z-design/plotlink-airdrop-final.html

Phase 4 — Deploy gates + Reusable test framework (~2.5d)

Test modes (per T2.1 #1236 — RE1 round-12)

Mode Duration Used by Who runs
test-fast 5 min (T4.0 closed per RE1 r35 — no longer used) n/a
test-full 30 min T4.1 manual click-through (RE1 r36) Operator (browser + MetaMask/Coinbase/Rainbow)
prod 3 months Real campaign Real users

Phase 7 — Share virality polish (launch-critical)

Story page OG / share preview fixes — directly impacts airdrop referral conversion (?ref= links rely on share-preview quality).

Both T7.x merge + deploy to production REQUIRED before #1260 T5.2 launch announce. Can run in parallel with Phase 2/3 (independent of activation flow).

Phase 8 — Emergency procedures (added per RE1 r38 operator request)

Phase 5 — Operational (v5 settlement milestone, calendar-driven)

Phase 6 — Settlement (T+3 months, v5 settlement milestone)

Count

1 epic (#1229) + 36 child tickets = 37 open issues total. (T8.1 #1271 added per RE1 r38.) RE1 r35: T4.0 (#1268) closed (deferred per round-35). Milestone breakdown: v5 launch-ready = 33 (epic + 32 children, Phase 0-4 + Phase 7 + Phase 8) · v5 settlement = 5 children (Phase 5-6). New: #1268 T4.0.

Operator action map (RE1 round-9 consolidation)

Before (round-8) After (round-9)
Operator tickets 14 10
Manual deploy-gate items 17 (3 gates × ~5-7 each) ~5 (T4.0 closed per RE1 r35 — operator handles pre-T4.1 checks manually, ~10 items)
Total operator action points ~17 ~12
Net reduction ~30% fewer handoffs

Effort estimate

  • Total dev: ~14.5-15.5 days (RE1 r35: T4.0 closed, -1.5d). Includes T2.7 contract +0.5d + T2.7 Foundry bootstrap +0.2d. Phase 4 dev = 0 (T4.1 is operator-time only).
  • Phase 5-6: calendar-driven, not dev

Risk register

22 risks (R1-R22) documented in §9 of spec. Key items:

  • R2 Sybil activations (Medium-High) — mitigated by 3× cap + UNIQUE X handle + is_blacklisted
  • R9 New MerkleClaim contract bug (Medium per T2.7 diff) — Foundry tests + testnet deploy required
  • R11 Operator misses manual sweep — hard-gated by T2.7 deadline + simplified to one sweepUnclaimed call
  • R17 Settlement sell pressure (Medium) — 30-day claim window staggers entry
  • R18 SIWE wallet compatibility (Medium) — T4.1 test matrix
  • R22 Leaked SIWE signature replay (Low) — bounded scope, 10-min freshness, full EIP-4361 validation

Open questions (resolved at T0.1)

11 open questions in §10. T0.1 also captures: T2.4b config-source (A/B) + T1.1 staging-cron mechanism (A/B/C/D).

Reviews

Spec + tickets passed 39 RE1 review cycles (spec §17-§22 + ticket rounds 6-39). ~120 items applied, 4 pushed back with reasoning. Round-9 consolidated operator workflow (3 ticket merges + deploy gate automation). Round-12 added test-full orchestrator + risk mitigations. Round-13 fixed test timing + cleanup safety guards. Round-14 fixed Supabase project-ref guard + Foundry lib/ collision.

Execution order (RE1 round-32 — partial reorder with operator-gate batching)

T1.4 successfully deferred to launch batch. T1.2 stays at original position because its body explicitly validates pre-T2.2 v1 dirty cron behavior — deferring it would create internal contradiction with T2.2 cleanup. Net: 1 mid-flow operator gate (T1.2) instead of original 2.

Batch A — Operator PREP (front, ~30 min)

Batch B — DEV chain start

  1. T1.1 ([T1.1] Fix airdrop-points cron handler (GET wrapper, no vercel.json edit) #1232) — cron GET wrapper, no vercel.json edit

🙋 Mid-flow operator gate (single — ~15 min)

  1. T1.2 ([T1.2] Production-DB smoke test + wallet-scoped v1 cleanup #1233) — production-DB smoke + wallet-scoped cleanup, validates v1 cron mechanism before T2.2 cleanup begins. CANNOT be deferred — body tests pre-T2.2 v1 dirty output (streak-boosted points + referral rows).

Batch B continued — DEV chain (uninterrupted, ~16d)

HEAD assigns sequentially after T1.2 completes:
3. T2.1 (#1236) — config 3-mode + Supabase types regen
4. T2.2 (#1237) — v1 code cleanup
5. (parallel) T2.3 (#1238) / T2.4 (#1239) / T2.4a (#1240) / T2.4b (#1241) / T2.7 (#1267)
6. T2.5a-f (#1242-#1247) — sequential or parallel by sub-dep
7. T2.6 (#1248) — finalize script
8. T3.0 (#1249) → T3.1-T3.8 (#1250-#1257) — mostly parallel
9. T4.0 (#1268)CLOSED per RE1 r35, deferred (manual T4.1 sufficient)
10. (parallel anytime after T2.1) T7.1 (#1269) → T7.2 (#1270) — share virality polish

Batch C — Operator TEST (after DEV chain, ~3-4 weeks across runs)

  1. T8.1 ([T8.1] Airdrop emergency rollback playbook (3-tier) #1271) — operator writes docs/airdrop-rollback-playbook.md (~0.3d, after T7.2 merges, before T4.1 starts). Reference document for emergency scenarios.
  2. T4.1 ([T4.1] Manual full-cycle launch readiness test (operator click-through) #1258) — manual click-through full-cycle test (~1-1.5h × 2 runs until 2 consecutive PASS within 7 days of T5.2). RE1 r35: no orchestrator, no automated fixture/private-key setup (operator uses local secrets/tools + browser wallets manually), no fixture files — operator clicks via MetaMask/Coinbase/Rainbow + manual Supabase dashboard cleanup.

Batch D — Operator LAUNCH + SETTLEMENT (end, calendar-bound)

  1. T5.1 ([T5.1] Pre-launch buyback (~9% PLOT via TWAP 7 days) #1259) — pre-launch buyback (7-day calendar, manual runbook)
  2. T5.2 ([T5.2] Launch day (lock 200K + public announcement) #1260) — launch day (lock + announce). T1.4 ([T1.4] Production cron registration (deferred to T5.2 launch pre-flight) #1235) is the first pre-flight item inside T5.2 (~5 min: register prod cron in vercel.json); not a standalone step. Safe because T4.x used manual curl, so the prod cron has been intentionally unregistered until this moment.
  3. [3-month campaign window — no dev work, monitor only]
  4. T6.1 ([T6.1] Run finalize script + approve distribution (settlement) #1262) — finalize dry-run + branch decision (NORMAL / SUB-BRONZE / ZERO-RECIPIENT)
  5. T6.2 ([T6.2] Settlement day (deploy contract + fund + announce) #1263) — settlement day (deploy + fund + announce, branch-specific)
  6. T6.5 ([T6.5] At claimDeadline: sweep unclaimed to dead address #1266) — at claimDeadline, sweep unclaimed to dead address

Operator interruption count

  • Before any reorder: 2 mid-flow gates (T1.2 after T1.1, T1.4 after T2.2)
  • After round-32 partial reorder: 1 mid-flow gate (T1.2 only, ~15 min) — T1.4 successfully deferred via manual-curl pattern in T4.x.
  • Total operator touch: prep batch (~30 min) + T1.2 (~15 min) + ~1-2h × 2+ runs + launch+settlement (calendar).

Metadata

Metadata

Assignees

No one assigned

    Labels

    airdropPLOT 10x Airdrop CampaignepicEpic / master ticketsuperseded-by-v6Closed in favor of v6 Base Ecosystem Sprint redesign

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions