Local CLI and JSON

Evaluate compatibility before you buy.

The Community engine and doctor are the evaluation path. Guard adds local supervision around the same versioned engine and public file contracts.

Release status: no signed exact-contract Community evaluation artifact or production Guard artifact is published yet. Source commands and interface examples are not release evidence. See current gates.

Free resource estimator (no install, no account)

The only TinyZKP-hosted API. It answers how much RAM, scratch, and I/O a proof configuration would need, and whether TinyZKP can prove it today — for any declared configuration, including fields and features outside the supported profile. An unprovable configuration still returns numbers, along with the reasons it is unprovable. It runs the same compiled cost model as tinyzkp-engine estimate; nothing rounds or adjusts the result. Use it from the browser, or directly:

curl -sS https://tinyzkp.com/v1/estimate \
  -H 'Content-Type: application/json' \
  -d '{"schema_version":1,"field":"goldilocks","extension_degree":2,
       "logical_rows":4194304,"trace_width":180,"max_constraint_degree":3,
       "public_values":8,"has_next_row_columns":true,
       "features":{"uses_lookups":false,"uses_buses":false,
         "uses_permutations":false,"uses_multi_table":false,
         "uses_preprocessed_columns":false,"uses_periodic_columns":false,
         "uses_recursion":false,"uses_gpu":false},
       "ram_budget_bytes":2147483648}'

Anonymous callers get 30 requests per hour. A free key raises that to 300:

curl -sS https://tinyzkp.com/v1/keys \
  -H 'Content-Type: application/json' \
  -d '{"email":"YOUR_EMAIL_ADDRESS"}'

# then send it on each estimate request
curl -sS https://tinyzkp.com/v1/estimate \
  -H 'Authorization: Bearer tzk_live_...' \
  -H 'Content-Type: application/json' -d @request.json

There is no account, password, dashboard, or confirmation email — one request returns one key, and your email is checked for shape and then discarded. Minting a key is also how you are counted as one distinct organization in TinyZKP's published demand measurement; anonymous requests are never counted toward it. Every field either endpoint records is listed at privacy-disclosure-v1.json. Neither endpoint accepts a workload, witness, trace, AIR, or proof.

Free Community doctor

Once the signed evaluation release is published, prepare JobManifestV1 and run:

tinyzkp-engine doctor --job job.json

The engine owns compatibility, automatic mode selection, RAM estimation, and scratch headroom. Treat DoctorReportV1 as potentially sensitive operational metadata and keep it local; never attach it, witness data, secrets, private paths, or license keys to a support request.

Guard v1 commands

CommandPurpose
tinyzkp activate --license-key-stdinValidate a current subscription once and write an owner-only, exact-release entitlement.
tinyzkp compatibility check --job job.jsonInvoke the exact engine compatibility contract without proving.
tinyzkp doctor --job job.jsonRun Guard’s canonical compatibility, resource, and automatic-mode preflight without proving.
tinyzkp run --job job.jsonSupervise the engine’s auto, conventional, or bounded plan.
tinyzkp resume --job-dir ./jobResume an exact-release-bound interrupted job.
tinyzkp verify --bundle proof.jsonVerify through the released ordinary verification path.
tinyzkp diagnostics --job job.jsonCreate a redacted SupportReportV1 for a pre-run failure.
tinyzkp diagnostics --job-dir ./jobCreate a redacted SupportReportV1 for a supervised job.
tinyzkp policy check --report run.json --baseline baseline.jsonFail CI on a declared resource regression using PolicyBaselineV1.
tinyzkp license status --jsonInspect local entitlement state without contacting the merchant.
tinyzkp version --jsonPrint Guard, engine, schema, and compatibility identities.

Job contract

JobManifestV1 describes workload inputs, mode, RAM budget, scratch budget, job directory, and output directory. Paths are resolved under declared roots. Traversal, symlinks, devices, unknown fields, oversized inputs, and incompatible releases fail closed.

{
  "schema_version": 1,
  "compatibility_profile": "tinyzkp-p3-goldilocks-v1",
  "mode": "auto",
  "ram_budget_bytes": 2147483648,
  "scratch_budget_bytes": 107374182400,
  "max_threads": 8,
  "roots": {
    "input_root": "inputs",
    "job_root": "jobs",
    "output_root": "outputs",
    "scratch_root": "scratch"
  },
  "job_dir": "job-001",
  "output_dir": "job-001",
  "scratch_dir": "job-001",
  "workload": {
    "air_package": "air-package-v1.json",
    "trace_manifest": "trace-manifest-v1.json",
    "chunks_dir": "chunks",
    "public_inputs": "public-inputs-v1.json",
    "logical_rows": 1048576,
    "trace_width": 8,
    "max_constraint_degree": 3,
    "field": "goldilocks",
    "extension_degree": 2,
    "permutation": "poseidon2_width_8",
    "verifier": "p3_uni_stark_0.6.1",
    "features": {
      "uses_lookups": false,
      "uses_buses": false,
      "uses_permutations": false,
      "uses_multi_table": false,
      "uses_preprocessed_columns": false,
      "uses_periodic_columns": false,
      "uses_recursion": false,
      "uses_gpu": false
    }
  }
}

This example is illustrative until the released schema is signed. Always validate against the published JSON Schema bundled with the exact release.

Output and exit behavior

Standard output contains one JobResultV1 JSON document. Standard error contains JSON Lines progress. Stable exit classes distinguish incompatible profile, invalid input, insufficient resources, resumable interruption, corrupt checkpoint, verification failure, license failure, and internal error.

Thin GitHub Action

The public composite action runs the same local commands and never receives or activates a license key. Use the Community engine for the free doctor; point paid policy steps at an already installed, activated Guard binary. There is no separate CI API or hosted execution path.

Container posture

The released OCI image runs as non-root, supports a read-only root filesystem, and requires explicit /work and /scratch mounts. After release activation, proving, resume, and verification must work with networking disabled.

Updates and checkpoints

Never delete an old release while it owns an unfinished job. A newer release must not consume an older checkpoint silently. Keep the exact artifact, signature, compatibility manifest, and entitlement alongside resumable work until verification completes.

Release-index states such as superseded and withdrawn control ordinary distribution, recommendation, and support. An already-downloaded activated binary makes no channel request, cannot learn either state, and remains locally usable; this is not a technical resume-only restriction. An already-downloaded, not-yet-activated v1 binary may still activate while the merchant reports the subscription active because TinyZKP runs no release-specific denylist or license service.

Support-safe diagnostics

Only SupportReportV1 from tinyzkp diagnostics --job or tinyzkp diagnostics --job-dir is designed to be shared for support. Inspect it before sharing and confirm it contains no witness values, input files, proof secrets, environment variables, private paths, access tokens, entitlement, or license key. Do not share DoctorReportV1. See support boundaries.