Home
Confirmo
Confirmo
Confirmo

Tripled conversion. $135M a year added.

Confirmo moves three quarters of a billion dollars a year through a checkout with a 9% success rate, running on a backend that couldn’t be touched. And without touching it, I tuned the flow into an extra $135M yearly.

43%success, key markets
3xfrom 9 to 27%
$135Madded yearly
0backend changes

Product Design Lead, the company’s first designer. The full product surface, buyer and merchant, plus brand and website. I built the component library and design system from scratch, and moved design to the front of product with the CPO. 2025/2026, Prague, remote.

context

A checkout built for the backend, not the buyer.

  • Volume grew from $63M to $750M a year in three years, ~60% of prop trading payments worldwide.
  • One flow carried all of it, reverse-engineered from the crypto invoice spec.
  • Hard backend dependencies made the flow itself untouchable.
PAYMENT · v2.4blocks: 4
total.crypto precision: 8dp
PAYMENT · v11.1blocks: 14
warn.banner tooltip.hint total.fiat precision: 6dp fiat.ref: EUR xr.rate window: 15 min qr.render(addr) addr.copy wrap: 2 lines btn.payWallet fallback: manual
PAYMENT · v21.8blocks: 26
warn.banner match(asset,net) tooltip.expand asset: USDC (ERC-20) network: Ethereum contract: 0xa0b8…6eb48 recovery.fee no.guarantee total.fiat precision: 6dp fiat.ref: EUR xr.table rate.locked product.price network.fees qr.render(addr) format: EIP-681 addr.copy checksum: EIP-55 wrap: 2 lines btn.payWallet deeplink: wc:// fallback: manual timer.expire on.zero: invoice.void footer.locale

discovery

Analytics couldn’t see the leak. I mapped it by hand.

  • $680M a year failed to convert across only three steps, too few for analytics to isolate causes.
  • I mapped every screen, ran workshops with Sales, Engineering and Product, and reviewed Customer Support complaints.
  • The loudest complaint became the starting point: the back button didn’t work.

priorities

01Back button(impossible tho)
02Users sending wrong funds
03Users sending wrong amount
04Multi-method payments
05No feedback on fail
06Can’t connect wallet

root cause

Two taps, one irreversible invoice: you’re out.

expected ONE TAP token selected ONE TAP network selected pair saved rate locked invoice created pushed to Payment

The obvious fix was to change the trigger: create the invoice once the user commits. But the invoice is load-bearing. Three quarters of a billion dollars a year ran through it. Its guarantees keep an irreversible payment from missing its target. Rebuilding it mid-flight was a risk nobody would take. The backend was off-limits. Whatever I found had to live in the frontend.

iteration

At a 9% baseline, shipping fast was nearly free.

  • Every surface pain point became a shipped iteration, evaluated on live signal.
  • The biggest bet failed: breadcrumb navigation taught users they could go back while the mechanics still forbade it.
  • Users ended up stuck again, now with added frustration.

solution

Taps saved in the frontend, the invoice delayed until commit.

  • Taps now save the selection locally; users preview any token-network pairing without triggering the backend.
  • A new button holds that state and moves the flow forward only when tapped.
  • On commit, the saved selection is sent wrapped as the original trigger.

ASLEEPnothing chosen yet

select token

WAKINGtoken picked, network pending

11.284667 USDC
select network

LIVEready, waiting on user

11.284667 USDC
on Ethereum network
(ERC20)

craft

One button anchors all three steps.

impact

3x success, $135M a year, zero backend changes.

Cesar Garcia · Product Design Lead · Confirmo