Research preview — APIs may change. GitHub
Composing Location Proofs
A location proof bundles one or more location stamps with a location claim. It’s the verifiable artifact — a claim paired with its supporting evidence.Structure
A location proof contains:- One location claim — the assertion being made (where, when, who, what event)
- One or more location stamps — evidence from proof-of-location systems
Single-Stamp vs. Multi-Stamp Location Proofs
A location proof with a single location stamp is valid. It represents evidence from one proof-of-location system supporting one location claim. The evaluation can still assess the location stamp’s internal validity and how well it supports the claim. Multi-stamp location proofs from independent proof-of-location systems are stronger. When evidence from unrelated sources agrees, the cost of forgery rises sharply — an attacker would need to simultaneously compromise multiple independent systems. This is where cross-correlation adds value: the evaluation assesses how independent the evidence sources actually are. Redundant location stamps from the same proof-of-location system don’t meaningfully increase confidence. Cross-correlation looks for independence between sources.We are building a taxonomy of proof-of-location systems and quantifying these dimensions as an area of active research.
Location Proof Plugins
Location proof plugins are the abstraction layer that makes composition practical. Each plugin wraps a proof-of-location system behind a common interface with five standard methods:- Collect — Gather raw signals from the proof-of-location system
- Create — Process signals into an unsigned location stamp
- Sign — Cryptographically sign the location stamp
- Verify — Check a location stamp’s internal validity
- Evaluate — Assess how well a location stamp supports a location claim
| Plugin | Proof-of-location system | Environment |
|---|---|---|
| ProofMode | Device attestation + sensor fusion | iOS, Android, React Native |
| WitnessChain | Infrastructure latency triangulation | Node.js, any HTTP client |
| Mock | Configurable test evidence | Any JavaScript/TypeScript environment |
Composing From Multiple Plugins
To create a multi-stamp location proof, collect location stamps from each plugin independently, then bundle them with a single location claim. The location stamps don’t need to know about each other — they just provide independent evidence that the evaluation process cross-correlates.Next: Location proof evaluation
How Astral assesses the credibility of a location proof
See also:
- SDK: Location proofs — creating and composing location proofs
- Plugins overview — the full plugin ecosystem
- Build a custom plugin — implementing the plugin interface