Offline-first transit fare validation with live clone detection, for the Nairobi Metropolitan Mass Rapid Transit System. A gate has to decide in under a second whether a tap is genuine — in a tunnel, with no network. That is exactly where cloned cards win.
Drive it yourself. Two station gates, a rider wallet, a USSD handset on *384#, a network switch and a reconciliation backend. A seven-step checklist advances as you go.
Open the consoleA rider blocks a lost card over USSD on a feature phone and the gates refuse it minutes later. Real DTMF keypad tones.
Play the USSD simulationWatch the whole scenario play out as an animated, narrated walkthrough with synthesised station audio. Scrub, jump by chapter, or mute the voice and narrate it live.
Play the simulationtoken = HMAC-SHA256( key_card , cardID | counter | stationID | timestamp )
The rules are checked independently of the interface. This replays the full scenario and asserts every outcome.
node verify/detection-logic.mjs