Every part below runs. The pieces that move money are the pieces that are tested hardest.
Catalogue, wallet, buying, the Zentra API client, the database and the settings system. Written with aiogram against PostgreSQL.
A separate Next.js app over the same database: overview, settings, orders, customers, deposits, and crediting a balance by hand.
USDT on BEP-20 and Binance Pay confirm themselves. Telebirr and Bank of Abyssinia verify receipts through Zentra.
Twenty Python suites plus the dashboard's own. Every money-handling guard was verified by deliberately breaking it and watching the test catch it.
Each is self-contained. Turn on the ones you can support today and leave the rest switched off — nothing else breaks.
Watched on-chain. The amount itself is the fingerprint that matches a payment to the customer who owes it.
Not a merchant integration — it reads your own account's Pay history, which needs no business approval.
Telebirr only answers Ethiopian IP addresses, so Zentra runs the receipt lookup for you with the key you already have. Nothing to host.
No geographic restriction on this one — the receipt check runs from wherever your bot does.
The shop this is modelled on runs a VPS, a chain listener, a Binance merchant account, a separate payment-verification service and around fifteen thousand lines refined against real customers over months. Handing you all of that as day-one requirements would mean most people who want to resell never finish setup. This gives you a running bot today, and each rail as something you adopt when you are ready for what it needs — never before.
The repository's docs/GUIDE.md explains each rail in full. For anything it does not cover, open a ticket in @ZentraShopBot and a person answers in that chat.