Creating contracts
If you haven't already, we recommend you read the flow of funds page to understand how funds move through the system and the various steps.
Building blocks
There are two core smart contract building blocks upon which all payment flows within 0xSplits are created: Split and Waterfall. You can stack these blocks together in whatever order makes sense for your specific needs. These building blocks are intentionally unopinionated, however, for more opinionated payment flows we've also created Templates, which stack frequently used blocks together.
Split
Split is a smart contract that distributes funds according to pre-set percentages. It's an equity-like structure that can be plugged into any payment flow you need. To create one, just head to split.new (opens in a new tab) and enter in two or more recipients.
You also have the option to set an admin if you anticipate the Split needing to change in the future. Note that the admin has complete authority to add/remove/modify recipients and even change or remove the admin anytime. You can make the admin any address, including a smart contract like a Gnosis Safe (opens in a new tab). Unless you know the Split will need to change, we recommend not adding an admin since a Split is only as trustworthy as the admin.
Editing
The admin may edit the Split at any time. If you are the admin, you will see a message in the Split Recipients section notifying you of this ability. You can either edit the Split (i.e., update the recipients and their shares), or transfer control to a different account. Transferring control is a two-step process, where the new admin needs to accept control after you've initiated the transfer. The admin is also able to remove admin rights entirely, thereby "freezing" the Split in it's current configuration forever.
Waterfall
Waterfall allows you to define the order & amount different accounts are paid. It is a debt-like structure that is useful whenever one account shoud be paid before another account. Waterfall is modular so you can pair it with Splits, which is exactly what the Recoup template does.
A Waterfall has multiple levels called tranches, each with a limit and a recipient. The limit is the maximum amount that recipient will receive, and they receive it only when the previous tranche limit is reached. This pattern continues until all the tranches are filled, at which point any extra funds go to the final tranche recipient.
You can create one by heading to waterfall.new (opens in a new tab) and entering in the permitted token and add as many tranches as you'd like. The above example has two tranches, with the first 500 DAI going to ethglobal.eth and all subsequent DAI going to theprotocolguild.eth.
Templates
Templates are pre-built payment flows that stack two or more building blocks together. Since these are opinionated flows, each template has a dedicated creation form and account detail view in the app.
Recoup
Recoup allows you to repay one group before splitting profits with another. It makes it easy to create a Waterfall that points to a number of Splits. Just enter in the token and amount you wish to recoup, and then add recipients for each tier. As long as there are two or more recipients in a tier, the Recoup will automatically deploy the necessary Split(s) upon creation.
Liquid Split
A Liquid Split utilizes NFTs to represent ownership in a Split, allowing recipients to transfer their shares to others. This works by combining an ERC-1155 NFT contract with a Split, and making the NFT contract the admin of the Split. Whenever funds are distributed within the Split, it looks at the holders of the NFTs and updates the recipients to match.
When you create a Liquid Split, just specify the initial recipients and create the Split as you normally would. Upon creation, each recipient will receive their portion of the 1,000 NFTs minted. For example, if Alice is a 20% recipient, they will receive 200 NFTs (20% of 1,000 = 200). Alice can then transfer their shares however they want.