Case Study: Building a Multi-Currency Crypto POS System for a 300-Location Retail Chain

Client details have been anonymised under NDA. The client is a European speciality retail chain with 340 locations across Germany, Netherlands, Belgium, and the UK.

The Brief

In Q1 2023, the client approached us with a specific problem: their existing point-of-sale provider had announced crypto payment support, but after a pilot in 12 stores, the failure rate was running at 22% — nearly one in four crypto transactions was failing at the point of sale, causing queues and customer complaints.

They had committed to a board-level rollout of crypto payments to all locations by end of Q3. They had 26 weeks to fix the problem or abandon the initiative entirely.

Diagnosing the Existing System

We spent the first two weeks doing nothing but watching transactions fail. The existing system was using a third-party payment processor API that generated a new on-chain Bitcoin address for each transaction. The root causes of failure were:

  • Confirmation time mismatches: The POS system was waiting for one on-chain confirmation before releasing the transaction as complete. With Bitcoin averaging 10 minutes per block, this meant customers were standing at the till for up to 25 minutes.
  • Fee estimation errors: The system was using a flat 10 sat/byte fee. During periods of network congestion, transactions were getting stuck in mempool for hours.
  • No zero-confirmation handling: For small retail transactions where fraud risk is low, waiting for a confirmation is unnecessary. The system had no policy for accepting unconfirmed transactions.
  • Single-currency only: The existing system only supported BTC. Customer surveys showed that 41% of crypto-holding customers primarily held ETH or stablecoins.

The Architecture We Built

We designed a new system from scratch over four weeks, delivered as a self-hosted microservice that plugged into their existing Lightspeed POS via webhook. Key design decisions:

Lightning for Small Transactions

All Bitcoin transactions under €200 are routed through Lightning. This eliminates confirmation time entirely. We deployed a managed LND node with £500K in inbound liquidity, giving the retailer immediate payment capacity without channel management overhead.

On-Chain with Zero-Conf for Medium Transactions

Bitcoin transactions between €200–€2,000 use on-chain addresses with a zero-confirmation acceptance policy, combined with real-time double-spend monitoring via our own mempool.space instance. The fraud exposure on a zero-conf retail transaction of this size is statistically negligible for a physical goods retailer.

Ethereum and Stablecoin Support

We added ETH and USDC on Ethereum mainnet, plus USDC on Polygon for customers preferring lower fees. Each POS terminal generates a fresh address per transaction using a deterministic derivation path from the store master key, held in an HSM at their central treasury.

Dynamic Fee Estimation

On-chain Bitcoin transactions use mempool-aware fee estimation. We query three independent fee estimators (mempool.space, BitcoinFees.earn, our own node) and take the median of their 20-minute target estimates. During high congestion, the POS UI warns the cashier and suggests Lightning as an alternative.

Results After 90 Days of Full Rollout

  • Transaction failure rate: 22% → 1.3%
  • Average crypto transaction completion time: 8.2 minutes → 18 seconds
  • Crypto payment volume: +340% vs. pilot period (attributed to improved UX)
  • Stablecoin share of crypto transactions: 38% (not anticipated during design)
  • Zero fraud incidents in the zero-conf window in 90 days of operation

Lessons Learned

The biggest unexpected challenge was staff training, not engineering. The POS UI was intuitive, but store managers had questions about what to do when a customer showed a “payment sent” screen on their phone but the POS had not confirmed. We wrote a 2-page cheat sheet that resolved 90% of support calls.

We also significantly underestimated USDC volume. Design for stablecoins from the beginning, even if your client says they expect most volume to be BTC.

James Hart is CEO of KomiKey Technologies. He led the architecture and client delivery for this project.

3 thoughts on “Case Study: Building a Multi-Currency Crypto POS System for a 300-Location Retail Chain”

  1. The 22% to 1.3% failure rate improvement is impressive. Was the zero-conf approach ever challenged by management from a risk perspective? I am trying to get a similar policy approved internally and getting pushback from our fraud team.

  2. The stablecoin volume surprise (38%) resonates with what we are seeing. We built a BTC-only integration a year ago and immediately started getting requests for USDC. It is becoming the default choice for anyone who wants crypto payments without volatility exposure.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top