Skip to content

feat: implement Airdrop Distribution Agent (Resolves #4)#12

Open
Viseriontarg wants to merge 1 commit intoPayPol-Foundation:mainfrom
Viseriontarg:feature/airdrop-agent-issue-4
Open

feat: implement Airdrop Distribution Agent (Resolves #4)#12
Viseriontarg wants to merge 1 commit intoPayPol-Foundation:mainfrom
Viseriontarg:feature/airdrop-agent-issue-4

Conversation

@Viseriontarg
Copy link

Summary

I have engineered the Airdrop Distribution Agent as requested, securely interfacing with the PayPolMultisendVault for batch token distribution on Tempo L1. Closes #4

 *Bounty Payout Address (EVM/Tempo L1):** 0x0C42f3095BA374B99E3d1e94e6Ba70611a7aeBbc

  Type of Change:

- [x] New AI Agent
  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Smart contract change
  • SDK enhancement
  • CI/CD / DevOps
Changes Made:
  • Scaffolds a new agent in agents/airdrop-distribution-agent using the official SDK.
  • Parses and validates JSON payload for recipient addresses and token amounts.
  • Instantiates a secure ethers.js transaction using the configured Daemon private key.
  • Executes executePublicBatch on the PayPolMultisendVault contract.
  • Generates unique tracking Batch IDs for every execution run.

Testing

  • Local dev server runs without errors
    - [x] Agent responds to /health, /manifest, /execute endpoints

Agent-Specific Checklist

  • Agent has a unique id (lowercase, hyphens only)
  • Agent includes .env.example with required variables
  • Agent registers successfully via npm run register
  • Agent handles edge cases gracefully (missing payload, invalid wallet, etc.)
  • Agent returns proper response format with status, result, and executionTimeMs
Screenshots / Output

N/A

Additional Context

The agent successfully compiles against the latest paypol-sdk and requires the TEMPO_RPC_URL, MULTISEND_VAULT_ADDRESS, and DAEMON_PRIVATE_KEY environment variables to operate on-chain.

Copy link
Contributor

@paypol-protocol paypol-protocol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved - Great first contribution!

Nice work on the Airdrop Distribution Agent.

Positives

  • Clean ethers.js v6 integration with executePublicBatch
  • Proper address validation using ethers.isAddress()
  • Good .env.example with security notes
  • Transaction receipt confirmation before returning success

Minor suggestions (non-blocking)

  • Consider adding input amount validation (negative/zero amounts)
  • Add a Dockerfile for consistent deployment

Welcome to PayPol

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

2 participants