m31

Superagent skill m31 — Airdrop Intelligence (eligibility · sybil · claim calendar · exit)

SKILL.md

GitHub

m31 — Airdrop Intelligence (eligibility · sybil · claim calendar · exit)

Load ONLY when: eligibility airdrop, skor airdrop, layak airdrop, sybil, anti-sybil, audit wallet sendiri, claim window, jadwal claim, kalender airdrop, vesting unlock, exit plan, kapan jual token, rencana jual airdrop


DOCTRINE — keputusan airdrop = data, bukan feeling

m31 ngubah siklus airdrop jadi keputusan ber-angka di 4 tahap: (1) FARMING → eligibility scorer + sybil self-audit (2) MENJELANG TGE → claim-window watcher (kalender) (3) SETELAH TGE → exit planner Semua tool di sini murni logika (offline, deterministik) — pengambilan data on-chain didelegasi ke m10/hermes. Time SELALU di-inject (TIME.md).

TOOLS (v4.2, net-new)

  • tools/eligibility.py — WalletStats → score_wallet() → skor 0-100 + band + gaps konkret (apa yang kurang) + flags (dormant, no-bridge). Rubric default bisa di-override per-project (Criterion).
  • tools/sybil_audit.py — audit(list[WalletActivity]) → risiko cluster antar-wallet sendiri (funding seragam, timing berdempet, gas/tx kembar, overlap kontrak) + saran de-correlation. Jaring keselamatan operator, BUKAN buat ngecoh proyek orang.
  • tools/claim_watcher.py — ClaimWatcher + AirdropEvent → due(now) (alert H-48/H-2/H-0, fire-once) & upcoming(now) (kalender). now WAJIB di-inject.
  • tools/exit_planner.py — build_plan() → exit ladder (conservative/balanced/degen) + nyesuaiin likuiditas tipis/vesting. Cuma RENCANA — eksekusi via H1 swap + Spend Governor.

ALUR STANDAR

# 1. Layak gak? (data wallet dari m10/hermes RPC, lalu skor offline)
from eligibility import WalletStats, score_wallet
print(score_wallet(WalletStats(tx_count=22, age_days=120, volume_usd=4200,
      unique_contracts=9, distinct_chains=2, active_weeks=7, bridged=True)).report())

# 2. Multi-wallet kebaca sybil gak? (SEBELUM eksekusi paralel)
from sybil_audit import audit, WalletActivity
r = audit([WalletActivity(...), WalletActivity(...)])   # wallet milik sendiri
if r.risk == "high": ...  # ikutin r.advice buat de-correlate

# 3. Kapan claim? (time di-inject dari [RUNTIME CONTEXT])
from claim_watcher import ClaimWatcher, AirdropEvent
w = ClaimWatcher(store="~/.superagent/airdrops.json")
w.add(AirdropEvent("ProjectX","claim_open", ts=..., chain="Base"))
for a in w.due(now): notify(a.message)        # H-48 / H-2 / saat kejadian

# 4. Setelah landing → exit terstruktur (eksekusi tetap via governor)
from exit_planner import build_plan
print(build_plan(10000, profile="balanced", hold_pct=20, liquidity_thin=True).report())

SCOPE & DELEGATION

Butuh m31 Delegasi
Data on-chain wallet (balance/tx/age) konsumsi WalletStats m10 + hermes (RPC/explorer)
Legitimasi project (rug/honeypot) — m11 / tools/rugcheck.py + H4
Eksekusi farming multi-wallet input ke audit m30 + airdrop_runner (WAJIB governor.py)
Eksekusi exit (jual) hasilkan rencana H1 swap + Spend Governor + R9 gate
Alert delivery (telegram/dll) hasilkan pesan m14 / m4

SAFETY RAILS

  • Sybil-audit = buat wallet sendiri (selamatin effort/dana dari sybil filter). Bukan alat menyerang sistem orang.
  • Eksekusi dana apa pun (claim/swap/exit) lewat Spend Governor — gak ada bypass.
  • Time-sensitive (claim/vesting): kalau gak ada Layer 1/2 time source di strict mode → tahan, jangan nebak (TIME.md).
  • Eligibility/exit = estimasi pendukung keputusan, bukan jaminan dapat/cuan. Sampaikan apa adanya.

QUICKSTART

python3 tools/tests/run_tests.sh   # eligibility/sybil/claim/exit semuanya hijau (offline)

🔧 Upgrade: combo m14 buat auto-alert claim harian, m5 buat export skor multi-wallet ke XLSX.