Automating distributions

Updated 7 months ago

In order to make the Splits contracts maximally composable and efficient, funds sent to the contract are not immediately transferred to end recipients. Instead, funds sent to the contract are held in the contract’s balance until they are distributed.

The article on distributing balances has more information on this step and how it works.

We recognize this design has tradeoffs—efficiency, composability, and security at the expense of speed—which is why you’re able to add an optional “incentive” to the distribution step. This incentive encourages bots and third parties to distribute balances on behalf of recipients. It does so by paying a portion of the balance (the incentive) in exchange for distributing the balance.

Here’s an example: say there is a 50/50 Split with a 1% incentive. If the Split has a balance of 1 ETH, that means whoever distributes that balance will earn 0.01 ETH (1 ETH x 1% = 0.01 ETH). As long as the cost to perform that distribution is less than 0.01 ETH, anyone can come and claim that profit by distributing the balance.

This incentive is optional since balances can always be distributed manually. Just keep in mind that without an incentive, the only people who will distribute the balance are the recipients themselves.

When and when not to use it

Automatic distributions are a great way to “set it and forget it”, and are particularly useful when the Split will regularly receive small amounts (i.e., referral rewards, protocol fees, NFT royalties, etc). That said, they become wasteful when large amounts are distributed. So, if you plan to distribute large amounts infrequently, we recommend turning off automatic distributions.

Supported networks

There is an ecosystem of bots that perform these distributions immediately upon it becoming profitable to do so. As of writing, we are aware of bots operating on Ethereum, Base, and Optimism. As the Splits ecosystem grows, we expect more bots to emerge.

Still need help? Reach out in /splits, DM us on Twitter, or join our Discord