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 the SDK$ npm i @solva/sdk-ts# or run the whole pipeline locally against mock open-banking$ git clone https://github.com/jes-labs/solva && cd solva$ just demo✓ prover, orchestrator, and sandbox up · publishing to Testnet
Quickstart
Read and verify in a few lines.
The SDK resolves an institution to its own on-chain registry and reads its latest proof. Proving and publishing run in the orchestrator, so reserves and liabilities never touch your app. An in-browser prover is on the roadmap.
- Typed end to end (TypeScript)
- Reads proofs straight from Stellar
- No circuit knowledge required
import { Solva } from "@solva/sdk-ts";const solva = new Solva({ network: "testnet", tenant: "meridian-bank" });// read the latest solvency proof, verified on-chainconst proof = await solva.getOnChainLatestProof();console.log(BigInt(proof.reservesTotal) >= BigInt(proof.liabilitiesTotal)); // true// a customer confirms their balance was countedconst { included } = await solva.verifyInclusion("cust-001");
The API
Three primitives: run a cycle, read the proof, verify inclusion.
run a cycle
Fetch signed reserves, generate the zero-knowledge proof, and publish it on-chain. One call runs the full pipeline.
latest proof
The latest published proof for an institution: reserves, liabilities, root, and timestamp.
inclusion
The data a customer needs to confirm their balance was counted in the committed tree.
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.
$ curl -X POST $SANDBOX/admin/scenarios/solvent
→ reserves 16,000,000 · liabilities 9,000,000
$ curl -X POST $ORCH/v1/cycles -d '{"tenant_id":"meridian-bank"}'
✓ proof generated and published to Testnet
✓ reserves ≥ liabilities
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
get_solvency({
institution_id: "meridian-bank"
})
→ {
solvent: true,
reservesTotal: "16000000",
liabilitiesTotal: "9000000",
verifiedOnChain: true
}
Ship your first proof today.
Free in the sandbox. No customer data, no circuit knowledge.