Free during private beta — self-custody wallets, M-Pesa, and USDT through one API. Get started →
Private beta · Built in Nairobi 
One API for
African payments.
Self-custody wallets. M-Pesa rails. USDT on TRON, BSC, and Ethereum. One integration — your keys, your funds, your PayBill.
How it works
Integrate once. Accept everything.
01
Your wallet. Your keys.
Sign up and the SDK generates your wallet in your browser — seed phrase never leaves your device. Link your M-Pesa business account. HelaMesh monitors your addresses; only you can spend.
02
One checkout. Customer chooses.
One API call or one dashboard click. Your customer picks M-Pesa or USDT at checkout — no app install, no account required on their end.
03
Payment confirmed. Webhook fired.
USDT confirms in 15–60 seconds. M-Pesa STK push completes in under 30 seconds. Same webhook payload for both rails — one handler covers everything.
Supported rails
M-Pesa STK Push · Kenya
TRON TRC20 USDT
BNB Smart Chain BEP20 USDT
Ethereum ERC20 USDT
What you get
Infrastructure, not a bank.
True self-custody. Zero compromise.
Your seed phrase is generated in your browser and never touches our servers. HelaMesh stores only your public xpub — enough to derive addresses and monitor payments, never enough to move funds. If HelaMesh disappeared tomorrow, you still have your keys and your money.
M-Pesa built in
Connect your Daraja credentials once. Trigger STK push, receive C2B payments, send B2C — all through the HelaMesh API. Funds flow through your own PayBill.
<60s settlement
M-Pesa STK push completes in under 30 seconds. TRON and BSC confirm in 15–60 seconds. Ethereum in ~3 minutes. Your webhook fires the moment any rail confirms.
Same webhook. Every rail.
{ "event": "payment.confirmed", "network": "MPESA", "amount": "2500" }{ "event": "payment.confirmed", "network": "TRON", "amount": "25.00" }HMAC-SHA256 signed. Exponential backoff retries. Redrivable from the dashboard. One handler covers every rail.Sandbox in production
Test-mode keys, live infrastructure. Simulate crypto payments or use Daraja sandbox for M-Pesa — watch the full state machine animate in real time.
For developers
Two SDKs. One mesh.
wallet-setup.js
import { HelaMeshWallet } from '@helamesh/wallet-sdk';
const wallet = new HelaMeshWallet({ helaMeshApiUrl, apiKey });
// Seed generated in browser — never sent to HelaMesh
const { mnemonic, xpubs } = await wallet.create(userId, email, {
method: 'passkey', // WebAuthn biometric lock
});
// User backs up seed phrase, then:
await wallet.register(xpubs); // only public keys hit our server
// Send USDT — signed locally, relayed via HelaMesh
await wallet.unlockWithPasskey();
await wallet.sendUsdt({ network: 'TRON', hdIndex: 0, toAddress, amount: '50.00' });
wallet.lock();webhook-handler.js
// Same handler for M-Pesa, TRON, BSC, and Ethereum
app.post('/webhook', async (req, res) => {
const { event, network, amount, metadata } = req.body;
if (event === 'payment.confirmed') {
await fulfillOrder(metadata.orderId, amount);
}
res.sendStatus(200);
});Wallet SDK handles keys and signing on the client. HelaMesh handles monitoring, webhooks, and M-Pesa rails on the server. Neither touches what belongs to the other.
Built in Nairobi.
Your keys. Your rails. Your money.
Free during private beta. No card required. No sales call. Self-custody wallet generated in your browser. M-Pesa and USDT from day one.
Get early access →