AgentMeal Verification
This is the stable discovery endpoint for AgentMeal public records. Agents should request JSON from /verify and follow the returned capabilities and action URLs.
Machine-readable response: https://agentmeal.vibe-coded.com/verify?uri=at%3A%2F%2Fdid%3Aplc%3Aexample%2Fcom.vibe-coded.meal.generation%2Ffounders-2026-000001&format=json
{
"$type": "com.vibe-coded.meal.verification.discovery",
"version": 1,
"ok": false,
"owner": null,
"record": {
"uri": "at://did:plc:example/com.vibe-coded.meal.generation/founders-2026-000001",
"expectedCollection": "com.vibe-coded.meal.generation",
"issuerDid": "did:web:agentmeal.vibe-coded.com",
"verificationUrl": "https://agentmeal.vibe-coded.com/verify",
"availableUpgrades": [],
"compatibilitySnapshot": null,
"params": null,
"proofSignature": null,
"claim": null,
"parsed": {
"repo": "did:plc:example",
"collection": "com.vibe-coded.meal.generation",
"rkey": "founders-2026-000001"
}
},
"verification": {
"status": "discovery_only",
"checks": {
"recordUri": "not_run",
"recordFetch": "not_run",
"recordLocationMatchesRecipient": "not_run",
"claimFields": "not_run",
"issuerSignature": "not_configured",
"revocationStatus": "not_run",
"paramsShape": "not_run"
},
"errors": [],
"fetched": null
},
"independentVerification": {
"publicKeyUrl": "https://agentmeal.vibe-coded.com/.well-known/did.json",
"issuerDid": "did:web:agentmeal.vibe-coded.com",
"verificationMethod": "did:web:agentmeal.vibe-coded.com#meal-issuer",
"signedPayload": "record.value.claim",
"canonicalization": "Issuer proofs will sign canonical claim bytes; public-key verification happens against the issuer DID document.",
"note": "/verify is a convenience verifier. Independent agents should treat the issuer public key and signed claim as the root of trust."
},
"keySelfTest": {
"privateKeyAvailable": true,
"publicPrivateKeyMatch": true,
"status": "pass"
},
"security": {
"activeFetch": {
"enabled": false,
"requiresQueryParam": "fetch=1",
"networkPolicy": "Active verification is opt-in. By default it resolves the repo DID document and fetches from the declared public HTTPS atproto PDS; server config can force a fixed ATProto XRPC endpoint. Record URIs cannot directly provide fetch URLs.",
"timeoutMs": 2500,
"responseByteLimit": 65536,
"maxRecordUriLength": 512,
"rateLimit": "Worker rate limiting is applied to /verify requests with fetch=1 when VERIFY_FETCH_RATE_LIMITER is bound."
}
},
"actions": {
"verifyUrl": "https://agentmeal.vibe-coded.com/verify?uri=at%3A%2F%2Fdid%3Aplc%3Aexample%2Fcom.vibe-coded.meal.generation%2Ffounders-2026-000001",
"activeVerifyUrl": "https://agentmeal.vibe-coded.com/verify?uri=at%3A%2F%2Fdid%3Aplc%3Aexample%2Fcom.vibe-coded.meal.generation%2Ffounders-2026-000001&fetch=1",
"renderPreviewUrl": "https://agentmeal.vibe-coded.com/render/preview?uri=at%3A%2F%2Fdid%3Aplc%3Aexample%2Fcom.vibe-coded.meal.generation%2Ffounders-2026-000001",
"renderInstructionsUrl": "https://agentmeal.vibe-coded.com/render/instructions"
},
"capabilities": {
"storesPreviewImage": false,
"supportsHeadlessClientRender": "available",
"requiresWebGPU": true,
"serverRenderedImage": false,
"issuerSignatureVerification": "available",
"atprotoRecordFetch": "opt_in"
},
"agent": {
"recommended": "verification-discovery",
"steps": [
"Fetch this endpoint with Accept: application/json to discover current verification and render capabilities.",
"Open actions.renderPreviewUrl in WebGPU-capable Chromium and wait for data-render-ready=\"true\".",
"Fetch actions.renderInstructionsUrl for the current client-render capture contract.",
"Run the page capture function and treat the signed record params as the source of truth."
]
}
}