Fractionalize Streaming Royalties
Learn how to easily offer fractionalized streaming royalties to customers of your distribution business. Fractionalizing royalties is an innovative way to incentivize fan participation and engagement.
Last updated
Learn how to easily offer fractionalized streaming royalties to customers of your distribution business. Fractionalizing royalties is an innovative way to incentivize fan participation and engagement.
Last updated
This tutorial is intended for music distribution businesses. It uses the SHARE App and SHARE SDK to integrate realtime fractionalized royalty payments into your existing distribution stack. If you already support adding royalty payees, integrating SHARE is as simple as adding a few lines of code. Prerequisites include setting up a business account, funding your account with a small amount and obtaining an access token for the SHARE SDK.
Fractionalizing ownership is a proven way to increase engagement and fun within communities. It's been used in industries like horse racing for decades, and the idea has been discussed at length within the music industry with the advent of the sharing economy.
SHARE provides a simple solution by fractionalizing the revenue stream at the payments layer, rather than fractionalizing the IP ownership at the copyright layer. This means people can participate in the fun of revenue sharing and tradable splits, without the legal complexities around copyright ownership.
This guide is structured into three sections: 1. Steps your customers take to get started, which happen outside of your platform. 2. Steps that happen at royalty split creation time, which happen within your platform. 3. Steps that happen at payout time, which happen within your platform.
Here we're going to walk through a 6 step process to create a smart contract that can receive payouts. It requires no coding. Typically, an artist or a member of their team would take these steps to create the contract used to share earnings with fans.
Go to the SHARE App dashboard and press the Create button on the top right.
Select Community Splits. Here, we're going to create a smart contract that can receive payouts and fractionalize them among a large group of payees.
Enter the following simple contract details:
Title: MY SPLITS CONTRACT
Description: Join this smart contract to share revenue with me on my new release. There are 10 splits available.
Creator Name: YZ
You can leave everything else as the default value.
Enter the value 0.10 in the Distributions field. This specifies the payout increment for payees. In this case, payees will be notified for every $0.10 earned.
Press Create. After a minute or so, your smart contract will be created and ready for use. You can tap the View Standalone Splits Link button to see the shareable link that artists can distribute to fans in order to receive splits.
Go to Assets. You'll see the latest contract at the top of the list. Copy the ID value and save it in a notepad. This ID is the value your customers will use as a payee for royalty splits at royalty split creation time.
Done. You now have a smart contract that can act as a payee for royalty payouts within your distribution stack. Next we'll go over how customers enter this payee at royalty split creation time.
Using the following APIs, at royalty split creation time, your customers can enter a contract ID instead of an email address as the payment recipient. Let's validate that the contract specified by the ID exists. Use the cURL command below with your contract ID and access token.
Note that success
is true, indicating that this payee represents a valid smart contract. In your stack, this call should be invoked during the Royalty Splits -> New Royalty Split -> Add Payee flow. When a customer is prompted to enter the email address of a payee, they can instead enter the contract ID as a payee. This contract ID should be stored in your system as any other payee would be stored, and will be referenced again at payout time. Only the contract ID needs to be stored.
Let's execute a payout using the contract ID as the recipient. Use the cURL command below with your contract ID as the recipient_id, and with your access token.
The idempotency_key
is an optional value that guarantees calls execute only once, e.g. in the event of a retry within your system. In production you should always supply a unique idempotency key. For example, you can use a UUID V4 value here.
Let's query the server to check on the status of the payout using the batch_id.
Done. You've now distributed realtime payouts to a smart contract, which will instantly route payments to payees. Over time, even as payees change within the contract, your system will continue to distribute payments to the correct stakeholders.
Payments made using the Share API are instant, irreversible and final. Payments should not be made until the API caller is confident that there is no fraud on the metric used to determine the payment amount.
Splits contracts used as a payout recipient require verified identities. In order to join splits and receive payments, payees must verify using email and SMS based 2FA.
Payment conversion to local currencies and tax compliance is done in partnership with Beam. Payees cash out from the Formless Network using a process known as off-ramping, in partnership with Beam. Beam converts cryptocurrency into USD safely, securely, and efficiently, and sends straight to bank accounts.