Back to blog

Songcamp x Splits

Jun 02, 2022
Picture of Abram Dawson
Abram Dawson
Feature image for

Over the past few months, the 0xSplits team participated in Songcamp’s Camp Chaos, an 8-week experiment at the edges of music and crypto. 77 people came together online to create a “headless band”, Chaos, that will collectively release a catalog of music NFTs with unique artwork, a custom minting experience, podcasts, newsletters, and more.

Like many NFT projects, Splits are a core part of the payment infrastructure for Chaos. All revenue generated from primary and secondary sales will flow through Splits and be distributed among participants.

We joined Camp Chaos to build a new product on top of the 0xSplits protocol which allows Chaos members to freely trade into and out of ownership in a Split using NFTs. We’re calling it Liquid Splits, and we’re excited to share it with you today.

Splits & Liquid Splits

Before diving in, let’s quickly run through how a “standard”, or illiquid, Split works. A Split is a payable smart contract that continuously distributes incoming funds among recipients according to ownership percentages.

As an example: Alice and Bob work on a project and decide to evenly split their earnings. To do this, they simply set up a Split contract that says Alice gets 50% and Bob gets 50%. Then they send all earnings from their project to their Split’s address, knowing that 50% of the earnings will always go to Alice and 50% will always go to Bob. These calculations and distributions are handled automatically by the Split contract—no more manual accounting, repetitive and tedious tasks, or ongoing maintenance. In this scenario, Alice and Bob’s shares in the Split are illiquid, since they can only be changed if 1) they previously agreed to make the Split mutable, and 2) they manually change the Split. This is how Splits work today.

Liquid Splits operate fundamentally the same way, with one key difference: recipients of a Liquid Split are represented using NFTs; when the NFTs change hands, the recipients of the Split are updated.

In the Songcamp Liquid Split, there are 1,000 NFTs, each representing 0.1% ownership in the Split. For each NFT someone holds, they’re entitled to 0.1% of the Split’s future income. They can sell or transfer those NFTs as they wish.

Let’s use the same Alice and Bob example as above, except this time using a Liquid Split. When they create their Liquid Split, they decide to split earnings evenly across a supply of 1,000 NFTs. When the Liquid Split is created, they’ll each receive 500 NFTs (50% of the total NFT supply), thus 50% of the Split’s future income.

Later, Alice decides to transfer 250 NFTs to Mallory. Bob’s ownership in the Split hasn’t changed; however, since Alice and Mallory now each own 250 NFTs, they will each receive 25% of the Split’s income (250 / 1000 = 25%).

Using NFTs to represent ownership allows recipients to trade into and out of the Liquid Split as they choose. We think this is a powerful building block that enables a meaningful utility to be attached to NFTs, and we’re already seeing Splits used to do just this. We’re excited to roll it out as a native feature within the app.

Why Build This

This product started with a question Matthew asked us before Camp Chaos began. “Wouldn’t it be cool if the recipients of a Split were updated according to who held the master rights?” Master rights in the music industry entitle the owner to all revenue generated from licensing the content. Today, those rights are illiquid since they’re difficult to buy and sell.

Solving this master rights problem using Splits was easy given how the protocol is designed. A mutable Split has a controller, which can be any Ethereum account: EOA, Gnosis Safe, custom smart contract, etc. The controller just needs to know how to update the Split. All we have to do is set the controller to be an NFT contract, which can update the Split according to ownership of the underlying NFTs.

During camp we worked with Isaac, the lead Solidity developer for Chaos, to spec out how Liquid Splits would integrate with the NFT contract. It was wired up and ready to be tested within a day.

Implications & Next Steps

By pointing all secondary revenue towards a Liquid Split, Chaos becomes an autonomous network that trustlessly distributes onchain value to participants, forever. People who believe Chaos will continue to generate revenue from secondary sales can hold the Liquid Split NFTs and receive a portion of that revenue. It becomes an onchain network that will simply run, trustlessly, forever.

Beyond the implications for Chaos participants, this process was exciting for a few reasons:

  1. This module was very easy to build. All in, it’s about 20 lines of code to add Liquid Split functionality to an ERC 721 or 1155. Most importantly, this requires no modifications to the underlying 0xSplits protocol itself. Liquid Splits exist as independent modules a layer above the protocol.
  2. Building modules is permissionless. Isaac isn’t affiliated with the 0xSplits team, yet he was technically the author of the Chaos contract that contains the original Liquid Split code. We just acted as guides to ensure that the code would function as desired.
  3. There are tons of modules to build. Many community members have come to us with ideas for other modules, each designed to solve a specific problem. Like the Vesting Module. We’ve long-believed Splits to be a powerful building block upon which many interesting and creative tools will be created, and are excited to see this start to play out.

In the short term, there’s a lot of UI work required to integrate Liquid Splits natively into the app. Regardless of technical know-how, soon anyone will be able to deploy their own Liquid Split just like Songcamp. We’ll be adding the code for Liquid Splits to our docs for those inclined to extend their NFT contracts.

Long term, we hope to foster an ecosystem of community-created modules. There’s a lot to learn as we go down this path and we’re excited to dive into this in the coming months. If this interests you, or if you have modules you’d like to build, please don’t hesitate to reach out.

Subscribe for future updates