upvote
Yes, they do store the value. There was a blogpost posted to HN last year that discusses the cryptographic features of these cards [1,2]. It's amazing that these cards are almost solving the problem of secure digital money.

[1] https://news.ycombinator.com/item?id=43993711

[2] working link since original blog is down https://web.archive.org/web/20250517082035/https://aruarian....

reply
Alt link because archive.org is down now: https://archive.ph/V8H5s
reply
The card definitely stores the balance. They probably sync the transaction records to their servers, but during the transaction the value on the card is presumed to be the truth AFAICT.

Remember when the system was designed in the early 2000s the Internet was much less available and reliable, and when so many transactions happen every day, you don't want to get thousands of passengers stuck inside a metro station only because some Wifi router was down.

This is basically a limitation of the CAP theorem, in these situations there's really no choice but to sacrifice "consistency" and settle for eventual consistency.

I think even credit card payments for transit also make that sacrifice. I had a weird experience using a Visa card to pay for a tram ride because they were promoting it and had a discount. The machine indicated success and let me through, but since I rarely used the card, somehow the payment didn't go through afterwards (the credit card was in a very weird state). If they insisted that all the payment transactions complete successfully for a transit payment, it would be too inconvenient and unreliable to use.

reply
Credit card payments have an "offline" mode for the same reason - before ubiquitous broadband, a shop may have to dial-up to the bank to verify a card, which is slow. Debit cards that run on the credit networks can have that enabled or disabled depending on trust.

Remember originally credit card payments worked by putting the card under a slip of carbon-copy paper and rubbing off the raised digits. All the digital stuff ontop of that was just for efficiency.

reply
The original Dutch system used a very similar approach: the card not only stores the balance, but also a history of taps, and information about the travel products. Your travel history is available on a website, but new trips are only shown after a terminal has asynchronously uploaded your new data.

Fixed terminals (like at a train station) near-instantly upload it, movable terminals (like in a bus) have a bit of a delay and sometimes only upload when the bus arrives back at the depot. It is possible to add new travel products or balance from an app / website, but you have to visit a special "pick-up terminal" to update the card.

reply
Op mentions that server side sync occurs outside of 200ms card/reader interaction.
reply
I'm fairly sure the balance is shown in the app too

Can confirm that Suica shows the balance in Apple Wallet.

reply