78trust / 100
Notarize Batch
by notary.forgemesh.io in AI models & inference
x402 APIPassing, checked 58 min ago
Notarize AI output in bulk: one signed Ed25519 attestation of the model response per record for up to 20 AI inferences in a single call — same content hash, receipt token, and anchor status as single notarization, giving you a cryptographic receipt for inference across an entire audit-trail pipeline.
POST https://notary.forgemesh.io/api/notarize/batch
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 441 ms typical, 551 ms slowest 5%
- Last check
- 58 min ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://notary.forgemesh.io/api/notarize/batch" \
-H "content-type: application/json" \
-d '{"records":[{"model_id":"openai/gpt-5","prompt":"What is 2+2?","response":"4"},{"model_id":"claude-fable-5","prompt":"Capital of France?","response":"Paris"}]}'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%2Fnotary.forgemesh.io%2Fapi%2Fnotarize%2Fbatch
const res = await pay("https://notary.forgemesh.io/api/notarize/batch", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"records":[{"model_id":"openai/gpt-5","prompt":"What is 2+2?","response":"4"},{"model_id":"claude-fable-5","prompt":"Capital of France?","response":"Paris"}]}),
});
console.log(await res.json());Example input
{
"records": [
{
"model_id": "openai/gpt-5",
"prompt": "What is 2+2?",
"response": "4"
},
{
"model_id": "claude-fable-5",
"prompt": "Capital of France?",
"response": "Paris"
}
]
}Example output
{
"attestations": [
{
"algorithm": "ed25519",
"anchor": {
"status": "pending"
},
"attestation_id": "att_0123456789abcdef01234567",
"client_timestamp": "2026-07-03T12:00:00Z",
"content_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"model_id": "openai/gpt-5",
"notarized_at": "2026-07-03T12:00:01.000Z",
"payload_stored": false,
"receipt_token": "private-receipt-token",
"receipt_url": "https://notary.forgemesh.io/api/receipt/att_0123456789abcdef01234567",
"signature": "base64-ed25519-signature",
"signer_pubkey": "base64-ed25519-public-key"
}
],
"count": 2
}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 |
|---|---|---|---|---|
| 58 min ago | Passed | 402 | 437 ms | $0.005 |
| 5 h ago | Passed | 402 | 551 ms | $0.005 |
| 8 h ago | Passed | 402 | 426 ms | $0.005 |
| 12 h ago | Passed | 402 | 559 ms | $0.005 |
| 15 h ago | Passed | 402 | 484 ms | $0.005 |
| 19 h ago | Passed | 402 | 408 ms | $0.005 |
| 23 h ago | Passed | 402 | 479 ms | $0.005 |
| 26 h ago | Passed | 402 | 410 ms | $0.005 |
| 30 h ago | Passed | 402 | 432 ms | $0.005 |
| 33 h ago | Passed | 402 | 445 ms | $0.005 |
| 37 h ago | Passed | 402 | 510 ms | $0.005 |
| 42 h ago | Passed | 402 | 441 ms | $0.005 |