Prove what your balance did
Follow the steps from top to bottom. Every step runs in the paymoney binary on your machine, and the activity line shows what is running; the binary logs to its standard error, which Chrome keeps in its own log.
1 · Set up
Open chrome://extensions, turn on Developer mode, choose Load unpacked and select target/pm/unpacked in paymoney-finance, built by npm run build -w extension; then reload this page.
Install the binary and register it with Chrome. The binary reads JSON-RPC 2.0 messages, one per length-prefixed native-messaging frame; it reaches this server's notary over HTTP/3, and this server verifies roots only from that notary.
cargo install --git https://github.com/visoftlabs/paymoney
printf '\053\000\000\000{"jsonrpc":"2.0","id":1,"method":"install"}' | paymoney | tail -c +5Log in to Revolut in another tab. The extension keeps the headers of Revolut's own API calls per host; this page sees only their names, and lists each one for the extension to attach to its requests. This page follows the session as it changes.
- Extension
- Binary
- Revolut session
2 · Choose a pocket and list its transactions
3 · Notarize and prove legs
Each row is one leg of a transaction. Notarize fetches its details through MPC-TLS; the notary signs commitments to the bytes without seeing them. Prove checks that signature and reads the leg from those bytes, in zero knowledge. Only COMPLETED legs can be proven.