Skip to content

Feature: Add BatchDistributionUtils for multi-recipient ERC20 transfers via Spraay Protocol #706

Description

@plagtech

Problem

Aave governance payloads and treasury operations frequently involve distributing ERC20 tokens to multiple recipients — grant disbursements, contributor payments, ecosystem incentives, and bounty payouts. Currently these require either individual transfer calls or custom one-off batching logic per proposal.

There is no reusable utility in aave-helpers for batch ERC20 distributions, despite this being a recurring pattern alongside the existing CollectorUtils, Bridges, and Swaps helpers.

Proposed Solution

Add a BatchDistributionUtils helper that integrates Spraay Protocol's batch payment contracts, enabling governance payloads to distribute ERC20 tokens to multiple addresses in a single transaction.

This would sit alongside the existing utilities:

  • CollectorUtils — interacting with the Aave Collector
  • Bridges — cross-chain ERC20 bridge implementations
  • Swaps — Milkman-based swap payloads for treasury management
  • BatchDistributionUtils (proposed) — multi-recipient ERC20 distributions via Spraay

Example Use Cases

  • Grant disbursements: A governance proposal approves grants to 10 recipients — one payload, one transaction
  • Contributor payments: Monthly or quarterly payouts to protocol contributors batched together
  • Ecosystem incentives: Distributing AAVE or stablecoin rewards to multiple ecosystem participants
  • Bug bounty payouts: Batch payment of multiple bounty recipients from the Collector

About Spraay Protocol

Spraay is a batch payment protocol deployed on Base and 14 other chains including Ethereum, Arbitrum, Polygon, and Avalanche — all chains where Aave V3 is deployed.

  • Production on Base and Ethereum mainnet with live revenue from batch tooling
  • Merged into Google ADK (Agent Development Kit) as a core payment integration — PR #95
  • 15 chains supported covering all major Aave deployment chains
  • 0.3% protocol fee per batch
  • See spraay.app and docs.spraay.app for current state

Links

Next Steps

Happy to submit a PR with the Solidity helper contract and Foundry tests if the team is interested. Would follow the existing patterns in CollectorUtils for consistency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions