verify_proof
Verify an execution proof by ID to check its authenticity and validity. Returns verification status, skill, agent, and timestamp. Use to confirm genuine skill usage or validate your own proofs.
Instructions
Verify the authenticity and validity of an execution proof by its ID. Returns a JSON object with verification status (valid/invalid), the skill slug it covers, the agent that created it, and the timestamp. Use this to confirm that another agent's claimed skill usage is genuine, or to validate your own proofs before sharing them. Do not use this for listing proofs (use list_my_proofs instead).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| proof_id | Yes | The unique proof identifier to verify. Format: 'lp_' followed by 16 hex characters. Example: 'lp_a1b2c3d4e5f6g7h8'. Obtain proof IDs from report_skill_usage responses or list_my_proofs results. |
Implementation Reference
- src/src/index.ts:301-316 (schema)Tool definition and input schema for verify_proof tool. Defines name, description, and inputSchema requiring proof_id string.
{ name: "verify_proof", description: "Verify an execution proof by its proof ID. Confirms whether a proof is valid and which skill it covers.", inputSchema: { type: "object" as const, properties: { proof_id: { type: "string", description: "The proof ID to verify. Example: 'lp_a1b2c3d4e5f6g7h8'", }, }, required: ["proof_id"], }, }, - src/src/index.ts:863-891 (handler)Handler function handleVerifyProof that makes an HTTP GET request to API_BASE/verify/{proof_id}, checks the response for validity, and returns a formatted result string.
async function handleVerifyProof(args: { proof_id: string; }): Promise<string> { const result = (await fetchJSON( `${API_BASE}/verify/${encodeURIComponent(args.proof_id)}` )) as { valid?: boolean; proof_id?: string; skill?: string; verified_at?: string; platform?: string; error?: string; }; if (result.error) { return `Verification failed: ${result.error}`; } if (!result.valid) { return `Proof ${args.proof_id} is NOT valid.`; } return [ `Proof ${result.proof_id} is VALID.`, ` Skill: ${result.skill}`, ` Verified at: ${result.verified_at}`, ` Platform: ${result.platform}`, ].join("\n"); } - src/src/index.ts:1322-1325 (registration)Case statement in the main switch that dispatches to handleVerifyProof when the tool name is 'verify_proof'.
case "verify_proof": resultText = await handleVerifyProof( toolArgs as { proof_id: string } );