13trust / 100
Verify Deliverable
by Agent Output Verifier in Security & trust
x402 APIFailing, checked 3 h ago
Check agent output before you accept or pay for a deliverable: your JSON Schema plus rules like totals matching and unique IDs. Pass/fail, % of checks passed, fix hints and a signed receipt. $0.02 USDC, no signup, x402 v2.
POST https://fastapi-service-5ag4.onrender.com/verify/deliverable
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 0.0%
- Response time
- - typical, - slowest 5%
- Last check
- 3 h ago: Served content without asking for payment
- Next check
- any minute now
How to call it
# bash or zsh: see the payment challenge (nothing is charged)
curl -g -i -X POST 'https://fastapi-service-5ag4.onrender.com/verify/deliverable' \
-H 'content-type: application/json' \
--data-raw '{"agent_id":"example-agent-001","enforce_rules":true,"expected_schema":{"properties":{"findings":{"items":{"properties":{"id":{"type":"string"},"summary":{"minLength":1,"type":"string"}},"required":["id","summary"],"type":"object"},"minItems":1,"type":"array"},"report_title":{"minLength":1,"type":"string"}},"required":["report_title","findings"],"type":"object"},"rules":[{"field":"findings[].id","type":"unique"}],"submitted_output":{"findings":[{"id":"F-1","summary":"Vendor A raised its entry plan by 10%."},{"id":"F-2","summary":"Vendor B added a free tier."}],"report_title":"Q3 competitor pricing scan"},"task_id":"example-task-002"}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ffastapi-service-5ag4.onrender.com%2Fverify%2Fdeliverable
const res = await pay("https://fastapi-service-5ag4.onrender.com/verify/deliverable", {
method: "POST",
headers: { "content-type": "application/json" },
body: "{\"agent_id\":\"example-agent-001\",\"enforce_rules\":true,\"expected_schema\":{\"properties\":{\"findings\":{\"items\":{\"properties\":{\"id\":{\"type\":\"string\"},\"summary\":{\"minLength\":1,\"type\":\"string\"}},\"required\":[\"id\",\"summary\"],\"type\":\"object\"},\"minItems\":1,\"type\":\"array\"},\"report_title\":{\"minLength\":1,\"type\":\"string\"}},\"required\":[\"report_title\",\"findings\"],\"type\":\"object\"},\"rules\":[{\"field\":\"findings[].id\",\"type\":\"unique\"}],\"submitted_output\":{\"findings\":[{\"id\":\"F-1\",\"summary\":\"Vendor A raised its entry plan by 10%.\"},{\"id\":\"F-2\",\"summary\":\"Vendor B added a free tier.\"}],\"report_title\":\"Q3 competitor pricing scan\"},\"task_id\":\"example-task-002\"}",
});
console.log(await res.json());Example input
{
"agent_id": "example-agent-001",
"enforce_rules": true,
"expected_schema": {
"properties": {
"findings": {
"items": {
"properties": {
"id": {
"type": "string"
},
"summary": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"summary"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"report_title": {
"minLength": 1,
"type": "string"
}
},
"required": [
"report_title",
"findings"
],
"type": "object"
},
"rules": [
{
"field": "findings[].id",
"type": "unique"
}
],
"submitted_output": {
"findings": [
{
"id": "F-1",
"summary": "Vendor A raised its entry plan by 10%."
},
{
"id": "F-2",
"summary": "Vendor B added a free tier."
}
],
"report_title": "Q3 competitor pricing scan"
},
"task_id": "example-task-002"
}Example output
{
"agent_id": "example-agent-001",
"attestation": {
"algorithm": "Ed25519",
"key_version": "v1-example",
"signature": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"timestamp": "2026-01-01T00:00:00+00:00"
},
"enforce_rules": true,
"errors": [],
"errors_detail": [],
"errors_detail_omitted": 0,
"errors_detail_total": 0,
"errors_omitted": 0,
"errors_total": 0,
"flags": [],
"flags_omitted": 0,
"flags_total": 0,
"hints": [],
"hints_omitted": 0,
"hints_total": 0,
"integrity_checks": {
"passed": 12,
"ratio": 1,
"total": 12
},
"next_actions": [
{
"action": "attach_receipt",
"for": "seller"
},
{
"action": "proceed_to_payment",
"for": "buyer"
}
],
"output_hash": "dc7786e4a55de9423a7b14297944b00ebe8e5c709f2063a78230aa2df7004b50",
"overall": {
"passed": 28,
"ratio": 1,
"total": 28
},
"request_hash": "0defdf7d0e73e14d785a03658d6f2b3ef6e210569516387e2cc1d057ed6ba6b0",
"result": "pass",
"rules_hash": "a888b42989834a385f47403af04349f49bb47c950918ed100dc1df20d9d30a3b",
"schema_compliance": {
"passed": 16,
"ratio": 1,
"total": 16
},
"schema_hash": "55cdc036dc420c8ed2f46ea0a6f2df6f99821be1b9b388d5267736066d66579b",
"strict_content_check": false,
"summary": {
"blocking_checks": [],
"result": "pass"
},
"task_id": "example-task-002",
"verification_id": "0b8f2a6e-5d1c-4f43-9a07-3c61d9e2b8a4",
"verified_at": "2026-01-01T00:00:00+00:00",
"verifier_version": "0.4.1",
"verify": {
"canonicalization": "RFC 8785 (JCS)",
"hash_algorithm": "SHA-256",
"key_version": "v1-2026-09c",
"mcp": "https://fastapi-service-5ag4.onrender.com/mcp",
"public_key_url": "https://fastapi-service-5ag4.onrender.com/.well-known/agent-card.json",
"service": "Agent Output Verifier"
}
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Served content without asking for payment | 200 | 730 ms | - |
| 7 h ago | Served content without asking for payment | 200 | 491 ms | - |
| 12 h ago | Served content without asking for payment | 200 | 537 ms | - |
| 16 h ago | Served content without asking for payment | 200 | 445 ms | - |
| 20 h ago | Served content without asking for payment | 200 | 247 ms | - |
| 24 h ago | Served content without asking for payment | 200 | 173 ms | - |
| 29 h ago | Served content without asking for payment | 200 | 217 ms | - |
| 32 h ago | Served content without asking for payment | 200 | 185 ms | - |
| 37 h ago | Served content without asking for payment | 200 | 204 ms | - |
| 41 h ago | Served content without asking for payment | 200 | 218 ms | - |
| 45 h ago | Served content without asking for payment | 200 | 202 ms | - |
| 2 days ago | Served content without asking for payment | 200 | 427 ms | - |
| 2 days ago | Served content without asking for payment | 200 | 303 ms | - |
| 2 days ago | Served content without asking for payment | 200 | 188 ms | - |
| 3 days ago | Served content without asking for payment | 200 | 256 ms | - |