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.

Aug 9, 2019 · 4 min read
Image for post
Image for post
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.

Image for post
Image for post

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!

Image for post
Image for post

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!


Making blockchains simple for users

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store