Skip to content

feat: Add Airdrop Distribution Agent with MultisendVault integration#40

Open
dominusaxis wants to merge 5 commits intoPayPol-Foundation:mainfrom
dominusaxis:feat/airdrop-agent
Open

feat: Add Airdrop Distribution Agent with MultisendVault integration#40
dominusaxis wants to merge 5 commits intoPayPol-Foundation:mainfrom
dominusaxis:feat/airdrop-agent

Conversation

@dominusaxis
Copy link

Summary

Airdrop Distribution Agent as requested in #4.

Acceptance Criteria — All Met

  • Agent registers on the PayPol marketplace
  • Accepts recipient list in JSON format via job payload
  • Validates all addresses (checksummed, non-zero)
  • Calculates total distribution amount and checks treasury balance
  • Executes batch transfers via MultisendVault contract (100 recipients per tx)
  • Returns detailed receipt with tx hashes and per-recipient status
  • Handles partial failures gracefully (failed recipients tracked individually)
  • Supports dry-run mode (estimate without executing)

Three Operating Modes

  1. dry-run — Validates addresses, calculates totals, returns plan without executing
  2. plan-only — Full plan when no executor key configured (default safe mode)
  3. executed — Actual on-chain batch transfers via MultisendVault

Files

agents/airdrop-distributor/
  src/index.ts       # Main agent (302 lines)
  src/register.ts    # Marketplace registration
  package.json
  tsconfig.json
  .env.example

Uses ethers.js v6, follows contributor-1-treasury patterns exactly.

Closes #4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build an Airdrop Distribution Agent

1 participant