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.

quickstart.sh
# 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
prove.ts
import { Solva } from "@solva/sdk";
const solva = new Solva({ apiKey: process.env.SOLVA_KEY });
// build a proof from your ledger snapshot
const proof = await solva.prove({
reserves: ledger.reserves, // stays on-prem
liabilities: ledger.liabilities, // never leaves
});
// settle it on Stellar
const receipt = await solva.publish(proof);
console.log(receipt.url); // public, verifiable

The API

Three primitives. Everything else is built on top.

POST/v1/prove

prove

Generate a zero-knowledge proof that reserves cover liabilities, locally.

POST/v1/publish

publish

Settle a proof inside the Stellar contract and write it to the registry.

GET/v1/verify

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.