File size: 1,732 Bytes
1730163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# AmanPay demo samples

Default biometric samples so co-authors can test the full pipeline **without
capturing their own biometrics**. Two identities:

- **alice** — enroll + authenticate pairs for **all three modalities**
  (face, fingerprint, voice). Voice clips are two utterances from the same
  LibriSpeech speaker (id 426), so enroll/auth genuinely match.
- **bob** — a distinct identity (face + fingerprint) for impostor / negative tests.

Layout is described in [`manifest.json`](manifest.json).

## Fastest: one-click demo in the web app

Open the app (`https://<host>:8443/`) → **Pay** tab → **▶ Load demo**. This calls
`POST /demo/seed`, which server-side enrolls the tri-modal `alice` identity, records
consent, links a token-backed Chase account, and pre-fills the pay form with alice's
*authenticate* samples. Then hit **Pay with biometrics**.

## Or: seed via the API

```bash
# Seed a demo identity + wallet; returns the account + authenticate samples.
curl -sk -X POST https://<host>:8443/demo/seed | jq .
```

## Or: drive it yourself (Python)

```python
import base64, requests, urllib3; urllib3.disable_warnings()
B = "https://<host>:8443"; S = requests.Session(); S.verify = False
def b(p, mt): return f"data:{mt};base64," + base64.b64encode(open(p, "rb").read()).decode()

fe = b("examples/alice_face_enroll.jpg", "image/jpeg")
pe = b("examples/alice_fp_enroll.png",  "image/png")
ve = b("examples/alice_voice_enroll.wav", "audio/wav")
S.post(B+"/unified/enroll", json={"user_id": "alice", "face_image": fe,
                                  "fingerprint_image": pe, "voice_audio": ve})
```

These files are small, synthetic/benchmark-derived, and safe to commit — no real
personal biometric data.