Every M-Pesa number is already a Cardano address.
Type a Kenyan phone number and send USDCx or USDM. The person on the other end just gets a normal M-Pesa text — nothing to install, nothing to set up. It's live now on Cardano Preview testnet.
Two on-chain transactions, one M-Pesa SMS
Every payment happens as two separate transactions on-chain: one locks the rate, one settles it. Neither step asks you to just trust Dzi's backend.
Resolve the number
HMAC-SHA256(secret, phone)
turns the phone number into an Ed25519 keypair through Pallas, instantly and
without the owner doing anything.
Lock the rate
Dzi queries a live Pyth price feed and locks the ADA/KES or USDCx/KES rate for 60 seconds. You can check that rate on-chain yourself instead of taking Dzi's word for it.
Settle to M-Pesa
The stablecoin moves to the resolved address, and Dzi relays the payout through Safaricom's Daraja API. All the recipient sees is a normal M-Pesa text.
Built on the rails people already trust
By 2023, M-Pesa had processed 20 billion transactions, equal to 59% of Kenya's GDP, through a USSD menu that works on any phone. Dzi rides those same rails.
Stablecoins, not volatility
USDCx and USDM don't move in value between confirmation and settlement, so the amount you agreed to is the amount that arrives — unlike a Bitcoin Lightning payment.
Oracle-verified rate
A Plutus contract checks a live Pyth price attestation before it'll authorize a payment, so you can verify the rate yourself instead of taking Dzi's word for it.
No smartphone required
USSD still carries roughly nine in ten mobile money transactions in Sub-Saharan Africa, so that's what Dzi's access layer runs on too.
Derive a real Cardano address from a phone number
This is the real resolver logic from core/address_resolver.rs, running live:
HMAC-SHA256 into an Ed25519 seed, Blake2b-224 into a Shelley Enterprise address, bech32-encoded.
Try any valid Kenyan number. Nothing gets stored, and this demo runs on its own key, completely separate from Dzi's production secret.
The resolver will be open source.
Apache 2.0. Any Cardano wallet or app will be able to use it as-is, instead of building phone-number resolution from scratch.