Thomas Faber
Selected work

LI.FI · 2026

From checkout to funding infrastructure.

Checkout started as a LI.FI-owned interface for funding transactions.

Talking to wallets and fintechs showed that many wanted to own that experience themselves. What they needed from LI.FI was the funding underneath it.

I led the product work around that shift and took the first version into private beta with engineering.

Product reversal

What changed

Before

LI.FI owns the checkout experience

One interface for users funding a transaction from different sources.

After

Partner owns the experience. LI.FI handles funding.

An infrastructure product partners could build their own interface and user journey on top of.

The useful question

What partners actually needed

How should our checkout work?
What does a partner need to build any funding experience on LI.FI?

The answer was not another set of checkout screens. Partners needed a reliable way to turn “I need this much money here” into a completed funding transaction while keeping control of their own customer experience.

Scope

Making V0 smaller

The product we could imagine was larger than the product the reduced team needed to prove. After team capacity changed, I narrowed the first version around the irreducible funding contract.

That gave engineering a tractable first product and forced us to be precise about the behaviour that actually mattered.

V0 had to prove

  • Express what a partner wanted funded
  • Make the next required action clear
  • Expose the transaction state
  • Define what happened when the happy path stopped

Could wait

  • Broader SDK support
  • Shared KYC
  • Multi-provider routing

We explored shared KYC as a way to reduce repeated verification across providers, but kept it outside the narrow first version.

Product mechanics

Designing the product underneath the interface

Funding order contract

Once the interface moved out of LI.FI’s hands, the behaviour underneath had to become explicit enough for another product team to depend on.

The contract was not finished when the happy path worked. A partner also needed to know what LI.FI would do when reality diverged from the request.

Create a funding intent
Authenticated, idempotent creation made the requested amount, destination and limits explicit.
Tell the partner what happens next
Available sources, routes, quote validity and explicit next actions let the partner keep control of the interface.
Keep the state legible
The lifecycle distinguished provider actions, progress, completion and failure instead of hiding them behind one status.
Define the unhappy path
Underpayments, late funds, wrong amounts, KYC blocks, provider disagreement, failed execution and refunds were product behaviour too.

Lifecycle

From intent to funded

  1. 01Funding intent
  2. 02Available sources
  3. 03Route selected
  4. 04Next action
  5. 05Funds sent
  6. 06Provider observed
  7. 07Amount reconciled
  8. 08Funding complete

External infrastructure

The provider was part of the product

Product constraints

The integration changed the experience.

Geographic and payment-method coverage, KYC, conversion, support, provider cost and chargeback exposure all changed the product we could offer.

Trade-off work

There was no provider in the abstract.

I evaluated Banxa, Transak and Paybis across those constraints and worked directly with providers on the integration.

Later outcome

One choice became the production path.

Paybis was ultimately selected and signed as the production fiat provider.

Delivery

Getting to a first version

I defined the core contract, states and failure behaviour with engineering, then took Funding Orders from an unbuilt roadmap item to a working product in private beta.

Status

Where it stopped

When I left LI.FI, Funding Orders was in private beta.

It had not yet reached scaled adoption.

That’s less impressive than pretending otherwise, but considerably more useful if you want to understand what I actually did.

Boundaries

The numbers do not get to do extra work

  • I did not own LI.FI’s core routing API.
  • Funding Orders was in private beta and had not reached scaled adoption when I left.
  • I did not build the product alone.
  • The ~$3.2bn figure is Widget and SDK company product volume across products in my remit.
  • It is not Checkout or Funding Orders volume, and it is not volume personally generated by me.