Tanilo
Pricing

Signed receipts for
autonomous agent actions.

POST /evaluate and POST /v1/verify-facts are live in free beta, rate-limited, no key needed, and return signed receipts. A receipt's signature can be checked offline against the published keys; retired keys stay published. Self-serve accounts are not open yet: join early access. x402 pay-per-call is not available yet. Enterprise inquiries welcome.

Tanilo was AgentOracle until September 2026. Keys, packages and repositories created before the rename keep their original names, so signatures on everything already issued can still be checked against the published keys.

Verify

Free

Check a receipt's signature offline against the published JWKS. No account required. A valid signature shows the bytes are unchanged since signing; whether the claim is true is a separate question.

  • pip install tanilo-receipt-verify
  • Node reference verifier in the spec repo
  • Zero network dependency after first JWKS fetch
  • Cross-language conformance vectors
  • MIT licensed across all reference code
Use it for
Dispute resolution, audit trail verification, third-party settlement checks, linking to Tanilo receipts from your own product.

Self-Serve

Self-serve accounts are not open yet: join early access. /evaluate and /v1/verify-facts are live in free beta, rate-limited, no key needed. The first pilot is free within an agreed scope; extensions and additional work are agreed separately in writing. Enterprise pricing is agreed in writing before paid work begins.

Coming soon

Pay-per-Call

Not available yet

High-frequency agent loops. Pay-per-call is not available; pricing will be published before launch.

  • POST /evaluate — live now in free beta, rate-limited, no key or payment header needed
  • Per-call metering, no floor
  • Same envelope as Self-Serve tier
  • Access details will be documented before launch
Use it for
High-frequency agent loops that would exceed self-serve limits; bursty workloads; usage where per-call accounting is a first-class requirement.

Enterprise

Custom

Discuss requirements beyond the pilot. We'll assess feasibility and agree scope, volume limits, support and fees in writing before any additional work begins. On-prem deployment is not available.

Use it for
Regulated workflows requiring durable action records; multi-party settlement flows; audit-shop and compliance body deployments.

Deterministic mode — live, free during beta

Live at api.tanilo.io, rate-limited during beta, no key needed. For claims that are lookups, not judgments — signature verification, hash comparison, registry checks, regex matching, timestamp validation, JSON schema conformance — POST /v1/verify-facts skips LLM judgment entirely. The receipt records check_mode: "deterministic" and check_types_applied[] inside the signed payload. The signature makes that declaration tamper-evident; it does not independently prove how the service executed. Same envelope, same verifier, same published JWKS. If a claim cannot be resolved by a shipped check type the endpoint returns 422 claim_not_deterministic — there is no fallback to the judgment path, because a silent escalation would make the mode meaningless. Read the docs →

Every receipt, on every tier, is:

Not a marketing tag. Each property is a link to the artifact that proves it.

PropertyHow to verify
Offline-verifiable Cache the public keys for the receipts you keep and check those signatures offline; fetch newly published keys for receipts signed after a key change. Retired keys stay published. Sample: jwks.json.
Byte-recomputable RFC 8785 JCS canonicalization + Ed25519 (RFC 8032). Two reference verifiers ship the same bytes.
A byte-identical second implementation Built by a different party from the published text alone — AgentTrust's implementation of the verification envelope, landed as vectors and fixtures in argentum-core/examples/conformance/agenttrust-v1 (PR #33, merged 2026-07-16).
IETF-filed Format specified in draft-krausz-verification-state.
Conformance-vector-tested Published cross-language reference verifiers in the spec repo.

Questions

How is a receipt verified?

Fetch the receipt bytes. Canonicalize per RFC 8785 JCS. Verify the Ed25519 signature against the JWK identified by kid in the protected header, resolvable from the published JWKS. Any of the reference verifiers does all three in one call.

What does "offline" mean?

Once the JWKS is cached, verification requires zero network access to Tanilo. Your side.

Can I issue receipts my team signs?

Enterprise tier only. Tanilo's live endpoints sign the results of checks they perform themselves; they do not sign a verdict supplied by the caller.

What happens if the signing key rotates?

Retired keys stay published in the JWKS, so signatures made under them can still be checked. A valid signature shows the bytes are unchanged since signing; it does not say the claim is true.

Is this the receipt format used by any standard body?

The receipt format is filed as an IETF Internet-Draft. An open draft revision covering sealed evidence and multi-clock anchors is in review as PR #5 on the spec repo — pointed at, not part of the shipped envelope.

Checking a signature is free and offline. /evaluate and /v1/verify-facts are live in free beta, rate-limited, no key. Self-serve accounts are not open yet: join early access. x402 pay-per-call is not available yet. Enterprise inquiries welcome.