Feature Request
I'd like to contribute a Spraay batch payment plugin for the Python SDK, enabling SK agents to batch-send ETH or ERC-20 tokens to up to 200 recipients in a single transaction on Base.
Why
Batch payments are a common onchain operation for DAOs, teams, and AI agents — payroll, airdrops, bounties, and reward distributions. As AI agents increasingly handle financial operations, having a native plugin for efficient batch payments enables Semantic Kernel developers to build payment automation without deep blockchain expertise.
What
A SpraayBatchPaymentPlugin class with four @kernel_function methods:
| Function |
Description |
batch_eth |
Send equal ETH to multiple recipients |
batch_eth_variable |
Send variable ETH amounts per recipient |
batch_token |
Send equal ERC-20 tokens to multiple recipients |
batch_token_variable |
Send variable token amounts per recipient |
Features:
- Up to 200 recipients per transaction
- ~80% gas savings vs individual transfers
- Automatic ERC-20 token approval handling
- Chain ID verification, 10% gas buffer
- All parameters use
Annotated type hints for LLM function calling
- Environment-based config (RPC URL, private key)
Protocol: Spraay — Contract 0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC on Base Mainnet.
Prior art: This tool has already been merged into Google ADK and published as a Strands Agents extension.
I have a working implementation with unit tests ready to submit as a PR. Happy to discuss the best location in the repo and any design feedback before opening the PR.
Feature Request
I'd like to contribute a Spraay batch payment plugin for the Python SDK, enabling SK agents to batch-send ETH or ERC-20 tokens to up to 200 recipients in a single transaction on Base.
Why
Batch payments are a common onchain operation for DAOs, teams, and AI agents — payroll, airdrops, bounties, and reward distributions. As AI agents increasingly handle financial operations, having a native plugin for efficient batch payments enables Semantic Kernel developers to build payment automation without deep blockchain expertise.
What
A
SpraayBatchPaymentPluginclass with four@kernel_functionmethods:batch_ethbatch_eth_variablebatch_tokenbatch_token_variableFeatures:
Annotatedtype hints for LLM function callingProtocol: Spraay — Contract
0x1646452F98E36A3c9Cfc3eDD8868221E207B5eECon Base Mainnet.Prior art: This tool has already been merged into Google ADK and published as a Strands Agents extension.
I have a working implementation with unit tests ready to submit as a PR. Happy to discuss the best location in the repo and any design feedback before opening the PR.