Today we're adding a new type of Split to the app, Liquid Splits. Unlike standard Splits where ownership is controlled, Liquid Splits use NFTs to represent ownership. This gives control of the Split to recipients themselves by allowing shares to be easily transferred, either wholly or partially, to anyone else.
If this sounds familiar, it might be because you heard about it first from our collaboration with Songcamp's Camp Chaos. Now we're making it easier than ever to spin up your own Liquid Splits, whether via our UI or inheriting from our abstract contract into your own NFT project.
Mutability is an important feature of Splits today. Over 53% of Splits created are mutable. While mutability provides flexibility, we’ve learned that giving one account—typically an individual or a Gnosis Safe—complete control over the Split comes at a cost. Not only does it require all participants to trust that account, it also puts ongoing responsibility onto that account.
This causes pop-up projects like Songcamp’s Camp Chaos to either make Splits immutable, giving up flexibility in favor of hardness, or introduce governance (i.e., overhead) to decide how the Split can change down the road.
What if the Split could automatically update according to onchain data? This would combine the flexibility of mutability with the hardness of immutability. Enter Liquid Splits.
Liquid Splits use an NFT contract and a mutable Split to automatically update recipients according to NFT holders. This gives recipients the freedom to transfer their share in a Split however they choose—between their own wallets, to friends & family, or to interested parties on Opensea. Projects can have the flexibility of mutable Splits without the overhead or trust required to manage participants.
Since shares are represented using NFTs, tools like Opensea and Rainbow make transferring ownership between accounts incredibly easy. Here’s an example on Opensea. Because Liquid Splits use the ERC-1155 standard, you can batch transfer NFTs, making it easy to transfer entire portions of the Split in a single transaction.
Creating a Liquid Split is easy. Just select Liquid Split as the type on split.new and add recipients like you normally would. As with standard Splits, Liquid Splits have a payable address to which funds can be sent. Per the EIP-1155 standard, recipients in a Liquid Split can be any payable address able to safely receive 1155s. At this time Splits cannot be recipients of Liquid Splits (since they can’t safely receive 1155s) – we’ll be addressing this in an upcoming v2.
A few things happen when you deploy a Liquid Split. First, an ERC-1155 contract is created. Then, a mutable Split is created where the Controlling Address is the 1155 contract. This allows the 1155 contract to modify the Split in the future. Lastly, 1,000 NFTs are minted from the 1155 contract to the recipients. This means a 20% recipient would receive 200 NFTs when the Liquid Split is created. As NFTs change owners, the Split gets updated.
Since the 1155 contract 1) knows the NFT owners and 2) can modify the Split, each time a balance is distributed the 1155 contract updates the Split according to the NFT owners. It's pretty straightforward and uses the updateAndDistribute function to ensure the balance is always distributed to current NFT holders.
You can find the the source code in this Github repo. We’ve also created a template repo that you can fork and add to your own NFT projects (which can then be accessed through our app!). There’s more info in our docs and you can integrate Liquid Splits into your own apps using the SDK.
We're excited to see how people will expand upon this idea. Could the Liquid Split NFTs also be used to represent ownership or voting rights of something else (i.e., something upstream of the Split)? What other onchain data (non-NFT) could be used to control a Split? How could this be used in parallel with tools like Hats Protocol or Coordinape?
As always, thanks for your support and let us know what you think!