npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sytherax/eth-batcher-contracts

v0.0.3

Published

Set of solidity contracts to do batching payments

Readme

Content

Ethereum SplitSend contract

SplitSend.sol - contract to allow batching payments of ERC20 or Ethers as well as execute function calls to a specific target contract.

This is useful for

  • direct payment of multiple recipient addresses
  • calling a smart contract function (such as withdrawing from a liquidity pool or a call to a dex exchange) and split the resulting payment to multiple recipients in one go.

The solidity code is here.

The contract contains 2 functions to split ethereum or ERC20 tokens and send as a batch, while also allowing to execute a target contract with the payload.

The functions are:

  • function sendEtherToMultipleBeneficiaries(address targetContract, bytes calldata targetMessage, Payment[] calldata _payments) external payable nonReentrant

    • Send ethers to an array of payment struct of payable address and amount.
    • Amount of ether sent to this contract must equal the sum of payment amount of all beneficiaries or entire transaction is reverted.
  • function sendTokenToMultipleBeneficiaries(address targetContract, bytes calldata targetMessage, address tokenAddress, Payment[] calldata _payments) external payable nonReentrant

    • Send ERC20 tokens to an array of payment struct of payable address and amount.
    • The msg.sender must approve this contract to spend at least the total sum of payment amount of all beneficiaries.

Usage

Install the package npm install @sytherax/eth-batcher-contracts in your contracts npm folder.

And use it in your contract for example:

pragma solidity ^0.8.0;
import "@sytherax/eth-batcher-contracts/contracts/SplitSend.sol";

contract MyContract is SplitSend { }

Building

Install Dependencies

npm install

Contract Deployment

If running locally you can execute to deploy all deployments inside deploy folder to localhost network like follows.

npx hardhat deploy --network localhost

If you want to deploy test contracts for the web3 examples to run. You can run all deploys with the tag dev

npx hardhat deploy --network localhost --tags dev

For mainnet launch, you would want to do something like follows:

npx hardhat deploy --network mainnet --tags prod

Testing

npm test