Design a Digital Wallet

Medium · Low-Level Design · about 45 minutes

Asked at PayPal, Stripe, Block (Square), Coinbase, JPMorgan Chase, Intuit, Visa, Capital One, Chime, SoFi, Affirm, Klarna, American Express, Toast, Gusto.

Design an in-memory digital wallet service. Users have wallets with a balance; they can top up from a card, transfer to another user, and see their transaction history. A transfer must never create or lose money, and a retried request must not be applied twice.

Related guides