# Amana Gateway π‘
**Prove facts, not data.**
Amana Gateway is a demo of a different way to do identity checks (KYC). Today, when you apply for a loan, you hand over your BVN, your NIN, your date of birth β your whole identity β and hope every company stores it safely. With Amana, you hand over **answers instead of data**: "over 18? β yes", "Nigerian? β yes", "creditworthy? β yes". The company gets the answers it needs, cryptographically guaranteed by the government's own signature, and your actual information never leaves your phone.
The magic ingredient is called a **zero-knowledge proof**: a piece of math that lets you prove a statement is true *without revealing why it's true*. Prove you're over 18 without showing your birthday. Prove your credit score clears a bar without showing the score.
## Run it
You need Docker installed. Then, in this folder:
```bash
docker compose up -d --build
```
The first build takes a few minutes (it compiles the cryptographic circuits). When it settles, open **
http://localhost:3000**.
## The demo
Open four browser tabs: **Amana Way** (the citizen wallet), **Swift Loan**, **ABC Loan**, and **Consent Dashboard** (all linked from the home page).
1. **Amana Way** β see your two sealed credentials (identity, signed by the National Registry; credit file, signed by the credit bureau) and your **amanaIds**, one per company. Copy the Swift Loan one.
2. **Swift Loan** β paste the ID and apply. Notice what's *missing*: no BVN or NIN field. Swift Loan asks for four proofs: over 18, Nigerian citizen, ID ownership, and credit score β₯ 600. The lender only ever gets an opaque code.
3. **ABC Loan** β click "Check eligibility" (no ID to paste β ABC Loan only needs to know you're over 18 and a Nigerian citizen). This demonstrates that ZK is **modular**: each lender requests exactly the proofs it needs, nothing more.
4. **Amana Way** β consent requests appear for each pending application, listing *exactly* what each lender wants proven. Approv β¦