over budget

Free-Commerce: sell online with ADA

$77,514.00 Requested
Ideascale logo View on ideascale
Solution

To build opensource, intermediary and commission free payment integrations for Shopify stores. ADA flows directly from buyer to seller.

Problem:

Enabling stores to sell goods and services for ADA requires intermediaries who have control over your money and charge fees and commissions.

Yes Votes:
₳ 103,377,949
No Votes:
₳ 67,038,472

  • free-commerce2-cardano-catalyst-proposal
  • free-commerce2-cardano-catalyst-proposal

OVERVIEW

We want to build integrations to enable cardano payments in ALL major e-commerce platforms but for this round we will focus on Shopify for our first step in the journey towards adoption.

So initially, we are going to release and maintain an official Shopify app, which will be immediately accessible to more than 500,000 online businesses around the world who generate 800 million dollars per minute in sales. This work has already started the source code is available on github: https://github.com/uniVocity/shopify

VALUE PROPOSITION

To enable the cardano blockchain to work as a free payment gateway and facilitate e-commerce by eliminating intermediaries between product/service providers and consumers.

How it will work

Here is a detailed breakdown of how it will work: first it will be free for everyone. Other than regular transaction fees on the blockchain itself, no one has to pay commissions nor fees. There's no account creation required anywhere and it works as a straight "wallet to wallet" solution:

The shopify app doesn't have anyone's private key (from neither the shop who installs the app nor the customers). At no point the app server should have access to anyone's funds, even if temporarily. To enable ada payments, the shop will provide its public root key. Not the private key. That root key will be used to generate new receiving addresses on demand. Every receiving address will be unique. We generate shelley receiving addresses like what daedalus gives out. When a customer of a store makes a purchase, a new receiving address will be generated from the public root key and associated with the order. When someone sends ADA to a payment address, the store owner will receive the ADA directly in their wallet, to which we have no access (we don't know and don't want to know the private key) Once the total amount of the order is paid to the receiving address, the order is fulfilled and the shop can send the items purchased to the customer . With one receiving address per order we are able to determine that X amount was sent to that particular receiving address, instead of mixing funds with the whole balance of the wallet managed by the store. This also maintains privacy of the online store as one customer won't be able to see other payments the store received.

In short, our solution works as a mere observer of transactions made from one or more (customer) addresses to another from the store owner (associated with an online purchase). Funds go straight to the shop owner wallet.

What we already did

Here is a video update on the developments already made to process online payments using cardano on Shopify:

Challenges found

During initial development of this we found a few limitations on existing wallets that can hinder larger businesses to process high volumes of sales using the blockchain. So part of the Shopify integration work also depends on an e-commerce friendly wallet for cardano which we are building.

This is a desktop wallet to help online stores process payments and is not specific to Shopify. It's being built to make it easy for businesses to generate and upload public root keys (required to generate payment addresses on demand) to their online stores.

The wallet will be able to pull online purchase information associated with every payment received, and will work around limitations of existing wallets that aren't suited for handling payments at scale - the BIP-44 protocol generates payment address in sequence, and expects at least one transaction every 20 payment addresses. If a website has 20 abandoned checkouts and receives a payment on the 21st checkout, the payment won't show up in your regular wallet (daedalus, yoroi, etc) - the money is not lost, but it's not accounted for until there is at least on transaction every 20 addresses generated. Our wallet aims to solve this issue and make sure high volumes of sales can be processed without any hiccups.

The wallet work, along with more detailed information, is also open-source and available here: https://github.com/uniVocity/free-commerce

Here is another video detailing why and how it will work:

EXPECTATIONS

This project will be my full time job for the foreseeable future

You can check our progress on the github repositories linked above.

I'll also submit video updates every time any relevant development is complete.

A store owner should be able to run their own free-commerce server independently of me or anyone else.

MILESTONES

(Month 1) - The ENVLP wallet must be released before anything else as it is what will enable online stores to export public root keys to generate payment addresses for them, and once payments are received, it will display them correctly (as explained earlier regular wallets such as daedalus are unable to display payments where there are "gaps" of more than 20 payment addresses with no transactions)

(Month 2) - A development version of the integration with the basic sales workflow will be released for online stores who want to test it. It will be updated frequently to incorporate adjustments and more features.

(Month 3) - Better integration of the ENVLP wallet with the online store (reports, online store management, etc)

(Month 4) - Release candidate of the shopify APP.

(Month 5) - Free-commerce app available on the shopify app store for all 500K stores that run on that platform.

(Month 6 onward) - maintenance, monitoring and adjustments as required.

IP/Copyright

The entire source code of this project will be available on github under the Apache V2.0 license.

FUTURE PLANS

Everything we are doing here is planned to allow for easy introduction of new capabilities. A lot of the work for our Shopify integration will be reused to enable online payments in other platforms - to which we will submit proposals in the future.

RISK

