Payment Gateway - BTC Pay

Applicant background

I am a software engineer who worked for several major projects including: Windows (OS kernel), .NET framework (compiler and code generation) and SQL Server (Engine / query execution). I was also the CTO of startups and listed companies.

Description of Problem or Opportunity

After CoinPayments decided to go another direction, we would like to repurpose the Payment Gateway we developed by integrating with another payment framework: BTCPay.

BTCPay is open sourced and there is no vendor risk.

Proposed Solution

The payment gateway must be adapted to work with the API of BTCPay. There will be changes in the data model and the deployment.

Solution Format

According to BTCPay documentation, they want source code, docker scripts and configuration settings. The end result will be a package that merchants can install the same way as for BTC.

Technical approach

The Payment Gateway for Zcash will analyze data coming from Zcashd and maintain a database of account and transactions. The GW will also communicate with BTCPay server in order to receive and fulfill invoices. There are part of the system that were built for CoinPayments that need to be modified to fit BTCPay but we don’t expect any blocker.

How big of a problem would it be to not solve this problem?

Not having a payment gateway that can be easily added to e-commerce platforms is lost opportunities for Zcash adoption. A significant portion of the Payment Gateway has been built for CP and would be lost.

Execution risks

Integrating with a third party system (even open source) has its risk. We are not in charge of the upstream code and are subject to changes in their API.

Unintended Consequences

None that we can foresee

Evaluation plan

The project will be successful if BTCPay accepts our integration requests and includes Zcash on their platform. The requirements for this to happen is listed on their project page.

Schedule and Milestones

We expect this project to last another 3 months.

Budget

25 % is carried over from the previous grant that is now cancelled. We have developed the Payment Gateway and was in the process of integration testing when CP walked away.

75% is the work required to adapt to BTCPay.

Remarks

115 000 $ from this project cost is carried over from the previous grant related to CoinPayments (that was not paid)

Edit: ZF Grants - Payment Gateway with BTCPay

2 Likes

Hey hanh,

It’s not clear what the total budget is. Or maybe it is clarified somewhere else?

My bad … I forgot to add the link.

The total budget is 120 k (including 115k from the previous grant that remained unpaid after CP changed direction)

1 Like

I’m in favor of funding this project, this was the original plan and you were flexible in switching to CoinPayments basically at the request of ECC.

I do have one question, the original BTCPay proposal from 5 months ago was for $80k total, this one seems to be for $120k total, plus the reuse of some work already completed and paid for during the CoinPayments project, is that correct? If so what’s the reason for the increase?

Actually, the gateway code was not paid in the previous project. When I finished it and was going to start integration, CP pulled out from the project. Therefore, its cost has been transfered to this project.

What’s technical difficulty in the integration?
How long is this going to take?
Is it just you who is going to be working on it?

115k seems high price tag. I’m not sure if anyone cares about BTCPay.

1 Like

It might take some convincing for merchants to switch from CoinPayments to BTCPay, but at the end of the day, isn’t a non custodial, censorship resistant payment system in-line with Zcash’s raison d’être?

2 Likes

Yeah, are there merchants who are requesting for it?

1 Like

We build this? then which merchant is going to use. I want to make sure we build a product where we have merchants enthusiastic about integrating (not sure if there are any).

1 Like

Is there any data on how many merchants use BTCPay.

1 Like

Yes, here’s the BTC Pay directory. https://directory.btcpayserver.org/
CheapAir, Nakamoto Institute, Andreas M. Antonopoulos, Torproject, TorGuard VPN, Casa Store, and lots more

BTCPayServer is/has been used by some pretty big merchants. It’s probably the best cryptocurrency payment processor in terms of being audited and being open-source. When Tesla accepted Bitcoin, they used BTCPayServer and organised an audit of it which resulted in a couple issues being fixed. Human Rights Foundation use BTCPayServer. It has a REST API also together with BitPay API support allowing it to be used in a headless manner. It has Point of Sale support built in.

4 Likes

Supportive on this grant. For existing BTCPayServer merchants to be able to accept Zcash with a toggle would be awesome and greatly enhances Zcash as a payment network.

1 Like

Congratulations @hanh , your proposal has been accepted! :tada:

With this and @1337bytes BTCpay compatible UX components grant:

ZOMG hopes that the two grants will be complementary to one another to build a robust BTCpay server option for vendors to accept Zcash. We hope that the two community members (Han and 1337bytes) awarded will also keep in communication and help one another if needed to accomplish thier BTCpay integrations.

10 Likes

Thanks Shawn,

Here’s a video documenting the progress so far.

There is still more to do but the main pieces are in place.
In particular, I have written zcash-walletd, a wallet server that bridges between BTCPayServer account/subaccount model and zcash blockchain.

BTCPS supports multiple “stores” that translate to accounts in wallets. Each account is treated independently even though it is under the same seed. Also, each invoice has its unique address.

Everything is handled through diversified addresses inside zcash-walletd.

9 Likes

Thanks for the update @hanh , looks like great progress!

Has your proposal been updated as requested on the Grants platform? We discussed it at the last ZOMG meeting and it was still awaiting a revision for payout.

1 Like

Final follow up: Zcash-walletd - #2 by hanh

Hi hanh,

I’m trying to figure out BTCpayserver, Zecpayment gateway. Do I need to run btcpay server & zcashd when operatoring an online shop or does btcpayserver allow me not to have to run a zcashd?

Are there any online shops or points of payment using what has been created in this grant that is live in order to checkout the experience?

Thanks

2 Likes

You don’t need to run zcashd but you need to run zcash-walletd. It is a watch only wallet app that works with lightwalletd. By default, it will use the public server but you can also choose your own.

1 Like

When you say run zcash-walletd, can you explain how to do that? i watched the youtube videos and i understand the normal parts of setting up woocommerce, and setting up btc payments through btc server, but don’t understand how to use your product. Does a merchant download something from github? and then what does the merchant do with that software? Can this be done on a PC or Mac?