Skip to content
Solva

See it work

Run a real proof on Stellar.

A real run, end to end: a reserve balance, signed by a custodian or read from Stellar; a commitment to what is owed; a proof; a contract on Stellar Testnet that checks it; and the inclusion path a holder uses to confirm they were counted. Two example institutions use Solva's sandbox as the custodian; a third, Harbor Wallet, holds real Testnet USDC read from Stellar. Everything after the reserve source is the same code a pilot runs.

What one run produces

ProofOne, checked on Stellar
Balances published0
Published tothe institution's contract
Checked bySoroban, Testnet
Fee0.0122514 XLM

Real pipelineSandbox and on-chain reserves

Run it

Six steps, all of them real.

Pick an institution, then run the steps one at a time. Kestrel and Solstice use a stand-in custodian run by Solva, with three scenarios. Harbor Wallet's reserves are real Testnet USDC, read from Stellar on every run. Every published proof lands on Stellar Testnet, where you can open it.

0/6steps done
Institution
Scenario
  1. 1

    Your registry entry

    The institution's own contract on Stellar Testnet.

    running…
  2. 2

    Connect the reserve source

    Open access to the accounts that hold the reserves.

  3. 3

    Read the reserve balance

    One balance per reserve account, signed by the custodian or read from Stellar.

  4. 4

    Prove coverage and publish

    Prove that reserves cover the committed total, then publish it on Stellar.

  5. 5

    Check the published record

    Read the record from the contract on Stellar and check that reserves cover what is owed.

  6. 6

    A holder checks they were counted

    The contract confirms one holder's balance was counted.

Stellar TestnetReserve source: Solva's sandbox, signed balancesExample customer balances

Step by step

What each step does.

  1. Your registry entry

    Each institution publishes to its own contract on Stellar. A proof for one never touches another, and the entry is controlled by the institution's own passkey.

  2. Connect the reserve source

    Solva holds no credentials for your reserve source. For a custodian, it runs a standard authorisation handshake, then reads balances with a short-lived token; on this page the custodian is Solva's sandbox. For reserves held on Stellar, nothing needs authorising: account balances are public.

  3. Read the reserve balance

    A custodian returns each balance with its signature, and the signature is checked before the balance goes anywhere near the proof. Reserves held on Stellar are read straight from the account on the ledger, which anyone can check on an explorer.

  4. Prove coverage and publish

    What is owed is committed as one value. The proof shows that the total behind it is at most the reserve balance, and the contract on Stellar checks the proof before it stores the result.

  5. Check the published record

    This page reads the latest proof straight from the institution's contract with get_latest_proof, as anyone can. The record carries the reserve total, the committed total and the time, and nothing about any single balance.

  6. A holder checks they were counted

    A holder presents their account reference, this page looks up their inclusion path for the published proof, and the contract checks that path with verify_inclusion. No other customer is named; the path shows unnamed subtotals, including one neighbouring balance.

From the sandbox to a pilot

Three things change in a pilot. The proof stays the same.

  1. Your own reserve sourceComing soon

    Reserves held in Stellar accounts are read from the ledger today, as Harbor Wallet's are on this page. Connecting a real custodian that signs your reserve balance is coming soon; on this page the sandbox stands in for one. Everything after the reserve source is the same code.

  2. Supply read from StellarComing soon

    For an anchor, what is owed will be the token's supply at the ledger of the check, read straight from Stellar. Today what is owed is a stored list of holder balances.

  3. Every day, on a scheduleComing soon

    A pilot will run these steps once a day by default, with a missed day written as stale and never filled in afterwards. On Testnet today a cycle runs on request.

Coverage record · Example: what a pilot writes

Northway Custody · USDC

Covered
101.90%Coverage
Owed to customers18,420,905.12
Held in reserve18,771,220.00
Surplus350,314.88

Customer balances, committed as one value. Reserves are the balance of the reserve accounts, signed by the custodian or read from Stellar.

Ledger 3,411,9023 hours agoExample, not read from a contract

For institutions

Run this on your own reserves.

Pilots are open to anchors and custodial apps on Stellar. Tell us about your asset and we will plan your first real record with you.

Talk to us

For readers

Read a record.

See what a holder, a wallet, a lending pool or an auditor sees, and how one record answers the question each of them asks.

The coverage record