Developers
Three calls to a proof.
A typed SDK, a mock open-banking sandbox, and an on-chain registry you can query. Prove, publish, and verify inclusion without ever touching a circuit.
# install$ npm i @solva/sdk# start a local sandbox (mock open-banking)$ npx solva sandbox up# first proof in ~30s$ npx solva prove --demo✓ proof 0x7a3f…e3f1 · reserves ≥ liabilities
Quickstart
Prove and publish in one file.
The SDK runs the prover locally against your data and returns a proof you can publish to Stellar. Reserves and liabilities stay on your machine.
- Typed end to end (TypeScript)
- Works in Node and edge runtimes
- No circuit knowledge required
import { Solva } from "@solva/sdk";const solva = new Solva({ apiKey: process.env.SOLVA_KEY });// build a proof from your ledger snapshotconst proof = await solva.prove({reserves: ledger.reserves, // stays on-premliabilities: ledger.liabilities, // never leaves});// settle it on Stellarconst receipt = await solva.publish(proof);console.log(receipt.url); // public, verifiable
The API
Three primitives. Everything else is built on top.
prove
Generate a zero-knowledge proof that reserves cover liabilities, locally.
publish
Settle a proof inside the Stellar contract and write it to the registry.
verify-inclusion
Confirm a balance was counted, or re-check any published proof.
Sandbox
A mock open-banking world to build against.
Spin up synthetic institutions, ledgers, and customer balances. Generate proofs against fake data, then point the same code at production.
$ solva sandbox seed --bank demo
→ created 12,480 mock accounts
→ reserves $48.2M · liabilities $41.7M
$ solva prove --bank demo
✓ reserves ≥ liabilities (margin 1,240 bps)
✓ published 0x91b4…c2a0
Solvency oracle · MCP
A solvency feed your agents can trust.
Expose verified solvency over the Model Context Protocol. An autonomous agent can check a counterparty before it moves funds, and get a cryptographic answer rather than a claim.
Read about the oracle →// MCP tool call
solva.check_solvency({
entity: "meridian-bank"
})
→ {
solvent: true,
margin_bps: 1240,
proof: "0x7a3f…e3f1"
}
Ship your first proof today.
Free in the sandbox. No customer data, no circuit knowledge.