Back to docs
API Reference

ZeroWage API

Integrate ZeroWage proof generation and Stellar contract interaction into your own systems.

Contract Details
NetworkStellar Testnet
Contract IDCCOEJ6QCZEFYDQTK53AAWINVB62BTPBJNZ7P5ZP2ELNHIDQEV3SMRDUD
RPC URLhttps://soroban-testnet.stellar.org
Network PassphraseTest SDF Network ; September 2015
POST/api/proof/generate

Generate a Groth16 proof for a payroll batch. Runs client-side — this endpoint documents the snarkjs interface.

Parameters
salariesnumber[]Array of salary amounts (max 20)
minSalarynumberMinimum salary floor for validation
Response
{
  "proof": {
    "pi_a": ["0x...", "0x..."],
    "pi_b": [["0x...", "0x..."], ["0x...", "0x..."]],
    "pi_c": ["0x...", "0x..."],
    "protocol": "groth16",
    "curve": "bn128"
  },
  "publicSignals": ["18500", "0", "5"]
}
POST/api/contract/verify

Submit a proof to the Soroban verifier contract on Stellar and record the payroll run.

Parameters
proofProofGroth16 proof object from /api/proof/generate
publicSignalsstring[]Public signals array
cycleIdstringHuman-readable payroll cycle identifier
employerAddressstringStellar G... address of the employer
Response
{
  "verified": true,
  "txHash": "e6b361204bb3a0d71a79ff7e...",
  "contractId": "CCOEJ6QCZEFYDQTK53AA...",
  "ledger": 54219003,
  "timestamp": "2026-06-21T02:14:00Z"
}
GET/api/runs/:id

Fetch a payroll run record from the Soroban contract storage.

Parameters
idstringPayroll run ID (employer + cycleId key)
Response
{
  "employer": "GBJWSYN6DB3F2DHNL6HUI...",
  "cycleId": "June 2026",
  "totalUsdc": 18500,
  "nRecipients": 5,
  "proofVerified": true,
  "timestamp": 1750470840
}