Verify proof
Verify a location proof (a claim bundled with one or more stamps). This endpoint verifies each stamp individually, then cross-correlates them to produce a CredibilityVector — a multidimensional assessment of how well the evidence supports the claim.The Verify API does not return a single summary score. The
CredibilityVector provides spatial, temporal, validity, and independence dimensions so your application can define its own trust model.Request body
The proof to verify. Contains a
claim (LocationClaim) and an array of stamps (LocationStamp).Chain ID for EAS attestation signing (e.g.,
84532 for Base Sepolia).Whether to submit the attestation onchain. Defaults to
false.Example request
Response
The response contains the verified proof, a credibility vector, and optional EAS attestation data.The verified proof object.
Multidimensional assessment of how well the stamps support the claim. See CredibilityVector for the full type.
The evaluation method used (e.g.,
"multifactor-v0").Unix timestamp (seconds) of when the evaluation was performed.
EAS attestation data. Present when
chainId is provided. See AttestationData.Delegated attestation for onchain submission. See DelegatedAttestationData.
Example response
Credibility vector
Thecredibility field is a CredibilityVector with four dimension groups:
dimensions.spatial
How close each stamp’s observed location is to the claimed location.
| Field | Type | Description |
|---|---|---|
meanDistanceMeters | number | Average distance between stamp locations and claimed location |
maxDistanceMeters | number | Largest distance from any stamp to the claim |
withinRadiusFraction | number | Fraction of stamps within the claim’s radius (0-1) |
dimensions.temporal
How well each stamp’s temporal footprint overlaps with the claimed time window.
| Field | Type | Description |
|---|---|---|
meanOverlap | number | Average temporal overlap ratio (0-1) |
minOverlap | number | Smallest overlap of any stamp |
fullyOverlappingFraction | number | Fraction of stamps fully within the claim’s time window |
dimensions.validity
Fraction of stamps passing each verification check.
| Field | Type | Description |
|---|---|---|
signaturesValidFraction | number | Fraction with valid signatures (0-1) |
structureValidFraction | number | Fraction with valid structure (0-1) |
signalsConsistentFraction | number | Fraction with consistent signals (0-1) |
dimensions.independence
How independent and corroborative the evidence sources are.
| Field | Type | Description |
|---|---|---|
uniquePluginRatio | number | Ratio of unique plugins to total stamps (0-1) |
spatialAgreement | number | How well stamps agree spatially (0-1) |
pluginNames | string[] | List of plugins that contributed stamps |
stampResults
Per-stamp verification results. See StampResult for the full type.
meta
| Field | Type | Description |
|---|---|---|
stampCount | number | Number of stamps evaluated |
evaluatedAt | number | Unix timestamp (seconds) |
evaluationMode | string | Evaluation mode: "local", "tee", or "zk" |
Errors
Errors follow RFC 7807:| Type | Status | Description |
|---|---|---|
invalid-input | 400 | Malformed proof, missing claim fields |
validation | 400 | Claim validation failed (e.g., missing radius) |
not-implemented | 501 | Plugin not supported |
internal | 500 | Internal verification error |
rate-limited | 429 | Too many requests |
unauthorized | 401 | Invalid or missing API key |
SDK: Verify
See the SDK documentation for client-side usage