Hello Zcash Forum friends. I have submitted a grant proposal to take free2z.cash from prototype to reality. This is the proposal.
Elevator Pitch: Free2Z will drive Zcash mass-adoption by making private peer-to-peer giving easy, fast and fun with beautiful content and simple features
Total Request (USD): $123,000
We have received no other funding or grants to date and are not currently seeking any funding from other sources.
Applicant background
Skylar Saveland is a software engineer with more than 15 years experience crafting performant and scalable software solutions. As Director of the MultiCloud Account Automation team at SAP, he has developed automated integrations for the four major cloud providers (AWS, GCP, Azure and AliCloud) for SAP’s 425,000 global customer base. Before his promotion, he wrote key cloud automation software for SAP as Lead Engineer using Golang and developed highly scalable APIs and microservices using Python and Django Rest Framework as well as developing TypesScript UIs using React. Free2Z will essentially be built on the same best-of-the-best FOSS web application stack that Skylar has been working on for 15 years.
Before SAP, Skylar was a Vice President and Backend Software Engineer at JPMorgan Chase, working on build platforms for Chase consumer websites built with Python and JavaScript.
Jonathan Bird, PhD. is a senior software engineer at SAP working on the MultiCloud team developing cloud engineering solutions with TypeScript, Golang and Python. Before SAP he developed Java/Spring Microservices for Identity Verification as a Service at JPMorgan Chase. He previously was UI tech lead for the Chase.com Homepage team leading development on a high-performance website with more than 80 million unique monthly views.
Before Chase, he was CEO of Salud Bucal Universal, a startup in Mexico bringing modern technology and processes to the development and delivery of dental healthcare in Mexico.
Description of Problem or Opportunity
Free2Z unleashes the power of Zcash to make possible direct and private donations to both individuals and content creators. This will transform the online fundraising and content creation industries while driving Zcash adoption on a much larger scale for end-users.
From patients seeking life-saving surgery to disaster relief efforts, online fundraising is changing lives every day. Unfortunately, this useful industry is plagued by intermediaries charging small and large fees, usually rates for using the platform and an additional 2.9%-5% for credit card transaction costs. These fees add up to a significant expense for users; for instance GoFundMe and Fundly charge about 8% to use their service while the total for Kickstarter is closer to 18%.
While many people would like to make private or anonymous donations to the donee of their choice, current technologies make this impossible. For example, GoFundMe requires credit or debit cards to make donations: “you are required to enter the name on the credit card when making donations”
Content creators face a similar problem. In order to be compensated for producing high-quality content, many creators have been placing their content behind paywall websites such as Medium.com. Paywalls are fracturing an already less open internet; forcing creators to decide between sharing their content with a broader audience or trying to get fairly compensated. There are also tipping platforms that allow users to directly support creators but they take a significant cut from creators (like Patreon’s 7.9-14.9% cut) and require collecting Personal Identifiable Information (PII) from donors.
Zcash provides an ideal platform for developing robust solutions to both the problem of fundraising and how to fairly compensate content creators, while cutting out intermediaries and providing security, privacy and optional anonymity for donors. By leveraging the power of Zcash, the Free2Z software engineering team has successfully developed a basic prototype proof of concept. Now Free2Z seeks support from the community to turn this proof-of-concept into an easy-to-use, scalable website that can run forever on solid technical and legal foundations.
Proposed Solution
Free2Z is a private and secure content creation platform that leverages ZEC to allow anyone to share content, receive funds from donors and connect privately with supporters. zPages are the heart of Free2Z. They are web pages where users can format content using Free2Z markdown and embed media from almost any source. Additionally, users can quickly and easily display math equations, add syntax-highlighted code and eventually even zip321 markdown directives.
zPages are only visible to Funded Creators on Free2Z until a small sum (at this writing set at 0.001 Zcash) has been sent to fund the zPage. Once a page is funded (and explicitly published by the creator), the content becomes visible to anyone in the world. The minimum funding requirement is an anti-spam measure that makes it more expensive for bad actors to operate on the site. Zcash is not strictly needed to interact with the site. Users are free to browse pages and create their own zPages without ever having Zcash. Funded members of Free2Z can find unfunded pages and kick in the minimum sum to publish the page. Many creators on Free2Z will likely acquire their first Zcash via z2z transactions from the Free2Z community. Thus, new Zcash holders can be born into the shielded pool without having to purchase Zcash.
Funding a page unlocks the killer feature of zPages: the Creator Peer-To-Peer address (p2paddr). Creators can set a shielded Zcash address as a p2paddr. When a creator is logged in and adds a new zPage, they can add a p2paddr to receive direct, private donations from the Zcash community. When the page is published, the p2paddr is published to the world via API and a convenient user interface which allows anyone to donate to the page and message the creator, privately and without intermediaries. The only fee is the typical 0.00001 ZEC (currently < $0.01) sent to the miners who secure the network.
Free2Z also uses gamification to provide a more engaging experience by continuously re-ranking pages based on their on-chain interactions (funding, upvoting, downvoting, and commenting). The on-chain interactions will also provide an organic, automated, transparent curation mechanism that will tend to put great content at the top and terrible content at the bottom (or all the way down to a special garbage bucket).
Free2Z offers a way for the broader Zcash community to share content and support causes and content creators that they care about while celebrating the privacy and anonymity that is the essence of Zcash.
-
Retail ZEC holders will have a fun app to use ZEC in a newbie-friendly way, adding demand for ZEC and adding new holders.
- ZEC is needed on Free2Z to:
- create pages, fund pages, comment on pages, downvote pages…
- Most creators will choose to use a Zcash shielded address to receive support and messages from supporters. But, creators are free to use other types of addresses.
- ZEC is needed on Free2Z to:
-
Zcash core devs will benefit from Free2z’s early adoption, testing and integration at scale with productive feedback and even upstream changes from the Free2Z team. Free2Z will be a top user of many products in the Zcash ecosystem such as zcashd and plans to be among the first to implement Orchard addresses at scale.
-
Wallet devs will benefit from more users, more feedback, more QA and upstream changes from the F2Z team. Wallet devs may also choose to leverage the F2Z API as an address book.
-
DeFi users and services will benefit from F2Z’s innovations in automating payment behaviors. The first such behaviors are simple - a minimum funding amount (currently 0.001 ZEC) can turn on a page, as well as another small transaction (currently 0.0001 ZEC) to post a comment. Through the development of high-level libraries, in particular those dealing with ZIP-321 and private memos, F2Z will empower DeFi users and services to automate their own unique behaviors based on ZEC payments.
-
Zcash community participants can earn ZEC for their Zcash content and gain exposure on Free2Z: meme collections, community news, market analysis, in-depth technical writing, educational materials. Community meetups and conferences and local groups can use F2Z to publicize their projects and connect with a wider audience. But, Zcash-related content is only a small fraction of what is possible. F2Z will also create a space for Zcash community participants to profit from their talents which are not directly related to Zcash: music, art, educational material, causes, passion projects, consulting, hiring, finding collaborators and like-minded people. Members may also find financial support and encouragement in times of need by making a simple appeal for funds.
Solution Format
The key deliverable will be a fun and useful website built on Zcash, established on solid legal foundations, ready for viral scale and accessible to a large audience. Free2Z will offer an incredible user experience and will help drive Zcash adoption as a killer app that many users will find helpful in their day-to-day lives.
Free2Z will:
- Be simple to use even for people who have never heard of Zcash
- Highlight the unique properties of Zcash
- Have extremely good privacy characteristics
- Attract fun and engaging content
- Get strong buy-in and engagement from the current Zcash community
- Create positive interactions between veteran Zcash enthusiasts and new Zcash learners
- Have A+ accessibility for all devices and all people
Technical Approach

