How to Reduce Friction in Your Crypto Purchase Flow
You already know your funnel leaks. You've seen the drop-off points, and you know which steps cost you buyers.
Now you have a list of things you'd like to cut, and one question you can't answer yet: which ones are safe to remove, and which are protecting the user without showing it?
Quick answer: Friction and security are two separate things, even though they feel like one. Some steps only cost the user effort, and you cut those freely. A few protect the transaction, and cutting those creates a compliance risk. One question separates them, and this piece runs that question against a live on-ramp.
That question is the whole method, so it's worth setting up carefully before you touch a single step. Here's how to run it.

Run Every Step Through One Question
Don't work from a list of features. Work from a single question and apply it to every step in your flow:
If this step disappeared, would the user or the transaction be less protected?
The answer sorts everything:
Answer | What it is | What you do |
|---|---|---|
Yes | A control | Keep it, even when it adds friction |
No | Friction | Cut it, defer it, or reuse it |
Controls stay in the flow, in one form or another: 3D Secure on a card, the identity check the law requires above a certain amount, and the verification a user's country demands.
KYC requirements are governed by the anti-money-laundering and counter-terrorist-financing (AML/CFT) rules that govern financial services, and can be triggered by transaction threshold, country, or payment method. 3D Secure remains a security control for card payments.
Friction goes. A redundant login screen for a user who can be authenticated silently. A blank form they fill by hand. A price they see with no context, then a dead end when the card declines. Each one costs the user effort for nothing.
Keeping a control does not mean keeping an obstacle, and 3D Secure is the proof.
EMV 3-D Secure, the industry standard behind the "verified by" checks banks run on card payments, runs two paths: a frictionless flow that authenticates the cardholder with no extra interaction, and a challenge flow for the rest.
That is one control that can authenticate the buyer without asking them to do anything. Keeping a control and asking the user to feel it are two separate decisions.
One move repeats across every case: cutting friction rarely means deleting a step. It usually means moving it. Across the cases below, the fix takes one of four shapes:
- Remove. The step only costs effort, so it's removed.
- Defer. The control stays, but fires later.
- Reuse. The check already ran, so don't run it twice.
- Hide. The control still fires, invisibly.
Of the four, only "remove" touches the step itself. The other three keep it in place and change when the user runs into it.
Case 1. A Control With Bad Timing: Fast Track
Start with first-purchase KYC. The test says keep it, because it protects the transaction. The problem is where it sits: a first-time buyer asked to photograph an ID before buying anything meets full verification before they've committed to anything.
So the answer is to reschedule the check, not remove it.
Fast Track lets a user buy up to a cumulative €700 while full KYC waits, then requires it once they cross the line. The check still fires once they cross the line, and it can also apply earlier depending on country or payment method, not by default while they're still a first-time visitor deciding whether to buy.
Show these up front, or you trade one friction for a bigger one:
- €700 ceiling. It's cumulative, counting buys and sells together.
- Fee. It varies, averaging around 2%, and shows before they confirm.
- Region gate. U.S. users aren't eligible, so filter by geography instead of rejecting them partway through.
The same logic covers a second case: verification you already hold. If you already cleared the user through SumSub and they sit at approved status on your side, running the check again is friction rather than protection. ID and selfie carry over on an email match, once per person.
You set both up during integration, and the on-ramp integration checklist covers them. Neither one removes a control; both just change when it runs.
Case 2. A Step That Was Never a Control: The Login
The step here is the login screen a returning user hits mid-purchase. Silent Authentication pre-authorizes the returning user before they open the widget. Mercuryo handles authentication on its end, so the user can skip the widget's visible login step.
The verdict is simple. This cost is self-inflicted, so the step is removed from the flow.
Silent authentication passes a short-lived token, so the widget recognizes the returning user and skips the login. The returning user stays authenticated server-side, without being asked to type anything.
The email code is the harder call. A one-time code protects the login, so keeping it feels like the safe choice, until you notice a replacement that's both safer and faster.
Passkey swaps the code for Face ID, a fingerprint, or a PIN. Because a passkey is designed to be phishing-resistant, it reduces the exposure associated with emailed codes.
Passkey vs. password | Result |
|---|---|
Sign-in conversion | +30% |
Login time | 27.5s → 13.6s |
Source: ID Tech, reporting on the FIDO Alliance Passkey Index.
The passkey case proves the two dials move independently: sign-in conversion rose 30% while login time dropped from 27.5s to 13.6s. That is more security and less friction in the same change.
Passkey doesn't cover three cases, so a fallback has to stay for each: Safari on Apple devices, WebView, and partner silent sign-in.
Case 3. Friction You Made Up: The Blank Form and Cold Price
Not all friction is a step. Sometimes it's the app making the user do work it could have done, or meet a number it could have shown earlier.
Take the blank form. Amount, currency, network, and payment method, each one filled in by hand, one decision at a time. Every field the user fills is one you could have filled.
Fix it up front: widget parameters pre-set the purchase, so the user arrives with the purchase already filled in, then completes the remaining steps instead of building it field by field.
Then the price. If the user first sees the rate and limits inside the widget, you've hidden a number they could have had earlier.
The on-ramp flow solves that one: it exposes rate and limit data before the widget loads, so you show the number on your own screen while they're still deciding.
In both cases, the friction came from information you withheld, not a barrier you built. Show the number earlier, and it disappears, because it was only ever a matter of timing.
Case 4. A Failure That Isn't Final: The Decline
The step here is the restart after a card payment fails. Try Again lets the buyer retry without starting the purchase flow over.
Because it takes nothing away, the default restart is pure waste: it sends the buyer back to the start of the flow.
Whose call is what:
- Decline. It's the failed payment attempt. Try Again doesn't change the failure; it changes what happens next.
- Restart. It's your flow's response, and that's what loses the buyer.
Try Again keeps the failed attempt recoverable inside the widget. The buyer can retry in place and, where available, switch payment method instead of starting the purchase flow over.
So this is the clearest step to remove: it protects nothing, and it exists only because of how the flow responds when a payment fails.
The Whole Flow at a Glance
Read the verdict column from top to bottom and the reasoning holds together on its own.
Step | Protects? | Verdict | The move |
|---|---|---|---|
First-purchase KYC | Yes, badly timed | Keep, reschedule | Defer to €700 (Fast Track) |
Repeat verification | Already ran | Cut the repeat | Reuse the approved check |
Returning user's login | Authentication handled silently | Cut | Silent authentication |
Email code on sign-in | Yes, replaceable | Upgrade | |
Blank purchase form | No | Cut | Pre-fill the parameters |
Cold rate and limits | No | Cut | Pre-fetch, show early |
Restart after decline | No | Cut | Retry in place (Try Again) |
3D Secure on cards | Yes | Keep | Untouched |
Takeaway: the blank forms, the cold prices, the dead-end decline: they cost the user and protect nothing, so they go. For returning users, Silent Authentication handles authentication before the widget opens, so the visible login step can go too.
KYC and 3D Secure, the controls that do protect, stay. And Fast Track lets you reschedule KYC rather than force the user through it up front.
The method is a single question, applied to every step, separating a flow that merely annoys the user from one that leaves it exposed.
These decisions land at build time. When you are ready to add one, get in touch with Mercuryo to confirm the provider-side steps.
Frequently Asked Questions
How do I know if a step is safe to remove?
Ask whether removing it leaves the user or transaction less protected. If yes, it's a control, so keep it. If not, it's friction, so cut it, defer it, or reuse it.
Does reducing friction mean removing KYC or 3D Secure?
No. Those protect the transaction, so they stay. Fast Track defers KYC to the €700 line rather than deleting it, and 3D Secure stays untouched. EMV 3-D Secure includes a frictionless flow that can authenticate the buyer with no extra step.
Isn't passwordless login less secure?
No. A passkey using your device's biometric authentication or PIN is designed to be phishing-resistant, unlike an emailed code, and it's faster.