On-chain transparency for zakat, sedekah, and infaq distribution in Indonesia.
Mizaan (Arabic: ميزان, "scale" or "balance") is an on-chain transparency layer for zakat distribution in Indonesia, built on Solana via the Solana Attestation Service (SAS).
Indonesians give over $2B in zakat every year. BAZNAS estimates the real potential is $25B. The gap is trust — donors have no way to prove a single Rupiah reached someone in need. Existing LAZ (zakat distribution agencies) publish PDF reports that are easy to fabricate and impossible to verify at the recipient level.
Mizaan fixes this at the credential layer. Every donation gets three signed on-chain attestations:
donor commits → laz amil distributes → mustahik confirms
↓ ↓ ↓
signature 1 signature 2 signature 3
one cryptographic chain
Anyone can verify any chain in real time, end to end, from donor wallet to mustahik phone. Transparency becomes the artifact of the workflow — not a PDF generated after the fact.
Open /verify and paste this PDA:
CLDKtP943CebTrrRsU9SzshhcyNU4ViZNEJ1kUrzuRD4
That's a real on-chain donation commitment attestation for Pak Subandi Hartono in Bantul, DI Yogyakarta. The full chain is verifiable on Solscan Devnet:
| Step | PDA | Solscan |
|---|---|---|
| Donation commitment | CLDKtP9…uRD4 |
view |
| Distribution decision | 2xE5DQg…4Ygy |
view |
| Receipt confirmation | 9aux7mq…1DZHf |
view |
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router · Turbopack · React 19) |
| Language | TypeScript 5.8 strict mode |
| Styling | Tailwind CSS v4 (@theme in app/globals.css) |
| i18n | next-intl 4 — id (default) + en |
| Blockchain | Solana Devnet |
| Credential layer | sas-lib — Solana Attestation Service |
| Solana client | @solana/kit + @solana/web3.js |
| Wallet (crypto-native) | @solana/wallet-adapter-react (Phantom + Solflare) |
| Wallet (diaspora) | @privy-io/react-auth (email/SMS embedded wallets) |
| RPC | Helius |
| Database | Supabase Postgres (LAZ, mustahik, donation metadata) |
| Auth | Supabase Auth (LAZ admin + mustahik magic link) |
| Realtime | Supabase Realtime (live activity feed) |
| Hosting | Vercel |
/ landing
/donate 6-step donation flow
/donate/[donationId] donation success page
/track/[walletAddress] donor receipt page ("zakat trail")
/verify public verifier — paste any wallet, PDA, or donation ID
/feed live activity stream (Supabase Realtime)
/laz LAZ directory
/laz/[lazId] LAZ profile
/laz/admin/distribute/... LAZ admin distribution console (auth-gated)
/confirm/[token] mustahik mobile confirmation
All pages support /id (Bahasa Indonesia, default) and /en (English).
# 1. Copy environment template and fill in your keys
cp .env.example .env.local
# 2. Install dependencies
npm install
# 3. Provision Solana Devnet — mints IDRZ, deploys 5 SAS schemas, creates LAZ authority
npm run setup:devnet
# 4. Seed demo data
npm run seed:laz # 5 LAZ partners with on-chain identity attestations
npm run seed:mustahik # 50 mustahik across all LAZ
npm run seed:demo # 5 end-to-end donation chains (donor → laz → mustahik)
# 5. Start dev server
npm run devVisit http://localhost:3000 and follow the demo URLs printed in the seed script output.
┌─────────────┐ ┌──────────────┐ ┌─────────────────────┐
│ Donor UI │ │ LAZ Admin │ │ Mustahik Mobile │
│ /donate │ │ /laz/admin │ │ /confirm/[token] │
└──────┬──────┘ └──────┬───────┘ └──────────┬──────────┘
│ │ │
└─────────┬─────────┴────────────────────────┘
│
▼
┌───────────────┐
│ Next.js API │
│ /api/* │
└───────┬───────┘
│
┌─────────┴─────────────────────────────────┐
│ │
▼ ▼
┌─────────────────┐ ┌───────────────────┐
│ Solana Devnet │ │ Supabase Postgres │
│ - SAS attests │ │ - off-chain meta │
│ - IDRZ transfer │ │ - RLS policies │
└─────────────────┘ └───────────────────┘
│ ▲
└──────────────► /verify ◄──────────────────┘
(public read)
The chain itself lives on Solana. Supabase holds the off-chain metadata (mustahik PII, donor display names, encrypted messages) that doesn't belong on-chain. Both are joined at read time on /verify and /track.
Built solo over 6 weeks for the Indonesia National Campus Hackathon 2026 by Superteam Indonesia, in parallel to the Colosseum Frontier Hackathon (Consumer Apps track).
- Founder: Devrangga Hazza Mahiswara — Yogyakarta, Indonesia
- GitHub:
github.com/abdullahdevrangga11/Mizaan
MIT