I'm counting on earning additional funding from fees collected by the SHOP stake pool, especially to keep the project going after the first year. I've tried to minimize risk by already coding an initial prototype version the proves the integration will work with Shopify. Store owners who intend to use this integration must be aware of their local legislation regarding the usage of crypto for the exchange of goods. Consumers of stores who sell goods for ADA must be aware of the risks associated with transacting with crypto currencies - there is little to no recourse in case of fraud. Transactions can't be reversed and funds can't be seized. This can be minimized if consumers purchase from reputable stores. Software development with bleeding edge technology can come with surprises that usually take a long time to overcome. I already spent a whole week to identify and solve the issue of payments not showing on daedalus - related to the 20 payment address gap mentioned above - which prompted me to begin working on the ENVLP wallet to overcome this limitation. That added at least one extra month of development time, not counting the work already done so far. I hope it will be smooth sailing from here but we can never know.

METRICS

Code activity can be measured from the commits on these two github projects:

https://github.com/uniVocity/free-commerce https://github.com/uniVocity/shopify

The projects can be compiled and deployed by anyone interested in seeing how the software is working at any point during development. We will provide step by step documentation on how to build, run and test everything independently.

Once the free-commerce app is available to online stores on shopify, we can obtain reports and feedback from businesses that are using the integration.

ACTIVITY BREAKDOWN AND EXPECTED COST:

*Assuming hourly rate of 50 USD/hour (low ball)

*Optimistic estimates

  • Development activities:

(A) Sales database setup (7 to 10 days): allow registering order, product and customer information from multiple stores which can run on multiple platforms. We want to reuse the same back-end to process sales from not only shopify - there's magento, woocommerce, etc.

(B) Back-end integration with shopify (14 to 21 days): install/uninstall app, process webhooks which shopify uses to send updates to our servers, implementation of functions for interacting with the online store and its data (mark orders as paid, manual/phone orders).

(C) Back-end processing (30 to 45 days): e-mail sending, QR code generation, tracking of pending orders and corresponding payment addresses, conversion of dollar amount to ADA (from multiple sources), handling expiration of orders that are not paid within a given timeframe, process discounts, handling partial payments and overpayments

(D) Back-end integration with cardano-db-sync (2-3 days): create database triggers and other functions to broadcast updates in real time from the blockchain to (C) and capture payments to addresses associated with open orders created by each store.

(E) Front-end integration with shopify (14-21 days): create app admin pages to configure essentials such as public root key upload (used to generate payment addresses for each order created by customers of the store), e-mail servers, e-mail templates, configuration of disounts for one or more products and their variants, allow store owner to determine price of goods in ADA (fixed) or fiat, basic reporting capabilities.

(F) ENVLP wallet development (30 to 45 days): upload public root keys to online store from within the wallet. Pull order/customer/product information fom the online store associated with each transaction in the owner wallet. Implement support for staking, sending and receiving money like a regular wallet (i.e. interact with the cardano-wallet service)

(G) Build/deployment (3 to 4 days): produce scripts that produce self-contained packages ready for deployment to the servers who will run this integration (also making it easier for others to deploy and run this in their own servers)

(H) Documentation (4 to 7 days): document the source code and write tutorials with the steps required for others to extend, build and deploy this solution independently. This is documentation for other developers to refer to when trying to understand the software. For examples of documentation we've already written for other software, refer to these examples:

source code documentation: http://docs.univocity.com/parser/html/2.2.0/com/univocity/api/entity/html/builders/ElementFilterStart.html step by step tutorial: https://github.com/uniVocity/univocity-trader

Estimates account for testing and development releases.

DEVELOPMENT TOTALS:

  • min: 7+14+30+2+14+30+3+4 = 104 days * 8 hours/day = 832 hours * 50 USD/hour = 41600 USD one-off

  • max: 10+21+45+3+21+45+4+7 = 156 days * 8 hours/day = 1248 hours * 50 USD/hour = 62400 USD one-off

  • Support activities (around 20 to 25 hours per month):
  • (A) keep up with shopify API updates - webservices/webhooks are modified every now and then, which requires update on the source code/redeployment.

  • (B) keep up with cardano-db-sync/cardano-node/cardano-wallet updates - these have been updated frequently (at least monthly) and will probably continue to be for the foreseeable future

  • (C) server monitoring and maintenance

SUPPORT TOTALS:

  • min: 20 hours * 3 months = 60 hours * 50 USD/hour = 3000 USD/year

  • max: 25 hours * 3 months = 75 hours * 50 USD/hour = 3750 USD/year

  • Running costs:
  • (A) At least one server for the executable shopify integration back-end (might have to scale according to demand) (120 USD/month per server)

  • (B) One database server for shopify integration back-end (120 USD/Month)

  • (C) Possibly one replicated database server which runs independently from (A) and (B) - used for reporting and querying without penalizing the main database. (80 USD/month - one cloud server)

  • (D) One server to host cardano-node and cardano-db-sync with its postgresql database. (80 USD/month - one cloud server)

  • (E) SSL sertificate (~10 USD/month)

Running costs on (A) can vary depending on demand.

Servers are required during development, so we are accounting for 6 months.

SERVER TOTALS:

  • min: 120+120+80+10 = 330 USD/month * 6 months = 1980 USD/year

  • max: 120+120+120+80+80+10 = 530 USD/month * 6 months = 3180 USD/year

PROJECT TOTALS (first year, assuming 1 ADA = 0.08 USD):

  • min: 41600 + 3000 + 1980 = 46580 USD = 582250 ADA

  • max: 62400 + 3750 + 3180 = 69330 USD = 866625 ADA

Meet in the middle project price: (582250 + 866625) / 2 = 724437 ADA

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00