Spoiler: Many NFT marketplaces such as Opensea don’t provide a way to split revenue and royalty among NFT collection collaborators, and for a good reason. But there is a way, and this article will explain how.
The NFT industry is evolving very fast.
It’s no longer just about a lone artist selling their art as a one off sale, it’s more of a multiplayer experience. It’s not just about the creator but also the collectors and the experience they create together.
As “collaboration” becomes an important part of the NFT ecosystem, we naturally start to think a lot about how to share value among collaborators. More specifically, how do people share revenue from NFTs?
In this article, I will explain how people deal with splitting revenue among NFT collaborators today, and why it’s clunky, and then share a solution that solves all the problems once and for all.
Table of contents:
- Two stages of NFT revenue
- Splitting minting revenue
- Splitting royalty revenue
- Why royalty needs to be split automatically
- The ultimate solution to royalty splitting
- How to split royalty on Opensea
- Multiple splits for a single NFT collection
- Conclusion
1. Two stages of NFT revenue
There are two stages of NFT revenue.
Stage 1: Mint revenue
The first is the initial minting phase. People mint NFTs directly from the contract by paying the minting fee, and all the revenue is stored in the contract. Then once the initial minting is over, whoever is the admin of the contract can later call a “withdraw()” function to withdraw the revenue. From this point, they can maybe split among whoever worked on the NFT project together to launch it.
Stage 2: Royalty revenue
The next stage is what happens AFTER minting. The creators may want to set royalty for their NFTs, so a certain percentage of ALL future sales for ALL the NFT items in the collection will be shared with the creators. This allows for interesting business models such as allowing people to mint for free initially, but generating all the revenue from royalties going forward.
2. Splitting minting revenue
Let’s imagine a scenario:
Here’s a team made up of an artist, a developer, a marketer, and project manager. These 4 people want to split revenue 25% each. How do they do it?
Maybe the project manager could withdraw funds to his wallet, and then send 25% each to the artist, developer, marketer, and himself.
Even though it’s not ideal, this kind of works for the “initial minting revenue”, since the team members are working closely together to launch this project, we can assume the members trust each other at this stage. But what about royalty revenue?
3. Splitting royalty revenue
Let’s look at how royalties work on Opensea:
Opensea lets you set:
- a “percentage fee” (up to 10%)
- a SINGLE payout address
Yes, it is impossible to automatically split royalties for the collections you list on Opensea. Only ONE person can claim royalties. See here to learn more:
This is not just Opensea. The NFT royalty standard that most NFT marketplaces are starting to adopt ALSO only supports 1 recipient only:
As you can see, the schema is the same as what Opensea supports:
- royalty amount
- a single receiver address
You can learn more here:
OK, so what now? We have two questions:
- Why do we even NEED to automatically split royalties? Can’t we just do it manually?
- Is there a way to split royalties automatically?
4. Why royalty needs to be split automatically
Let’s revisit the 4 person team example above.
Maybe the project manager could withdraw funds to his wallet, and then send 25% each to the artist, developer, marketer, and himself.
So,,, what if the project manager guy receives the royalty revenue and keeps splitting them to the others going forward?
In this scenario, the project manager guy needs to keep doing the same “withdraw and split” process every time, forever. And all the members have to keep trusting that the project manager will keep sending them money. Remember, this is royalty we are talking about, which means this is a revenue stream that will exist forever in the future even after you die. What happens if the project manager gets in a car accident? What if he disappears? This is not at all ideal. We can do better.
We need a perpetual royalty splitter machine.
5. The ultimate solution to royalty splitting
What if there is a way to create a magical address that “impersonates” as a single person, but manages all the money splitting logic for all the members?
And what if it was super cheap to set up these addresses?
This is what Moneypipe does.
The gist is, it’s a single address (indistinguishable from any normal wallet address) that represents a group, and all incoming funds are automatically split to the members. You can learn more here:
It’s 100% free to use (just pay the gas fee, which is around $40 ~ $60 depending on when) and you just have to set it up once, connect it to various places, and forget about it. And it will “just work” forever.
6. How to split royalty on Opensea
I will explain how to do this on Opensea but the same principle applies for most other NFT marketplaces.
For the Opensea example, the workflow is as follows:
1. Create a moneypipe
Create a group address on Moneypipe buffer. Just go to https://buffer.moneypipe.xyz and add the collaborator addresses, and set each collaborator’s share visually.
When you broadcast the transaction, it will give you an address. This is the address that represents the group.
2. Add the moneypipe address to Opensea
Go to Opensea collection manager, and copy and paste the group address into the Opensea royalty setter field, and set how much the group will receive (up to 10% of the sales revenue). Then Opensea will keep sending royalty from all future sales to the address:
You can learn more here:
3. Members claim their share of the royalty
Each member can now visit the buffer page and withdraw their share of the entire royalty revenue whenever they want, forever.
No central point of failure, no one to trust, problem solved.
7. Multiple splits for a single NFT collection
Excited yet? You can even go one step further.
Most NFT contracts have a method called withdraw()
that lets the admin withdraw funds to their address. Normally the admin will do what we discussed above: one person withdraws the money, splits them and sends them to the rest of the collaborators, MANUALLY.
Instead of sending manually one by one, we can reuse the moneypipe we created above. The admin can simply send the withdrawn amount to the moneypipe group address, and now the collaborators will have a single place to withdraw BOTH the minting revenue AND the royalty revenue.
What if you want different ratios between minting revenue and royalty revenue? Simple! Just set up two Moneypipes. One for minting revenue splitting, and the other for royalty splitting. Each member will be able to claim through each.
8. Conclusion
Moneypipe is 100% FREE-to-use public utility, and there is no centralized dependency. It’s open source so you can check out the code on Github before using:
Also, I believe something like this needs to be as easy to integrate as possible, so wrote a whole Javascript library to automatically create and manage Moneypipes. Check it out here:
If you have any questions or interested in collaboration, please join our discord:
And follow me on Twitter if you want to stay updated: