Phoenix Wallet
The wallet infrastructure we rebuilt across every Phoenix product. Double-entry ledger, policy engine, 100K+ TPS.
// Create a player walletconst wallet = await phoenix.wallets.create({ holder_id: "user_9382", currency: "USD",});// Player deposits $100await phoenix.credits.create({ wallet_id: wallet.id, amount: 10000, // cents});// Place $25 bet - funds held until game endsconst bet = await phoenix.reservations.create({ wallet_id: wallet.id, amount: 2500, metadata: { game: "blackjack", table: "vip-1" }});// Game ends, player lost - Loss: transfer to house (atomic)await phoenix.transfers.fromReservation({ reservation_id: bet.id, to_wallet_id: "house_wallet",});Create wallets, handle deposits, reserve funds for bets, and settle outcomes—all with atomic guarantees.
We built wallet systems for every Phoenix product. Our customers needed it too.
Mistakes are expensive—accounting bugs, race conditions, scale failures. So we extracted it. Hardened it. Made it an API.
Multi-Tenant
Database-level isolation. Each tenant's data is completely separate.
Double-Entry Ledger
Immutable, append-only. Every transaction has a full audit trail.
Policy Engine
Define rules for operations, restrictions, expiry, and limits.
Reservations
Two-phase commits. Hold funds, then capture or release.
Lot Tracking
FIFO/LIFO consumption. Attributes, expiry, policy binding.
Event Stream
Real-time webhooks for all ledger mutations.
One API, any use case
A general-purpose wallet system that adapts to your domain—whether you're building for gaming, commerce, or enterprise.
Casino & Betting
- Player wallets
- Bet reservations
- Bonus restrictions
- Wagering requirements
Loyalty & Rewards
- Points issuance
- Tier-based policies
- Expiration rules
- Redemption tracking
Prepaid & Stored Value
- Top-up flows
- Multi-currency
- Balance limits
- Merchant settlement
B2B Credits
- API credits
- Usage metering
- Overage handling
- Invoice reconciliation