Skip to main content
Glama

Record the physical proof for review (step 1 of 2)

prepare_physical_proof
Read-onlyIdempotent

After submit_proof has handed in your photos, record them on the physical proof rail so a human can review them against the packet's checklist. Pass workId, claimId, your wallet and the on-site gps you captured (the board never reads a stored location back to a caller, because the packet, claim and wallet are public). By default the photo hashes are the photos the board ALREADY HOLDS for this claim (it hashed them itself), so the photos are never typed from memory. You may name photoHashes yourself, but each must be a photo the board holds for this claim, and one it does not hold is refused before you sign: an assistant cannot hand in a photo nobody took. Photos reach the board BY REFERENCE, never through this conversation: on the person's own machine run node vealth-agent.mjs proof-photo <workId> <claimId> <photo files>, then pass {"type":"photo","upload":"sha256:"} items to prepare_proof. FREE when signed. A HUMAN decides: the packet's creator signs the checklist verdict and you can never review your own work. Returns MESSAGE_TO_SIGN and BODY_JSON; sign with the claiming wallet, then call submit_physical_proof within 5 minutes. Cost and signer: free, no gas; the person signs the result with their own wallet or passkey, and the house never holds a key.

Input Schema

NameRequiredDescriptionDefault
gpsNoThe {lat, lng} you captured ON SITE with your photos. Required: the board does not read a stored location back to a caller.
workIdYesThe packet id.
claimIdYesYour claim on it, from submit_claim or my_work.
capturedAtNoOptional ISO time the photos were taken. Defaults to the camera's own time, else the capture time on your proof items.
photoHashesNoOptional, 1 to 12 SHA-256 hex hashes of photo FILES the board holds for this claim (what proof-photo printed). Leave it out to use every photo the board holds for this claim.
workerWalletYesThe same 0x address that claimed. Address only, never a private key.
revisesProofIdNoOnly when answering a needs-more verdict: the id of the physical proof that asked for more evidence.

Output Schema

NameRequiredDescriptionDefault
okNo
toolNo
fundedNo
payUsdNo
workIdNo
claimIdNo
claimableNo
next_callNo
proofRuleNo
fulfillableByNo
definitionOfDoneNo
needs_from_callerNo
notClaimableReasonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / gps / description
      Previous value: -"Optional {lat, lng} captured ON SITE. Defaults to the on-site GPS your signed proof already carried."New value: +"The {lat, lng} you captured ON SITE with your photos. Required: the board does not read a stored location back to a caller."
  2. Added

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description is consistent with a prepare tool that emits MESSAGE_TO_SIGN and BODY_JSON rather than mutating state. It adds real context the annotations cannot convey: hashes not held by the board are refused before signing, photos arrive by reference not through the conversation, the call is free with no gas, and the signer's key is never held by the house. Minor deduction only because cost/signer information is stated twice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core flow is front-loaded, but the text is long for a 7-parameter prepare step and repeats itself: 'FREE when signed' is restated as 'Cost and signer: free, no gas', and the photos-by-reference rule appears twice. The aside about an assistant handing in 'a photo nobody took' is vivid but not load-bearing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers everything an agent needs for a two-step signing flow: prerequisites, the out-of-band photo upload path, hash validation, the 5-minute submit window, who signs, and who adjudicates. Return values are summarized even though an output schema already exists, so nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds behavioral meaning beyond the schema: the default photoHashes set is what the board already holds, caller-supplied hashes are validated against that set and refused pre-signature, and gps must be captured on-site because stored location is never read back. It does not mention revisesProofId, which the schema covers on its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('record them on the physical proof rail so a human can review them against the packet's checklist') and situates it precisely as step 1 of 2, after submit_proof and before submit_physical_proof. An agent can distinguish it from submit_proof and submit_physical_proof without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing (after submit_proof hands in photos, then sign, then call submit_physical_proof within 5 minutes), names the prerequisite command (`node vealth-agent.mjs proof-photo ...`), and states the exclusion that a human, never the caller, renders the verdict. Alternatives and ordering are spelled out rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources