{"ok":true,"site":{"host":"proof-courier-verifier.vercel.app","url":"https://proof-courier-verifier.vercel.app/fellowship","type":"live","desc":"Proof Courier Verifier","tools":[{"name":"fellowship_get_requirements","kind":"act","impl":"imperative","description":"Returns the fellowship policy and one active verifier-issued challenge. Repeated calls reuse an active challenge; after expiry or consumption, the call starts a fresh verification attempt and clears the previous attempt result.","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/fellowship","pages":["/fellowship","/"]},{"name":"fellowship_evaluate_counterproposal","kind":"act","impl":"imperative","description":"Read-only. Checks whether a wallet counterproposal still satisfies the fellowship while preserving the ten-minute, minimum-disclosure, human-submission boundary.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"audience":{"type":"string","minLength":1,"maxLength":120},"purpose":{"type":"string","minLength":1,"maxLength":240},"claimIds":{"type":"array","items":{"type":"string"},"maxItems":20,"uniqueItems":true},"nonce":{"type":"string","minLength":1,"maxLength":80},"ttlSeconds":{"type":"number","minimum":1,"maximum":604800},"requestedPrivateFields":{"type":"array","items":{"type":"string"},"maxItems":20,"uniqueItems":true},"requestsAutomaticSubmission":{"type":"boolean"}},"required":["audience","purpose","claimIds","nonce","ttlSeconds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/fellowship","pages":["/fellowship","/"]},{"name":"fellowship_verify_proof","kind":"act","impl":"imperative","description":"Verifies a purpose-bound proof bundle for integrity, minimum disclosure, audience, purpose, expiry, and challenge reuse within the active verifier session. It never submits the application.","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"proofBundle":{"type":"string","minLength":100,"description":"Encoded bundle returned by wallet_export_proof."}},"required":["proofBundle"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/fellowship","pages":["/fellowship","/"]},{"name":"fellowship_get_verification_state","kind":"answer","impl":"imperative","description":"Reads whether a proof passed and whether the person may now submit the synthetic application.","annotations":{"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/fellowship","pages":["/fellowship","/"]}],"category":"Developer Tools","apiSurface":"spec","toolCount":4}}