From "hello world" to a working wallet backend, one shipped phase at a time.
- π SE Apprentice @ Zone01 Kisumu, peer-to-peer and project-based, no lectures
- β‘ Founder & sole developer of Altradits β Bitcoin banking for Kenya, M-Pesa rails, vanilla Go
- π§© Owns features end to end, from schema to deploy
Core, vanilla first while I build solid fundamentals:
Exploring in side projects:
"The root problem with conventional currency is all the trust that's required to make it work." β Satoshi Nakamoto, 2008
Everyone in my community has a story β an "nguru" who vanished with their savings, a Sacco that quietly went broke, a chama that fell apart when the treasurer disappeared. Altradits is my answer: a bank for my community where there's no one left to trust β only code, Bitcoin, and a ledger anyone can audit. Deposit the M-Pesa you already use, lock your sats for 5+ years, and let patience do what no nguru ever could.
- β‘ Send/receive sats over Lightning +
you@altradits.comaddresses (LNURL-pay) - π°πͺ Deposit & withdraw KES via M-Pesa STK push
- π° Treasury pool: bonds, money market, equities, BTC, auto interest
- π‘οΈ JWT auth + role-based admin dashboards
Prerequisites: Go 1.22+, PostgreSQL 14+
# 1. Set up the database
make setup-db
# 2. Run (migrations + default-account seeding happen automatically)
make dev
# or: go run cmd/server/main.goManual database setup (without make)
psql -U postgres << 'EOF'
CREATE USER altradits WITH PASSWORD 'password';
CREATE DATABASE altradits OWNER altradits;
GRANT ALL PRIVILEGES ON DATABASE altradits TO altradits;
EOFDB_URL=postgres://altradits:password@localhost:5432/altradits?sslmode=disable go run cmd/server/main.goDefault accounts
| Role | Password | |
|---|---|---|
| Admin | admin@altradits.com | admin123 |
| Trader | trader@altradits.com | trader123 |
- Backend: Go 1.22, standard library only. Custom PostgreSQL wire protocol driver (
internal/pgdrv). - Frontend: Pure HTML + CSS + vanilla JS. No frameworks.
- Database: PostgreSQL 14+
- Auth: SHA-256 session tokens, HttpOnly cookies
Routes
| Path | Role | Description |
|---|---|---|
/ |
Public | Landing page |
/register |
Public | Create account |
/login |
Public | Sign in |
/customer/dashboard |
Customer | Wallet overview |
/customer/deposit |
Customer | M-Pesa deposit |
/customer/withdraw |
Customer | M-Pesa withdrawal |
/customer/investments |
Customer | Locked sats |
/admin/dashboard |
Admin | Operations overview |
/admin/deposits |
Admin | Approve deposits |
/trader/dashboard |
Trader | Pool management |
- Trust minimization β no ngurus, public assets
- Patience as proof of work β 5-year lock minimum
- Timestamped transparency β every sat traced
- No KYC β email or phone only
- Community review β no central authority
- Incentive alignment β 2% of profit only
- Simplicity β 6 buttons max
- Privacy by default β no name required
- Long-term horizon β shortcuts are traps
- Open participation β no minimums
- Now: Manual M-Pesa + Lightning (admin-approved)
- Phase 2: M-Pesa API (Daraja) + LND integration
- Phase 3: Events, Hackathons, Travel, Crowdfunding modules
- Fork the repo, then
git cloneyour fork - Follow Quick Start above to get it running locally
- Create a branch, make your change, and open a PR
Bug fixes, tests, and roadmap items above are all welcome β open an issue first for bigger changes.
| Stage | Shipped | Skills |
|---|---|---|
| Foundations | Go modules, Docker, multi-schema Postgres | Tooling, schema design |
| Money Rails | Lightning wallet + M-Pesa STK, BTC price tracking | LND REST, Redis, workers |
| Growth Features | Auto-save, bills, net worth, investing, planner | Service layers, ledger math |
| Engagement | AI coach, companion, notifications, hackathon mode | Pipelines, rapid iteration |
| Now | Lightning addresses, treasury pool, admin dashboards | LNURL-pay, double-entry, RBAC |
- π Real LND node (currently mock-Lightning for dev)
- π§ͺ Test coverage for
internal/wallet&internal/treasury - π‘ Public Lightning address service (
*@altradits.com) - π€ Sats to cash agent network with women-led businesses near me
Hiring, or building something with Go + Lightning rails? Let's talk.
