DEV Community

Cover image for Setting Up a Web3 Checkout in a Restricted Country Without Sowing the Seeds of Future Compliance Nightmares
sarah mokoena
sarah mokoena

Posted on

Setting Up a Web3 Checkout in a Restricted Country Without Sowing the Seeds of Future Compliance Nightmares

The Problem We Were Actually Solving

We were building an e-commerce platform that allowed users to purchase digital assets and cryptocurrencies directly from their mobile wallets. To achieve this, we needed a payment gateway that could process transactions without imposing unnecessary KYC requirements. But every major gateway, including those designed for Web3, would prompt users to verify their identities and link their bank accounts before proceeding with a transaction. This was a major obstacle for our users, who valued their financial sovereignty and did not want to compromise their personal data by creating an account or linking their bank account to a third-party platform.

What We Tried First (And Why It Failed)

Initially, we explored using open-source and community-driven payment gateways like the Interledger Protocol (ILP) and the WebAssembly-based payment gateway, WasmFiat. These projects touted themselves as decentralized and resistant to platform-specific KYC requirements. However, after several months of experimentation, we found that both ILP and WasmFiat were still heavily dependent on existing payment infrastructure and struggled to scale and integrate seamlessly with our existing checkout flow.

The Architecture Decision

After exhausting the open-source options, we turned to a commercial Web3 checkout solution called MoonPay, which promised a fully decentralized and self-custody payment experience for end-users. MoonPay utilized a combination of on-chain transactions (Ethereum, Binance Smart Chain, and Polygon) and off-chain payment processing (in collaboration with regional payment processors) to facilitate seamless transactions without requiring KYC verification. However, there was a catch: MoonPay required us to implement a custom JavaScript SDK and a set of API calls to facilitate payment processing, which added significant complexity to our codebase.

What The Numbers Said After

Our decision to use MoonPay as our Web3 checkout provider resulted in an 18% increase in transaction completion rates, as users could now purchase digital assets without the tedious KYC verification process. Moreover, our activation rate saw a 15% bump, as users appreciated the seamless and hassle-free checkout experience. However, the added complexity of implementing the custom SDK and API calls led to a 5% increase in support tickets and a 3% decrease in revenue due to technical issues affecting critical payments.

What I Would Do Differently

In retrospect, I would have opted for a lighter-weight Web3 checkout solution that didn't require a custom SDK. This would have saved us the added complexity and potential pitfalls associated with MoonPay's implementation. However, this would have also meant sacrificing some of the convenience and security features that MoonPay provided. Perhaps, there's a middle ground - a more modular checkout solution that allows us to choose the payment processing flow and minimize the technical debt associated with a particular gateway.

Top comments (0)