Verifications
A Verification is the record of submitting an artifact to SourceVerify, running it through the AI pipeline, and recording the verdict.
Lifecycle
submit → hash + upload (S3) → model inference → pin to IPFS → anchor on-chain
- The client submits an artifact (raw bytes or an S3 reference).
- SourceVerify computes a SHA-256
contentHashand stores the bytes in S3 (S3_ARTIFACTS_BUCKET). - Verification metadata is written to Postgres (
Artifact,Verification). - The verification record JSON is pinned to IPFS via Pinata →
ipfsCid. - The proof tuple is anchored on-chain via viem →
txHash,blockNumber.
Submit
curl -X POST https://api.sourceverify.app/v1/verifications \
-H "X-Api-Key: $SOURCEVERIFY_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"artifactRef": "s3://producer-uploads/article-42.pdf",
"modality": "document"
}'
List
List endpoints accept page and perPage query parameters.
curl 'https://api.sourceverify.app/v1/verifications?page=1&perPage=20' \
-H "X-Api-Key: $SOURCEVERIFY_API_KEY"
Fetch one
curl https://api.sourceverify.app/v1/verifications/$VERIFICATION_ID \
-H "X-Api-Key: $SOURCEVERIFY_API_KEY"
The response includes the IPFS cid, the on-chain txHash, and the verdict.
Verdict semantics
| Verdict | Meaning |
|---|---|
authentic |
Content matches a registered original. |
manipulated |
Hash matches a known artifact but the bytes diverge in detectable ways. |
synthetic |
The artifact was generated by a known model (deepfake detector hit). |
unknown |
No registered match, no synthetic signal. |
Pair the verdict with the on-chain proof for end-user verification: a third party can re-compute the SHA-256 of the artifact and look up the tuple on-chain.
See Proof & Anchoring for the format of the on-chain tuple.