Contract address
Where the proof-registry contract is deployed.
The proof-registry contract holds the registry, the embedded verifying key, the UltraHonk proof verification, and the Poseidon2 inclusion check.
Each institution has its own proof-registry contract. There is no shared registry. The address below is a reference deployment. To read a specific institution's proofs, resolve its own contract from its institution id.
Entrypoints
publish_proof(proof, public_inputs). Verifies a proof and stores the root and totals. Only the institution's owner can call it.get_latest_proof(). Returns the latest reserves total, liabilities total, root, and timestamp.get_proof(id). Returns one proof by id.verify_inclusion(id, id_hash, balance, path). Recomputes the tree root from a customer leaf and path and checks it against the stored proof.
The read entrypoints need no account. Publishing is authenticated.
Resolving an institution's contract
The SDK resolves the contract for you from the institution id, then reads that contract. You do not need to know the address to read a proof.
const solva = new Solva({ network: "testnet", tenant: "my-institution" });
const latest = await solva.getOnChainLatestProof();Testnet
| Field | Value |
|---|---|
| Network | Test SDF Network ; September 2015 |
| Contract | CAYWB2IMDG753S3YF7DKVNLD7WBROYSP3JP5HEJET77W53UBWRD7ZX3Z |
| RPC | https://soroban-testnet.stellar.org |
Mainnet
| Field | Value |
|---|---|
| Network | Public Global Stellar Network ; September 2015 |
| Contract | not yet deployed |
| RPC | https://soroban.stellar.org |
The SDK reads these from its network defaults. Override them with the endpoints
option when you point at a different deployment.