Introducing FiatLink: A Lightning ↔ Fiat Standard

Roy Sheinfeld
Breez Technology
Published in
3 min readJan 8, 2024

The road to the circular Lightning economy inevitably passes through fiat country. Converting fiat and btc back and forth is (still) part of life. However, that road could be a lot straighter and far less bumpy, which is why we’re introducing FiatLink: a standard exchange interface for Lightning wallets and bitcoin brokers.

FiatLink is a technology that Lightning users … and wallets … and brokerages keenly need whether they know it or not. Most brokerages only support on-chain transfers, which take several minutes. Leveraging Lightning would let them onboard users in a few seconds. Users shun friction, so accelerating the on- and off-ramps benefits them all.

Crucially, FiatLink is an open API standard. Any wallet or app can access multiple brokers through a single interface, and every participating broker gains access to traffic from all those apps and wallets. No one is bound to anyone else through proprietary APIs. The market for fiat↔btc conversions becomes more free and open, which is always a good thing.

We’re confident that FiatLink is the standard Lightning has lacked and to prove it, we’re adding it to the Breez SDK. With the SDK as a FiatLink client, all the great app developers collaborating with us on the SDK will be able to access all the participating brokers out of the gate.

Both fiat and bitcoin are currencies, and while we have a clear favorite, FiatLink lets them both flow in and out of Lightning, in and out of apps, and in and out of brokerages.

FiatLink Under the Hood

FiatLink is a standard interface between Lightning apps and bitcoin brokers. And as with all Breez innovations, it’s free and open source.

Though operating a Lightning payment app for years provided us with pretty solid insight into what features would be required, we also sought the advice of Swiss bitcoin brokerages like Relai and Pocket Bitcoin to help us suss out the mechanics of global fiat ↔ BTC conversion. As a result, FiatLink includes all the features you need and none that you don’t.

Start at the beginning: a light KYC fiat on-ramp

We start with the most useful interface: a light-KYC fiat on-ramp. According to current Swiss AML regulations, non-Swiss users can transact up to 1000 CHF per transaction between Swiss brokerages and regulated, non-Swiss banks without additional KYC on the Swiss side. Since FiatLink includes Swiss brokerages, most users will be able to take advantage of buying bitcoin without any additional KYC requirements beyond the fiat payment process.

Payment Options

Users see a list of the available payment options (e.g. SEPA, credit cards, etc.) and supported fiat currencies along with applicable fees and exchange rates.

Quotes & Estimates

The API fetches (binding) quotes or (non-binding) estimates on conversion rates from brokerages.

Orders

Orders are confirmed based on the quotes provided and the payment information provided. The status of the order, including the amounts involved, can also be displayed. An order can be placed, filled, finished, or removed.

Withdrawals with On-Chain Fallback

Users can request withdrawals from the provider through LNURL-Withdraw, which lets them claim their funds via QR-code rather than submitting an invoice. They can also provide an on-chain address to receive the funds should the LNURL-Withdraw request time out.

Optional AOPP

The API offers optional calls to verify wallet ownership and to assign a session ID through the Address Ownership Proof Protocol (AOPP). When called, AOPP ensures users are using their own non-custodial wallets, allowing brokerages subject to the “Travel” rule to opt out of the data-sharing scheme. When no AOPP is required, these values can simply be randomized.

Who’s FiatLink For?

FiatLink is for wallets, users, brokerages, and apps that integrate Lightning. Basically all of us. We know who needs a Lightning ↔ fiat standard because our own users and design partners have been clamoring for it.

You need it, it’s here now, so give it a try.

--

--