How to set up a Breadfond
In this tutorial I will guide you through setting up a Breadfond on the Tezos blockchain using the TEIA and/or Versum smart contracts.
In this post I will show you how to set up a Breadfond via the TEIA collab contracts. In just a second, you'll have an idea what that actually means and learn about the required steps to create your very own Breadfond. I'll begin with a little bit of context to show how this idea came to be. Here's a little index to help you through the sections:
Setting up breadfonds on different marketplaces:
- Setting up a breadfond on TEIA
- The Top level breadfond contract
- Recent Improvements
- Breadfonds on Versum
- Breadfonds on Fxhash
- Issues and outlook
A bit of context
I wouldn't be writing this post if it weren't for this tweet from Mical Noelson:
Afterwards I retweeted his tweet because I thought that it was a formidable idea and had a lot of potential. Andrew quickly hopped onto the bandwagon in the replies and pointed out that this would be possible via the TEIA collab contracts:
We discussed it a bit more, and Andrew quickly did a little test to see if it was possible to setup such a thing:
And it was indeed possible!
Essentially, what Andrew had done here was a little proof of concept. He minted an NFT via the TEIA collab contract, which upon sale automatically sent and split a portion of the revenue between a set of wallets that he had specified. We'll get into the implications of this in the next sections.
What actually happened here?
So, what did Andrew actually do? The TEIA collaborative contract is generally used by a group of two or more creators to share revenue between them in fixed percentages. However this collab contract doesn't only split revenue generated from the sale of NFTs, but actually any amount of incoming tez that is sent to this contract. Andrew created a collab contract that splits revenue in equal shares between his own wallet address and his two siblings' addresses (33.33% each basically). Now he didn't actually mint his NFT from this collab contract, but rather used the address of this collab contract as a beneficiary within another collab contract. Essentially nesting those two contracts!
Moreover, he created a "top-level" collab that sent 80% of tez to his own address and 20% towards the collab with his siblings. These 20% will then be further split into 3 equal chunks. Here's a little schematic that clarifies this:
What's a Breadfond?
It's important to point out here, that this idea has an analogue in the real world, namely: Broodfonds, which is a concept originating from the Netherlands, and that literally translates to 'Breadfund' in English. In essence, the term defines a group of people that bands together to provide and enable each of it's individual members with financial support during times of hardship. There's a little wikipedia entry about them here.
For instance, when a member falls sick, they will receive donations (or support in other forms) from the other members of this support system until they are able to get back on their feet again. This doesn't necessarily mean that this is how a Breadfund has to behave, it can be setup in many different ways. It all depends on the participating members and the dynamic that is agreed upon. It is based on consensus.
The term “Breadfond” is a mash up of the original dutch term and the english term, and what we rolled with to indicate our version of the concept.
Translating this concept to Tezos
The Breadfond collective is a Tezos version of this concept! Essentially, we will make use of the tools available on the Tezos blockchain to set up a support system that is similar to it's real world analogue (with some differences). More specifically, this will be done by making use of the collab and split contracts that currently exist on the TEIA and Versum NFT marketplaces (as well as others in the future, like fxhash i.e.).
The core idea: each member of a Breadfond voluntarily relinquishes a small portion of the revenue that they generated from the sale of NFTs, and has it automatically sent to a split/collab contract. This contract in turn will automatically and evenly distribute that amount among all members that belong to this particular Breadfond. We'll discuss how to set this up in the next section.
This relinquished portion can be a minuscule percentage >1%. Each user then will have a unique personal Breadfond, essentially a list of people they choose to support for whatever reason. The Breadfond collective is simply the group of people made up of all the people using a Breadfond. We've made a little discord for everyone that would like to discuss these matters further or to find a Breadfond to be part of.
Setting up a Breadfond on TEIA
Now to the nitty gritty! In this section we'll go over how a Breadfond can be set up via the TEIA collab contract. First off, you'll have to make sure that you're synced on TEIA with one of your wallets.
A quick note here, while creating the Breadfond, it doesn't really matter from which one of your wallets you create it, this collab will only act as an intermediary that will split whatever it receives in tez with all the beneficiaries that you add to it. You'll have to decide if you want to have these collab contracts linked to your main wallet, or linked to a separate dedicated one that holds all your collab contracts.
Next, go and click on the hamburger menu in the top right corner and you should be met with a menu as such:
Now click on collaborate and you'll be taken to a new page that might have some entries already if you've collaborated with someone before:
Or alternatively is empty if you haven't done so yet:
For now, we'll shift our attention towards the 'create' tab and click on it. You should see something like this:
We can skip this for now (since there will be no core collaborators in this collab), and proceed to the next screen that allows you to add beneficiaries:
Here we will click on "add address manually" and add the wallet addresses that we would like to belong to our Breadfond. You'll see something that says "[object Object]" which you can safely clear and replace with the addresses you'd like to add:
In the shares field ideally you would put the number '1', which means that this beneficiary will receive exactly one share of the tez inbound to this collab address (except if you for some reason would like certain beneficiaries to obtain larger shares).
We can add arbitrarily many beneficiary addresses to the collab, each of which will be set to receive one share.
To exemplify, I'll add in some of my own wallet addresses so that we can proceed:
After we've added all of our beneficiary addresses we'll be taken to a review screen where it will show us how the percentages will be split between beneficiaries:
Now we can hit "create collaborative contract" and verify with our wallet. It's important to note that the gas fees for creating this contract are pretty high at this point (~5$) which is not too bad since we only have to do this step two times in total (once now, and a second time to set up the top level contract):
After confirming the transaction we'll be taken back to our overview of collab contracts and we should be seeing a new entry that has a rather lengthy name. In this view you can choose into which collab you want to sign in. Once you're signed into one of your collabs you can click again on the hamburger menu and click on profile. If you're signed in to a collab you will be able to change the profile information of that collab.
If you want you can update this information now. One last thing is that you should grab the address of this contract and save it somewhere, we're gonna need it in a second!
You can find the address by clicking "more detail" in the manage view. And this essentially concludes this part of the tutorial.
Setting up the top level Collab on TEIA
In this part we're largely going to repeat the same steps that we've taken before, with some slight, but important differences. First, let's make sure that we are synced with the correct wallet that we want to create this collab contract from. This is important because we are going to mint our NFT from this wallet address. We'll repeat the same steps as before, but after arriving at the create tab of the collab contract, we're gonna want to add a core collaborator this time, instead of just skipping. And this core collaborator will be none other than ourselves, make sure that this is the wallet that you want to mint your NFT from, we will add our own wallet address (the one with which we are synced right now) into one of the core collaborator fields:
Then in the beneficiary field we'll input the address of the Breadfond contract we created just a second ago:
And then we proceed to the review screen again. Note that you can add a different split of shares, depending on how large a chunk of your sales you want to go towards the breadfond!
Now you can return to your "Manage" view, sign in and edit your profile information. And that's about it regarding setup, now we're ready to mint an NFT! The next step would then be minting an NFT from the collab contract, which is relatively straightforward. You proceed as you usually would when minting an NFT on TEIA, the only difference here is, by being core collaborators, we need to sign the NFT before we can do anything with it.
One problematic aspect of being part of a breadfond is receiving an occasional trickle of tez in your wallet (breadcrumbs). This is undesirable if you want to maintain a tidy wallet and transaction history. @ztepler added a feature that allows collab admins to set a threshold value, which essentially specifies how much tez has to be accumulated in breadfond royalties before they will be dispensed to breadfond members.
There is also an option to withdraw any amount of funds immediately without having to wait for it to trigger.
Creating breadfonds on Versum is also possible, albeit a little different. Due to KYC (Know Your Customer) issues which Versum tries to ensure for artists, TEIA KT1s are problematic. For this reason they are blocked as of now and can not be set as neither collaborator nor royalty beneficiary.
However it is still possible to set up your breadfond by adding each individual address and their corresponding share in the royalties section when minting. Some might prefer doing it this way since it requires several steps on TEIA, nor has it any additional gas fees attached to it. However you would have to copy in multiple addresses in every time you want to make a breadfond piece.
Some discussions have been made about making this step easier by allowing to load in a list of addresses and fill out the fields automatically.
Fxhash v1.0 breadfonds
If you've recently been active in the Tezos NFT space, then you've probably heard about the launch of Fxhash. Fxhash v1.0 now also allows collaborations! Here is the official Fxhash documentation that provides a detailed explanation of how collaboration works.
Contract entry points were not immediately supported at the time of launch, but they are now, you would simply have to add the breadfond address in the primary splits field:
Issues and Outlook
There's a couple of caveats with the way that we're using the collab contracts here. One problematic point is that once created, the list of beneficiary wallet addresses is immutable. This is tricky, because what if you want to add new people to your Breadfond? Or alternatively what if someone wishes to be removed from your Breadfond? The only way right now would be to create a new collab contract alltogether. Hopefully, the more this contract nesting strategy gets used, the better the methods will get.
Another issue is how the minted collab pieces are listed on TEIA. Technically being the sole core collaborator of a piece in top level contract, it should show it with your other personal mints on TEIA, but it will actually put it under the assets page of the collab contract. The same issue also occurs on Objkt.com where the collab mints are listed, but under the collab contract's address.
To conclude, I believe that this is an incredibly interesting way to make use of the tools available on the Tezos blockchain. I haven't seen or heard of anything similar on other chains. And that's pretty much everything I have to say! If there are any changes or updates, I will make sure to include them here. Also big shoutout to Andrew and Mical, and thanks for reading!