RisePIR private eth_getBalance

00 · Private information retrieval

The server answers. It never learns the question.

A live eth_getBalance over lattice PIR: this page sends only LWE ciphertext, the server computes over every account it holds, and the reply decrypts only here. The address you type never leaves this page — in any form.

01 One-time setup

  1. Cryptographic engine WebAssembly, built from the same Rust as the CLI client
  2. Hint download one public matrix, identical for every visitor — it carries nothing about you
  3. Pin to a finalized block expanded locally, so every answer is labelled with the block it is as of
0%

Fetching the cryptographic engine…

04 What this does not protect

  • The code you are running. This page and its WebAssembly came from the same server you are querying. PIR stops that server from learning your address if the client is honest — but whoever serves the page chooses what the client is. For a stronger guarantee, run the client yourself: risepir-rpc client --pir-url … puts the same rewind client on your own machine, and the wasm here is built from that same Rust.
  • Who is asking. The cryptography hides which account, not who wants to know. The server sees your IP address, the time, and how often you ask. Use Tor (or any anonymising transport) if that matters to you; this client works fine over one.
  • Freshness. Answers are as of the latest finalized block, roughly 13 minutes behind what a block explorer shows. That is deliberate: finalized blocks do not reorganise, so an answer cannot be quietly invalidated. A balance that changed in the last few minutes will not appear yet.