ZKP2P payment verification using TLSNotary - proves Wise.com transaction completion cryptographically.
Generates cryptographic proofs of fiat payments without revealing sensitive credentials or banking details. Uses TLSNotary's MPC-TLS protocol to prove payment completion for ZKP2P settlements.
# Clone and build
git clone https://github.com/yourusername/zkp2p-tlsn-rust
cd zkp2p-tlsn-rust
cargo build --release
# Copy configuration template
cp .env.local .envManual extraction required - Wise uses modern security that prevents automation:
- Login to wise.com in your browser
- Open Developer Tools (F12) → Network tab
- Navigate to any authenticated page
- Click any wise.com request and copy from Request Headers:
Cookieheader valueX-Access-Tokenheader value
- Get your Profile ID from account settings
- Find Transaction ID at wise.com/all-transactions
# Create cryptographic proof
cargo run --release --bin zkp2p-prove \
--mode prove-to-present \
--provider wise \
--profile-id "12345678" \
--transaction-id "987654321" \
--cookie "session_id=abc123..." \
--access-token "eyJhbGciOiJIUzI1NiI..."# Create selective disclosure (reveals only essential payment fields)
cargo run --release --bin zkp2p-prove \
--mode present \
--provider wise# Verify the proof (typically done by smart contracts)
cargo run --release --bin zkp2p-verify# Notary server (production)
NOTARY_HOST=notary.pse.dev
NOTARY_PORT=7047
NOTARY_TLS=true
# Wise server
WISE_HOST=wise.com
WISE_PORT=443For development with local notary server:
# Terminal 1 - Start local notary
cd /path/to/tlsn
cargo run --release --bin notary-server
# Terminal 2 - Use local notary
cp .env.local .env
# Then run prove command as aboveThe proof reveals only essential payment fields:
- Payment amount and currency
- Transaction ID
- Payment completion status
- Recipient identifier
- Payment timestamp
Privacy: Session credentials, account details, and personal information stay completely private.
zkp2p-prove --help # See all options
zkp2p-verify --help # Verification optionsprove- Generate attestationpresent- Create selective disclosureprove-to-present- Do both in one step
wise- Wise.com paymentspaypal- PayPal payments
- Rust 1.70+
- Active Wise account with transaction history
- Network access to notary server
- Zero-knowledge proof generation
- No credential storage
- MPC-TLS ensures notary never sees your data
- Cryptographic guarantees via Ethereum Foundation's TLSNotary protocol
This library provides FFI (Foreign Function Interface) bindings for integration with other languages and platforms:
- C/C++ integration - Auto-generated headers via cbindgen
- Cross-platform compilation - Android, iOS, macOS
- React Native support - Native modules for mobile development
- Automated testing - C test suite for FFI validation
# Build with C bindings
make build-rust
# Cross-platform compilation
make build-cross-platform
# Test FFI interface
make test
# Check dependencies
make check-deps📖 Complete FFI Guide - Detailed cross-platform setup, React Native integration, and troubleshooting
wise-attestation.tlsn- Cryptographic attestationwise-secrets.tlsn- Secret data for presentationswise-presentation.tlsn- Selective disclosure proofinclude/zkp2p_ffi.h- Auto-generated C header file