I’d like to have a conversation about how the IC is a fundamentally different kind of platform than we have had before and how that might enable new ways of financing software.
I have an experiment up at https://hwqwz-ryaaa-aaaai-aasoa-cai.raw.ic0.app/. I hope the financial nature of the experiment doesn’t go against the spirit of this forum. If it does, let me know and I can delete this post. I have a “hidden” code library that is unlocked line by line each time I sell an NFT for ICP. Once all 1600 or so lines have sold the library will be available for everyone to use. You can test that the functions do what they say they are going to do at https://ic.rocks/principal/hdxhu-qqaaa-aaaai-aasnq-cai. The canister that runs the sale is actually already linked from the site and you could theoretically use it now to run a similar sale of a code library as long as you follow the license.
I don’t so much want to talk about the NFT side of this experiment that is admittedly just trying to catch the meme wave. I’d like to talk about the core licenses that I propose at the bottom of the page there and at the github site https://github.com/aramakme/candy_library/tree/main. I’ve tentatively called this the ARAMAKME license after this name I made up. There are three iterations of the license and the work together to provide initial funding and then continuous funding for utility libraries written for the Internet Computer.
There is the:
SOFTWARE License - an open-source license that allows for others to use, change, and modify the code as long as they follow some simple rules about deploying the software that maintains some rewards for the original author(and any future changes are protected as well). The concept is simple. The software keeps track of how many times you call functions and then at certain intervals you need your canister to call back to the funding canister and send a buck. (this amount is configurable according to the license author)
SUPPORT License - this is open-source software that supports software with a SOFTWARE license. The license manager is this kind of license
DISTRIBUTION License - This is a license that you can sell that allows owners to ‘distribute’ the software by encouraging its take up in the software community. As these distributors work with other software writers to include the library, they can include their distribution license and get 20% of the fee allocated to them. The NFTs in the experiment are these kinds of licenses. If you don’t do any work, you get no reward, so I’m hoping they are Howey-test compliant and not a security.
I mostly pulled this together from reading other open-sourced software licenses on the internet and would like the community’s input on what I got right, what needs to be improved, and what I totally whiffed on. (A lawyer probably also needs to weigh in…maybe.)
I’m also fairly certain that the IC may be the only platform where something like this is possible at scale, but I’d love to hear about other platforms where this might work as well.
The key seems to be that value can flow through code and the platform is scalable enough to keep track of the number of calls without impeding the program or making it too expensive to run.
Why do this when we already have OpenSource Software standards? The DFINITY Foundation is financing the creation of a bunch of these libraries with the grants program, but those only go so far and don’t provide a long-term incentive to build the kind of basic infrastructure that is probably necessary. I wanted to try to fix that and maybe finance my ability to develop for the IC full time.