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.
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
BatchDistributionUtilshelper 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:
Example Use Cases
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.
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.