Sandbox

Watch a proof of reserves land on Stellar.

Step through the real Solva pipeline against a mock open-banking bank: connect the bank, read a signed balance, prove reserves cover liabilities without revealing a single customer, publish the proof on-chain, and verify it. Each institution proves to its own contract. The insolvent case is meant to fail. That is the point: Solva will not prove a lie.

How a proof is made, under the hood.

Five steps, end to end. Watch it play, or step through each operation yourself.

Step 1 · Attest

Authenticate to the bank

Solva never holds bank credentials. The institution's orchestrator runs a standard OAuth handshake against the bank so it can read balances on the institution's behalf, with a short-lived token.

solva · attest
GET /oauth/authorize?client_id=solva → code
POST /oauth/token (code) → bearer (expires in 1h)
1/14

Now run it for real.

Drive the live pipeline against a running stack: each step makes a real call, with the real artifact it returns.

Institution
Scenario
  1. 1
    Registry
    The institution's own proof-registry contract.
  2. 2
    Connect bank
    OAuth into the mock open-banking sandbox.
  3. 3
    Fetch signed reserves
    An ECDSA-signed balance per account.
  4. 4
    Prove & publish
    UltraHonk proof of R ≥ L, published on-chain.
  5. 5
    Verify on-chain
    Confirm the published proof against the ledger.
  6. 6
    Customer inclusion
    A customer proves their balance is included.