Introducing: Portis One-Click Pay

Letting non-crypto users easily sign payable transactions is an important milestone in the road to mainstream adoption. We believe our new direct purchase flow will help pave that path.

portis
Portis
4 min readAug 9, 2019

--

Photo by rupixen on Unsplash

When we created Portis, we set out to solve the biggest issue that was immediately evident when starting to use any DApp: onboarding.

“Install this extension or special browser, understand private keys and gas fees, go to an exchange, open an account and figure out what it means to withdraw to your wallet.” Yeesh. Users faced a lot of noise when all they wanted to do was to simply buy a $10 NFT.

With the Portis SDK, developers were able to ease the transition for new non-crypto users (without compromising user custodianship). After we integrated with the Gas Stations Network, they could even solve the issue of having to explain gas fees, as they could sponsor them instead.

We continued to chip away at friction by adding support for stablecoins such as DAI and xDAI, integrating with Wyre’s API to enable fiat-to-crypto onramps and building several other useful UX features like trust this app, change network, and more.

However, direct purchase flows were still too hard.

The web3 checkout flow

Anyone with a background with e-commerce will be all too familiar with the following diagram.

Usually, you assume that if your user got to that last step — you’re golden. After all, using services like Stripe or PayPal is super easy for users: they punch in their CC details and that’s it. Service/product acquired.

If only it were that simple in the world of crypto. Without resorting to centralized escrow solutions (we’re big believers in decentralization, so that’s gonna a be a no from us dawg), users cannot complete a transaction until they have the required amount of crypto in their wallets. Otherwise, their transaction would simply get rejected by the network.

This means, that if your user has no crypto (which is extremely likely if your DApp is targeting mainstream users, as it probably should), their “purchasing items” step will look something like this:

  1. Goes to sign a transaction
  2. Sees “insufficient funds” message
  3. (Hopefully) Redirected to purchase crypto
  4. Completes crypto purchase (usually has to manually input how much)
  5. Waits until crypto is in their wallet
  6. Once the crypto is inside their wallet — goes back to your DApp and signs the transaction

That final purchase step is fragile enough, since someone is making a decision to spend their hard-earned cash on your product.

Adding so much friction on top, in an age where making web2 purchases is so easy, will most likely result in the dreaded “shopping cart abandonment" event.

It’s as if mainstream people had to make a bank transaction to a different account before each online purchase, wait until the transfer went through, and only once it did, come back to your website to complete the purchase. Fat chance of that happening.

Time to unclog your conversion funnel

We’ve been listening to DApp developers and hearing their cries of pain over this issue. And to tackle it we’ve introduced our new direct purchase flow!

How does it work?

When a user goes to sign a transaction but has insufficient funds, we let them sign the transaction anyway, but we don’t submit it to the network. We then ask them to approve purchasing the required amount of ETH.

Only after we detect that the ETH is in their wallet, we submit their pre-signed transaction to the network.

It’s not like we’re letting users do anything they couldn’t otherwise do themselves, we’re simply making their lives easier by constructing the flow in a manner which resembles the one they know and love from web2 apps.

And by doing that, we’re empowering developers using Portis, since they can improve their conversion rates. To top it off, developers don’t have to do anything, as our One-Click pay flow kicks in automatically.

More #BUIDL, more #SIMPL, just the way we like it.

Happy coding!

The Portis Team

Have any questions? Join the conversation on our Telegram and Twitter. Ready to #BUIDL? Head on to our docs.
Got any suggestions? We 💙 feedback!

--

--