A plugin connects a proof-of-location (PoL) system to Astral’s verification framework. Plugins collect signals from a PoL system, produce location stamps, and verify those stamps.
The plugin interface is under active development. The patterns shown here reflect the current design direction, but specifics may change as we iterate on the verification framework.
Proof-of-location systems vary widely — hardware attestation, network triangulation, sensor fusion, institutional records. A plugin is a standardized adapter that translates a specific PoL system’s output into the common stamp format that Astral can verify and cross-correlate.Each plugin handles three responsibilities:
Collect signals from the PoL system (GPS readings, network measurements, device attestations)
Create stamps from those signals (structured evidence artifacts)
Verify stamps for authenticity and structural integrity
A stamp is a signed artifact from a PoL system. It encodes the system’s conclusion about where and when an event occurred, along with the raw signals that support that conclusion.Stamps follow the Location Protocol format:
interface LocationStamp { // Location data (LP v0.2) lpVersion: string; locationType: string; location: LocationData; // Where evidence indicates the subject was srs: string; // Temporal footprint temporalFootprint: { start: number; end: number }; // Plugin identification plugin: string; // "proofmode", "witnesschain", etc. pluginVersion: string; // Evidence and signatures signals: Record<string, unknown>; signatures: Signature[];}
The distinction between a stamp’s location and a claim’s location is important. The stamp records where the PoL system observed the subject. The claim records where the subject asserts they were. Verification compares the two.
ProofMode is the plugin that’s working end to end today. The Verify service also includes experimental stamp-verification logic — witnesschain, gpsd, geoclue, wifi-mls, and ip-geolocation — with interfaces defined. We’re keen to develop new ones with partners. Two are highlighted here:
ProofMode
Device attestation and sensor fusion. Uses Secure Enclave (iOS) or hardware keystore (Android) to sign location observations.
WitnessChain
Infrastructure verification using UDP latency triangulation and a challenger network. Trust is intended to derive from speed-of-light constraints and cryptoeconomic incentives.
Each plugin documents its own threat model and trust assumptions. When building a new plugin, you should clearly document what an attacker would need to do to forge a stamp from your system.