Pitch
ZGo will enable vendors and merchants to accept Zcash as payment in a simple, affordable way.
Applicant Background
Vergara Technologies LLC was founded in 2021 to support the creation, development and operation of ZGo. We are a father-and-son team with decades of combined experience in technology consulting, project management, digital product management in South America and the United States.
-
Rene Vergara Larrea, MSc, PMP
- Senior Technical Product Owner for a Fortune 50 insurance firm in the US, working with Java, ReactJS and MongoDB.
- Creator of ZGo.
-
Rene Vergara Araque, MBA, MPM
- Developer for ZGo, maintainer of ZGo’s website.
- Creator of GeoVSU, a GIS-enabled web application for the real estate market in Ecuador.
- Creator of the educational videos for GeoVSU.
- Former CEO of AT&S Consultores, a technology consulting firm in Quito, Ecuador.
Description of Problem
Current electronic payment solutions are centralized, costly and take custody of the funds paid to vendors for some period of time. It is becoming more common to see vendors and merchants add surcharges for electronic payment processing fees, passing the costs to consumers[1]. The alternative proposed by the United States Federal Reserve[2] raises multiple concerns regarding surveillance and custody of funds.
Even though Zcash can provide a seamless payment experience, there is no application currently available for merchants to implement Zcash payments easily. One of the key components of mass-adoption of Zcash is the ability to transact with it on a day to day basis, and this is the gap we aim to fill.
Proposed Solution
ZGo is a private point-of-sale platform that leverages Zcash shielded memos to link a device to the vendor’s Zcash address and a ZGo shop. The vendor then purchases a session, using ZEC, enabling the full functionality of the app for a set period of time.
A ZGo shop allows a vendor to create a list of items available for sale, set their prices in the reference fiat currency and their description. The vendor then can add these items and amounts to an order for a customer.
The vendor can now prompt the customer for direct payment using a QR code and offer the customer a digital receipt. If the sale is not in a retail setting, the vendor also has the option to generate an invoice based on the order, creating a URL that can be sent to the customer via e-mail, SMS or other direct messaging app. This URL prompts the customer for payment using a QR code.
We intend to integrate ZGo with major invoicing platforms, to allow businesses to leverage existing systems to provide the option of Zcash payments.
Solution Format
ZGo aims to provide a smooth, private experience for vendors and merchants to accept payments in Zcash with a point-of-sale web app that is:
- Non-custodial. Funds go directly from the customer to the vendor’s wallet via shielded transactions.
- Mobile-friendly. The app works on desktops, mobile devices and supports small screens.
- Device agnostic. The app works regardless of operating system, all that is required is a modern web browser.
- Flexible. The app supports multiple points-of-sale for a single vendor, and has a flexible price structure for vendors that may only need the service seasonally.
- Integrated. The app integrates with common business systems (CRMs, e-commerce).
Technical Approach
ZGo is a libre software app and includes:
- Web front end built on AngularJS.
- API server built on Haskell, providing both monitoring of relevant blockchain information, ZEC price data and interfacing with the ZGo database.
- Zcash full node.
- MongoDB database for storage.
ZGo leverages the Zcash shielded memo field to be able to identify a shop as well as individual devices acting as points-of-sale for the shop as shown in Figure 1.
Figure 2 shows the basic flow for a retail sale, where the vendor uses ZGo to put an order together, ZGo uses the latest available prices from CoinGecko to calculate the total ZEC amount for the order and then creates a ZIP-321-compliant[3] QR code that the customer can use to pay, ensuring that the correct address for the shop and the correct amount of ZEC is pre-populated in the customer’s wallet. ZGo also includes the order ID in the shielded memo, allowing the shop owner to match payments in their wallet with orders in ZGo. One of the identified future improvements to this flow is having ZGo confirm the payment of the order for vendors that provide a viewing key for their business shielded address.
Figure 3 shows the flow for a vendor that may not be doing business in a retail setting and can then send an invoice to a client for payment. ZGo allows the customer to use a URL to view the invoice and the corresponding ZIP-321-compliant QR code for payment. This flow will also benefit from the automated payment confirmation via viewing key mentioned above.
Another benefit of ZGo for vendors is keeping track of all the orders for later review. ZGo records the ZEC amount of the order, the contents of the order as well as the ZEC price at the time the order was closed, making this information available to the vendor for accounting purposes, while maintaining the customer’s privacy.
ZGo currently supports multiple fiat currencies for conversion, including U.S. dollars(USD), Euros (EUR), British pounds (GBP), Australian dollars (AUD) and Canadian dollars (CAD).
The code for ZGo is maintained in GitLab and available under the Bootstrap Open Source License in our Front End repo and our Back End repo. Feature requests, bugs and discussions are tracked in GitLab. Our main website contains guides and demos of using the app successfully.
Feature Roadmap
The features we have currently identified for implementation are:
- Payment confirmation, using a provided viewing key.
- Support for Unified Addresses.
- Integration with CRM tools like QuickBooks.
- Spanish UI translation.
- Data export.
- Adding tips to orders.
- Adding a tax line to orders.
- UX enhancements.
- Referral program.
Dependencies
Zcash Wallets
ZGo generates QR codes compliant with ZIP-321, a wallet that supports this standard is required for the best experience with the application. Currently, Nighthawk and ZecWallet support it on Android devices. Unstoppable does not, we have reached out to them and received a response that they would look into implementing ZIP-321 after they are done with updates related to NU5.
ZGo implementation of Unified Addresses is also dependent on wallets making this new functionality available.
Incorporating other future changes in the Zcash protocol into ZGo will also depend on wallets in the ecosystem making the corresponding upgrades.
ZEC Price feed
ZGo currently uses CoinGecko API to obtain ZEC prices. If the availability of this API changes, ZGo may need to switch to a different service to keep up-to-date prices.
Execution Risks
Legal Risks
As a platform that enables people to sell goods and services, ZGo needs to have very solid Terms of Use that allows for a safe, sustainable operation for the users and for Vergara Technologies LLC. Given that Zcash is global, the legal framework for the operation of ZGo needs to be compatible with multiple jurisdictions.
One of the goals of this grant proposal is to obtain the funding and support to have the appropriate legal documents reviewed and updated by a reputable experienced legal firm to mitigate this risk.
Technical Risks
As a web platform, ZGo is exposed to the Top Ten Web Application Security Risks[4]. To mitigate these risks, the app uses TLS for the external communications to the server, both for the UI and the API. The UI is designed as a Single-Page Application (SPA) to minimize opportunities for injection attacks. The authentication of users relies on the strong privacy provided by Zcash shielded memos to transmit information and the assurance that only the owner of the wallet with access to the private keys could complete sign-up.
Unintended Consequences
A large adoption of ZGo may create some pressure on wallet developers to implement @zip321 to leverage the app.
Evaluation Plan
The impact of ZGo in the Zcash ecosystem can be measured by:
- Number of shops opened
- Number of active shops
- Number of orders processed
- ZEC transaction volume
These metrics would only be reported in the aggregate, eliminating any potentially identifiable information.
Budget
The estimated total cost for this proposal is $114,200.00. The breakdown of the budget is listed on the table below.
Item Estimate
------------------------ ----------
Hardware $600.00
Software $1,500.00
Hosting $1,500.00
Legal Services $5,000.00
ZGo User Support $9,600.00
ZGo Feature Development $96,000.00
Hardware
This proposal includes the cost of purchasing an iPad tablet to allow for feature testing on iOS devices.
Software
This proposal includes a budget for the cost of the different CRM platforms currently targeted for integration: Quickbooks and Xero.
Hosting
This proposal includes the cost of 12 months of hosting services for the ZGo servers.
Legal Services
This proposal includes a budget for the cost of having a reputable legal firm with experience in the blockchain space review and amend the application’s terms of use to mitigate any legal risks.
ZGo User Support
This proposal includes the cost of 12 months of user support, estimated at 10 hours per month.
ZGo Feature Development
This proposal includes the cost of 12 months of feature development, estimated at 100 hours per month.
Schedule
Milestones
- Milestone 0: Start-up funds for hardware, software and start of legal review, $8600
- Milestone 1: Payment confirmations, $17,600
- Milestone 2: Unified Addresses support, $17,600
- Milestone 3: First integration available in test server and Spanish translation available in test server, $17,600
- Milestone 4: Spanish translation in production, first CRM integration in production, Data export in production, $17,600
- Milestone 5: Second CRM integration in test server, Tipping and Added Tax functionality in production, $17,600
- Milestone 6: Second CRM integration in production, UX enhancements, User feedback, $17,600.