Pinned Tweet
AgentOracle is now Tanilo.
Before an AI agent acts on a claim, we check if it's true — then sign a receipt anyone can verify offline, without trusting us.
IETF draft -02 is filed. Verifier on PyPI.
tanilo.io
Would you let this AI proceed?
Permission: passed.
Source lookup: timed out.
Validation: never ran.
Yet the workflow says “success.”
A missing check is not a pass.
That principle guides our work on Tanilo: verification before AI acts.
tanilo.io
14
Tanilo retweeted
New: Tanilo's spend-cap check.
Before an agent buys, it compares price × quantity exactly with the cap left from your inputs.
3 × $12.50, $30 left → contradicted, $7.50 over.
Receipt signed when signing succeeds. No funds reserved.
Free beta: tanilo.io/docs/spend-cap-che…
New: Tanilo's spend-cap check.
Before an agent buys, it compares price × quantity exactly with the cap left from your inputs.
3 × $12.50, $30 left → contradicted, $7.50 over.
Receipt signed when signing succeeds. No funds reserved.
Free beta: tanilo.io/docs/spend-cap-che…
Tanilo retweeted
AER-1 -15 is live. two-party verification complete.
@Tanilo_io ran the full AER-1 interop chain on their side: 15/15 conformance, independent hash recompute matches, signature verifies against live JWKS, anchored on GOAT mainnet.
two independent systems. two independent verifiers. one checkable chain.
that’s what a standard looks like.
ietf.org/archive/id/draft-za…
Before and after, in one checkable chain:
• Tanilo receipt: offered USD 2.00 vs supplied term USD 1.00 → contradicted, gate halt
• AER-1 receipt (@brennanzambo): the follow-on call, held, referencing ours by its canonical hash
Each can be checked independently.
github.com/TKCollective/tani…
Recent Tanilo updates: contract-price checks in free beta, our own signing key, and GOAT anchoring.
Compare offered unit prices with caller-supplied terms.
Discuss a scoped, capped 30-day free pilot: tanilo.io
50
AI agents will carry 3 receipts:
1. payment: the money moved
2. delivery: what happened
3. claim: the premise was checked before acting
Tanilo does #3.
Live now: contract price check. Offer vs. your terms → verified, contradicted or couldn't establish. Signed. Public rule.
tanilo.io/docs/contract-pric…
3
52
Good framing: safety layers that fail independently, enforcement below the agent, and signals that can only reduce what an agent is allowed to do.
One layer worth adding: checking the premise. An agent can stay inside every permission boundary and still act on a false claim. A failed or unresolved check should withhold the action, never expand what the agent may do.
Agent governance is an engineering problem.
We’ve built safeguards into Perplexity’s infrastructure, harnesses, and tools, and put them to work across our products.
Today we're sharing how we engineer safer agents:
perplexity.ai/hub/blog/how-w…
32
A verifier that can only say "valid" will eventually say it when it shouldn't.
IETF draft defines four outcomes instead:
verified: checked, held
contradicted: checked, failed
indeterminate: checked, didn't resolve
not_evaluated: no check ran
Reason codes where required. A claim that wasn't checked can't come back verified.
Individual Internet-Draft, work in progress, not endorsed by the IETF:
datatracker.ietf.org/doc/dra…
33
Spec:
datatracker.ietf.org/doc/dra…
Verify a receipt offline:
pip install tanilo-receipt-verify
Genuine receipt + published keys → valid.
No keys → indeterminate. Never valid.
Garbage input → invalid.
42
Logs tell you what the system said happened.
A signed receipt tells you what was actually checked before the action was allowed — and what was refused.
One is archaeology. The other is evidence.
51
Merged into Virtual-Protocol/acp-cli-demos.
pip install agentoracle-receipt-verify
python3 verify.py receipt.json
status: valid
Ed25519 verified against our live JWKS.
Unchecked never reports valid. @virtuals_io
Production receipt + expected output:
github.com/Virtual-Protocol/…
52
We’re pre-registering an experiment before running it. Results in three weeks — whatever they show.
1
47
MIT-licensed harness, public repo, raw JSONL published with the writeup, plus a full signed-receipts evidence trail (RFC 8785 canonical bytes, Ed25519 JWS) for every gate decision.
Re-run it yourself: github.com/TKCollective/agen…
1
12










