0xSplits

Posted on Feb 15, 2022Read on Mirror.xyz

0xSplits: The Splits Protocol

Today we’re introducing 0xSplits, the protocol for trustless, composable, gas-efficient splits. It’s non-upgradable, completely free to use, and entirely onchain. 0xSplits is a piece of permanent infrastructure—in the form of a hyperstructure—and it’s live on Ethereum today. Give it a try at split.new.

Each Split is a smart contract that continuously splits incoming funds among recipients according to preset ownership percentages

Splits are foundational building blocks upon which onchain collaboration will flourish. Multisends, multisigs, DAOs—they’re all fantastic tools, but sometimes what you need is something far simpler, lighter, and more automated. Splits are just that. They’re lightweight, cheap to create, easy to integrate, and extremely composable. Ultimately, they establish trust and remove burden.

When Mirror introduced splits, we were inspired by this simple idea—a contract that continuously splits incoming funds among recipients according to preset ownership percentages. It’s a simple concept with big implications, but we know that simple doesn’t mean easy.

We researched similar contracts to understand their design tradeoffs, spoke with many creators & builders to see what was & wasn’t working, and quickly learned that this problem was unsolved. If you want to share future income with between two and a few hundred recipients, it’s difficult & expensive to do today.

Based on these conversations, we designed 0xSplits protocol around three core principles:

  1. Composability – Splits must be maximally composable so that they can fit into any workflow. By allowing Splits to receive from and send to any Ethereum account (smart contract, EOA, another Split, you name it), they act as effective routing layers within any stack.
  2. Gas optimizations – Splits must not only be cheap to deploy, it must also be cheap for recipients to collect their funds. By batching and incentivizing operations, and allowing users to collect their funds from all their Splits in a single transaction, Splits have high gas efficiency and fairness.
  3. Onchain architecture – for Splits to be a building block, they must be a reliable piece of infrastructure that everyone can depend on, forever, without worrying about breaking changes. By building the protocol with no external dependencies (APIs, third parties, etc) and deploying non-upgradable contracts, both the protocol and each Split will continue to run, maintenance-free, for as long as Ethereum does.

What can you actually do with a split? You can send ETH and ERC20s to the Split’s address, knowing that each recipient will always receive their share. You can have Splits fund other Splits, allowing value to flow many layers deep. You can incentivize Splits, encouraging third parties to distribute funds on behalf of the recipients. You can mutate Splits, by giving one address (a multisig, smart contract, EOA, etc) the ability to change the Split in the future. You can assign a Split an ENS name, making it easy for others to point to it. Most importantly, you can rely on a Split, knowing that it will continue to operate forever – no breaking changes, no potential for censorship, no manual work.

Finally, we think Splits are a great way to fund public goods. Since 0xSplits is a public good itself, we’ve created an inaugural Split that we hope you’ll consider making a small recipient in some of the Splits you create. Donations.0xsplits.eth points to a Split that supports the development of this protocol, while also giving back to the communities and projects that have supported its development to date:

  • ETHGlobal – thank you for all you’ve done for the ecosystem, and for organizing the hackathon that got this project started
  • Zeitgeist – thank you all for the instrumental feedback, tactical advice, and incredible community
  • Mirror – thank you for inspiring and encouraging us to work on this idea
  • Gitcoin Grants – thank you for all the work you do supporting public goods and creating a culture of giving back
  • Ethersjs – thank you for making developing on Ethereum so much easier and approachable

You can give Splits a try today – just head to split.new, it only takes only a few seconds to create one. To learn more about how the protocol works, take a look at the docs, and feel free to reach out at hello at 0xsplits.xyz. We can’t wait to see what you’ll build using Splits.


P.S. – we’re particularly excited about the ability to make a mutable split controlled by a smart contract that references other onchain state. We think there are a ton of uses around purpose-built Splits, so please reach out if this interests you, we’d love to support you.

Recommended Reading