Free2Z is software and content. The software is written in a monorepo which currently has four main components:
- F2Z UI: React/MUI with remark/rehype, iframely, nginx
- F2Z API: Django DRF, nginx
- F2Z Full Node: zcashd full node - async workers in Python sync payments to DB
- F2Z DB: A postgres database that maintains ACID state of the web application
Future:
- F2Z UI: We will open source reusable components for Zcash such as our zip-321 rendering, QRcode displays and custom zcash markdown directives
- F2Z Wallet integration: We plan to work with wallet/app developers to help them use F2Z API as an address directory for zaddresses.
- We may maintain a fork of zecwallet-lite which has F2Z integrated for browsing, p2p payments and chat and contribute improvements upstream to ZWL
- F2Z Full Node: we will examine and evaluate zebrad, lightwalletd and other software in the ecosystem to understand their strengths and weaknesses for our use cases as we add support for upcoming protocol upgrades. We will run our zcashd fullnode and be early to test new versions and provide feedback to the core devs.
- We will likely run a complete test/staging environment that utilizes the Zcash testnet
- The F2Z team has deep experience scaling with Kubernetes so that would be a good option to consider as the application gets more popular. Ansible would be another option for reproducible infrastructure.
A traditional webapp is easy to scale. A typical web2 webapp changes the database through an https API. The Free2Z application leverages some of the features of a typical webapp but it also listens to events from the zcashd wallet to make changes to the database. Our architecture combines the strengths of traditional web applications and web3 apps. Python/Django handles content revisions extremely well and provides a rock-solid architecture for developing CMSs and content-driven applications. At the same time, we leverage the blockchain for actions that can properly be immutable such as funding pages, commenting, etc. The inexpensiveness of revisions in traditional web apps can make them cheap for spammers, scammers and hackers to hijack web apps for nefarious purposes. This is one reason why Free2Z incorporates the blockchain for some actions which can be immutable such as funding a page, commenting and upvoting and downvoting content. Payments are the only time when content becomes immutable. Free2Z has an architecture which supports scalability, security and a healthy, spam-free ecosystem.
The software team will be working in a highly iterative, agile approach based on Bonsai which is a synthesis of XP, Lean, Kanban and Kaizen. We will be integrating changes and promoting them to production constantly. We will be reporting progress and gathering feedback transparently using issues, projects and milestones in our public github org and our public github repo.
Dependencies
Free2Z is innovating in a space that has a certain amount of legal uncertainty. Since the key model of private, anonymous transactions over the internet is still legally untested, we are concerned about a potential negative legal or regulatory action. For this project to be a success, we will require the support of the ZF legal team to help us to develop airtight terms of service, legal agreements and other basic contracts. By getting hands-on support from the ZF legal team, we will ensure that the Free2Z application is in compliance with relevant local and international laws. In addition to the direct support from the ZF/ECC legal team, Free2Z will retain a top law firm for additional support in case new legislation pending in the United States, Europe and other countries comes to challenge Free2Z’s platform. We expect this collaboration will strengthen the Zcash ecosystem as a whole since any potential challenges to Free2Z are likely threats to other Zcash-based applications. For Zcash to reach its full potential, the Zcash community as a whole will have to hang together in the near future in order to fend off potential legal challenges that could stifle innovation.
Execution risks
The Free2Z team has written and scaled applications using similar tech stacks to millions of monthly users. Given sufficient funding and time, we are confident of our ability to develop and scale this application with a small team, even with exponential growth.
Operations and support could incur costs when we are operating at scale with thousands of users. To avoid this overhead, we will write great docs, have clear help-text, automate as much as possible and proactively clarify what must be done for the system to work.
We plan to be profitable in the long-term. But, we have to strike a balance between prices and operational overhead in order to optimize adoption and accessibility while maintaining high quality. If we don’t get the balance right we could face the following problems:
- Content quality suffers because we are too inexpensive
- Operational overhead is too high because we have a lot of adoption but we are too inexpensive
- Adoption and usage stagnates because we are too expensive
To avoid these problems, we may implement dynamic pricing; lower prices to encourage more usage, as well as higher prices to reduce operational overhead per revenue. A risk with dynamic pricing is that it would add some complexity for users; a comment may cost 0.0001 one day and 0.005 the next. With zip321 and good documentation we expect the site to be easy to use for anyone, even with dynamic pricing.
Unintended Consequences
Legal challenges
Study after study has found that cryptocurrencies are being used overwhelmingly by law-abiding people for legitimate purposes. Still, like with any open platform, there is always a chance that bad actors will utilize the platform for nefarious ends. Spammers and scammers are a key risk for the healthy maintenance of a public platform like Free2Z. The requirement to fund a page with Zcash before it becomes publicly visible has kept spammers off the website so far, but additional measures may be required with increased user growth.
A key feature on our roadmap is adding the ability to upvote and downvote a zPage by making a small Zcash deposit with a specific zip321 URI on the page. It will be easy to list and rank pages by upvotes. This will add community curation to zPages and help the pages with broadest community support to percolate to the top.
Another concern is the use of zPages to fund illegal or immoral activity. As we mentioned before, the hands-on support of the ZF/ECC legal team to write robust terms of service and well-written contracts should help us to ameliorate this concern. In addition to community policing, we will eventually have to leverage machine learning algorithms to identify problem actors as the site grows and as the size of the user base increases we will also make increased use of community monitoring; assigning clout to trusted members to help point out violations of our terms of service and other destructive activities.
Centralization
Another potential concern is that Free2Z may become just another centralized service. To mitigate this risk, we will create easy ways for creators to extract their content to back it up and to move it to other sites. In addition, we will, at a minimum, open source components to make it easier for other people to build similar services. We may even create a fully open source Free2Z that people can host and customize on their own. We will likely spin off self-hosted solutions that could function like Zcash-powered Magento or WordPress sites.
Privacy
Like Zcash Free2Z is built with privacy as a principle. This means:
- Everything is self-hosted
- No third parties without consent
- No Personally Identifiable Information necessary
Rich media embeds and privacy don’t typically go together very well. So, by default, we will not show 3rd party embeds without the user’s consent. We will also allow users to access the F2Z public data via API instead of the UI so that they can choose exactly what they will do with the content data. For example, a wallet/app developer could choose to fetch content for pages and ignore embed directives.
Evaluation plan
Quantitative metrics that can be made public:
- Number of creators
- Number of zPages created
- Number of Transactions to F2Z wallet
- Total z2z sent to F2Z
- Number of comments
- Number of total hits for iframely embeds
- Top embeds
- Publicly available numbers from eg hypestat
We will welcome open, transparent feedback from our users in our public github org and our public github repo. Engagement and sentiment there and on our Twitter will provide an idea of how happy the Zcash community is with Free2Z.
Budget
Category | Amount |
---|---|
Hardware/Software | $0 |
Services | $16,000 |
Compensation | $107,000 |
Total | $123,000 |
Services
Services Budget | |
---|---|
Cloud Services | $11,000 |
Legal Services | $5,000 |
Total | $16,000 |
Cloud Services
We are running a highly scalable internet stack on VPS which should scale to millions of daily page loads without an issue. We will be caching content and optimizing page sizes. Initially we will have a production and test environment consisting roughly of the following.
- VPS running our web application server (Gunicorn/Python/Django/Redis), reverse proxy, etc ($100/month)
- VPS running Postgres SQL DB server ($50)
- UI has own Ngnix, running React frontend ($50)
- Zcash full node running on own VPS ($50)
- No need for S3 bucket since we are using Iframely
This size will be able to get us to 1000s of reads per second and enough writes to support thousands of active users. This scale will likely get us to the end of the year. If we experience truly viral growth and massive adoption sooner, we may consider raising funds with equity or returning to make another grant proposal to go to a full HA setup with k8s and managed cloud database.
We are using Iframely to host and serve embedded rich media. Iframely charges $29 for 10,000 hits, and $400 for one million hits.
Legal Services
We will put $5,000 towards legal services to establish Free2z on a rock-solid legal footing and review documents produced by ZF lawyers.
Since this project is counting on the direct support from the legal team at ZF to help Free2Z develop terms of services and other legal agreements, the legal compensation budget that we are anticipating is quite modest. Free2Z needs $5,000 to have the documents produced by the ZF reviewed. We plan to use our own funds to retain a top law firm for additional support in the case of legal action.
We do not anticipate significant legal challenges because we plan to be extremely thorough with the initial setup and extremely transparent with our operations. However, in the case of some future legal or regulatory action against Free2Z, we will request legal support from ZF and possibly an additional grant to defend our Don’t Know Your Customer (DKYC) stance.
Compensation
$107,000 USD
Type | # Hours | Rate | Subtotal |
---|---|---|---|
Free2Z Feature Development | 750 | $100 | $75,000 |
Test Environment, Protocol | 150 | $100 | $15,000 |
Open source components | 170 | $100 | $17,000 |
Total | $107,000 |
Skylar and Jonathan will be responsible for the work.
Schedule and Milestones
We plan to operate in an extremely iterative manner. Feedback from the community will ultimately guide what gets implemented more than what we imagine months out. We expect priorities to emerge from real-world usage by the community. Top priorities may yet be unimagined. But, some things we are sure we want to complete.
Milestone 1 - MVP 1.0 - estimated completion date: 2022/05/01
$31,000
MVP of Free2Z platform deployed to production. The deliverable will a UI at https://free2z.cash and api at https://free2z.cash/api/ where the committee will be able to verify the following features:
- Create account and login without email, cellphone number or other PII
- Able to create a zPage and fund it with Zcash wallet
- Demonstrate private memo Zcash payload for actions: fund page, comment, etc
- Basic https API for content
- Documentation and video series on how to create pages and use Free2Z with basic Zcash info for curious newbies
Milestone 2 - UX, user feedback, hardening, polish - estimated completion date: 2022/07/04
$55,000
Deliverable 2.1*
- Add rich content to page, links to: (links to videos, sound, images, etc)
- Videos
- Sound
- images
- Add capacity to embed as well as scientific and mathematical formulas
Deliverable 2.2*
- Add comments to pages
- Upvotes and downvotes
Deliverable 2.3*
- Attend to all issues and feedback reported by the community
Milestone 3 - Protocol and Open Source Development- estimated completion date: 2022/10/08
$37,000
Deliverable 3.1*
- Full test environment on testnet
- Excellent accessibility
- Thorough helptext and documentation so that the site will be easy to use for anyone, regardless of their knowledge of Zcash
- SEO search engine optimization
Deliverable 3.2*
Open source focus will be dictated by the community demand. We will put in the referenced hours, likely focusing on some of these ideas:
-
Possible Open source contributions:
- First version of typed Python RPC client
- Blog post on Python RPC and guidance for further development
- Django example. Stretch: reusable app
- Open source Free2Z wallet
- Reusable React Components
- Self-hosted FOSS CMS or online store based on F2Z
Deliverable 3.3*
- Protocol upgrades: Upgrade Free2Z to support Orchard addresses (if suitable).
Total proposed USD value of grant: $123,000 USD
If you read this far, I’m impressed! Check out some more writing on free2z.cash here: Free2z
I’m excited to hear what everyone thinks!