How bitpolito/silent-payments works
Silent Payments Educational PoC teaches BIP-352 through a guided sender/receiver simulation, reference-vector checks, and address-generation tools. Users enter through the React app, run the walkthrough or generate a random/vanity address, and receive simulated results; nothing is broadcast. Flask exposes the API, Python implements protocol and reference behavior, and Rust accelerates vanity searches. Studio and privacy labs are additional educational branches. Some backend routes and UI features are documented but not fully sampled, so their links are included only where the README or excerpts establish them.
Main entry points: App.jsx App navigation · index.py HTTP routes · engine.rs Search engine · receive.py Payment scanning
Components 21
React learning UI
- App navigation
src/App.jsx - Payment walkthrough
src/scenes/PaymentFlow.jsx - Flow presentation
src/components/flow/FlowPanels.jsx - Address generation
src/scenes/GenerateAddr.jsx - API client
src/utils/api.js
Flask API
- HTTP routes
api/index.py - Reference cases
api/core/reference.py
BIP-352 protocol
- Payment sending
api/core/send.py - Payment scanning
api/core/receive.py - Protocol experiments
api/core/experiments.py - Curve and Schnorr
api/core/utils/schnorr_lib.py - Key validation
api/core/utils/hardened_keys.py - Address encoding
api/core/utils/segwit_addr.py
Vanity generation
- Vanity service
api/core/utils/vanity_python.py - Search engine
native/vanity/src/engine.rs - Address encoder
native/vanity/src/address.rs - Pattern matcher
native/vanity/src/matcher.rs - Key generation
native/vanity/src/generator.rs
Experiments
- Studio tools
src/features/studio/Studio.jsx - Privacy lab
src/features/privacy/PrivacyLab.jsx
Other components
- Learner
Connections 23
- Learner → App navigation: uses
src/App.jsx - App navigation → Payment walkthrough: routes to
src/App.jsx - App navigation → Address generation: opens
src/App.jsx - App navigation → Studio tools: routes to
src/App.jsx - App navigation → Privacy lab: routes to
src/App.jsx - Payment walkthrough → Flow presentation: renders
src/scenes/PaymentFlow.jsx - Payment walkthrough → API client: requests results
src/scenes/PaymentFlow.jsx - Address generation → API client: requests addresses
src/scenes/GenerateAddr.jsx - API client → HTTP routes: calls API
README.md - HTTP routes → Payment sending: dispatches
api/index.py - HTTP routes → Payment scanning: dispatches
api/index.py - HTTP routes → Protocol experiments: dispatches
api/index.py - HTTP routes → Reference cases: loads cases
api/index.py - Payment sending → Curve and Schnorr: uses
api/core/experiments.py - Payment scanning → Curve and Schnorr: uses
api/core/receive.py - Payment scanning → Key validation: validates keys
api/core/receive.py - Protocol experiments → Payment sending: uses
api/core/experiments.py - Protocol experiments → Payment scanning: uses
api/core/experiments.py - Address generation → Vanity service: requests search
README.md - Vanity service → Search engine: runs subprocess
api/core/utils/vanity_python.py - Search engine → Key generation: generates keys
native/vanity/src/engine.rs - Search engine → Address encoder: encodes address
native/vanity/src/engine.rs - Search engine → Pattern matcher: tests pattern
native/vanity/src/engine.rs