Provenance

Guide: marketplace escrow

For sneakers, watches, and other high-value peer-to-peer sales, prove that the item photos/video a seller submits are authentic device captures of the real item before releasing funds. Same primitive, escrow vocabulary. Read the Platform guide first.

1. Attest the item capture

The seller captures through the attested SDK; you submit the signed bundle tagged as escrow:

curl $PROVENANCE_API/v1/verifications/attest \
  -H "Authorization: Bearer $PRV_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "bundle": { ...signed bundle... }, "case_type": "escrow" }'
{ "attestation_id": "…", "risk_score": 0, "status": "verified" }

A verified status means the media is a genuine device capture with an intact signature and cert chain. A failed status, such as a stripped screenshot, an edited photo or an unenrolled device, is your signal to hold the release.

2. Screen for synthetic media

Un-attested uploads (a listing image with no capture record) can still be screened for AI generation:

curl $PROVENANCE_API/v1/verifications/verify \
  -H "Authorization: Bearer $PRV_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "image_base64": "…", "screen": true }'

A no_manifest result with a high synthetic-media score is a strong reason to require an attested re-capture before funds move.

3. Gate the release on the verdict

Read the case verdict and release funds only on verified:

curl $PROVENANCE_API/v1/verifications/ESCROW-1234/provenance \
  -H "Authorization: Bearer $PRV_KEY"

To make escrow stricter than the default (e.g. require a biometric at capture so the seller is bound to the moment), add a case_type-keyed risk-policy rule — configuration, not code.