A case study in offline-first fintech infrastructure: a protocol concept for emerging markets that would deliver offline payment guarantees using ECDSA signatures across a resilient seven-layer architecture.
Pulse is a concept and case study, not a shipped product. It has never been deployed, has no production users, and no real transaction volume — so there are no measured results to report. What follows is the design thinking: the problem, the protocol architecture, the trade-offs, and what a real pilot would have to prove.
In Nigeria and across Sub-Saharan Africa, unreliable internet connectivity is a constant reality. Millions of people are locked out of digital financial services every day not because they don't have a phone, or a bank account but because a 3G tower went down, or USSD is congested, or the POS machine has no signal.
Existing fintech infrastructure assumes a persistent connection. That assumption fails constantly in emerging markets, and it costs real money for real people.
The starting point was an analysis of the payment rails already available to people without reliable connectivity. Mobile money over USSD exists, but every transaction depends on a live round-trip to the network, and that round-trip is precisely the thing that fails: sessions time out, USSD channels get congested, and the merchant is left guessing whether the money actually moved.
That failure mode drove the entire design. The transaction has to be settled between two nearby devices first, with no real-time network call at all, and reconciled with the settlement network later. Which means trust has to come from cryptography rather than from a server being reachable at the moment of payment.
This is desk research and reasoning about known failure modes, not field research — the case study stopped short of the merchant and user study a real launch would need.
The hardest problem in the case study was designing an escrow mechanism that prevents double-spending without access to a shared ledger. The proposed approach is a deterministic nonce tied to the device clock plus a monotonic counter, so a captured transaction cannot be replayed even while both devices are offline.
This is a design position, not a validated one: the scheme has never been load-tested, adversarially tested, or reviewed by a cryptographer, and clock drift on low-end devices is an open risk I flag rather than solve here.
I scoped the problem, designed the seven-layer architecture, specified the payment layer and the cryptographic validation rules, and worked through the interface states an offline flow would have to communicate. This was design and systems work rather than a shipped build — there is no production codebase behind it.
Pulse is designed as a seven-layer offline payment protocol. The intent is to let two parties commit to a transaction using cryptographic proofs while fully offline, then reconcile those proofs with the settlement network once connectivity returns.
flowchart LR
A[User] -->|Signs Intent| B(Authorization)
B -->|Locks Funds| C(Escrow)
C -->|Encodes Txn| D(Transport)
D -->|Scans QR/NFC| E(Peer Device)
E -->|Stores Txn| F(Queue)
F -->|Connectivity Restored| G(Settlement)
The protocol is structured in distinct layers, including:
The UX had to be foolproof. Since users might be offline, the interface needed to communicate transaction finality without a network confirmation. I designed clear, color-coded states and deterministic loading indicators to build trust in the offline process.
The stack the protocol was designed around, chosen for performance and reliability on low-end devices. None of it is deployed:
Pulse was never deployed, so there are no production metrics to report — no transaction volume, no uptime figure, no market pilots. What the work produced is design artefacts:
If Pulse were taken past the whiteboard, these are the numbers I would insist on measuring before trusting it with other people's money:
Designing Pulse taught me that the most challenging engineering problems are not about writing clever code they are about designing systems that remain correct when all your assumptions break down. Network reliability is an assumption. Clock synchronization is an assumption.
The discipline of adversarial thinking asking "what if this component is unavailable?" at every layer is something I now apply to every system I design, regardless of whether it touches payments.
Pulse is an open concept, not a product. I'd like to talk to fintech engineers, cryptographers, or emerging-markets teams who want to push this protocol design towards a real pilot.