Composable, verifiable location proof plugins for verifiable applications.
The Location Proof Framework is building an open ecosystem of location verification plugins that work with the Astral Protocol. Each plugin collects location evidence from a different proof-of-location system, from device-based GPS signatures to infrastructure network measurements.
Multifactor location verification - Combine multiple proof types to increase confidence:
- Device-based - ProofMode (PGP-signed GPS + hardware attestation)
- Infrastructure-based - WitnessChain (network latency triangulation)
- Future - Satellite signals, WiFi positioning, zkSNARKs, and more
| Plugin | Type | Status | NPM |
|---|---|---|---|
| plugin-proofmode | Device-based | ✅ Alpha | @location-proofs/plugin-proofmode |
| plugin-witnesschain | Infrastructure | 🚧 In development | @location-proofs/plugin-witnesschain |
npm install @decentralized-geo/astral-sdk @location-proofs/plugin-proofmodeimport { AstralSDK } from '@decentralized-geo/astral-sdk';
import { ProofModePlugin } from '@location-proofs/plugin-proofmode';
const astral = new AstralSDK({ chainId: 84532, signer: wallet });
// Register plugins
astral.plugins.register(new ProofModePlugin());
// Create multifactor proof
const claim = {
location: { type: 'Point', coordinates: [-73.9857, 40.7484] },
radius: 100,
time: { start: Date.now() / 1000, end: Date.now() / 1000 + 3600 }
};
const stamps = [
await astral.stamps.create('proofmode', proofModeSignals),
// Add more proof types for higher confidence
];
const proof = astral.proofs.create(claim, stamps);
const credibility = await astral.proofs.verify(proof);
console.log(credibility.score); // Multidimensional credibility vector┌─────────────────────────────────────────┐
│ @decentralized-geo/astral-sdk │ Core framework
│ (Plugin interface, proof verification) │
└─────────────────────────────────────────┘
▲
│ implements
│
┌───────────────┴───────────────┬─────────────────┐
│ │ │
┌───────────────┐ ┌──────────────────┐ ┌─────────┐
│ ProofMode │ │ WitnessChain │ │ Custom │
│ Plugin │ │ Plugin │ │ Plugins │
└───────────────┘ └──────────────────┘ └─────────┘
Device-based Infrastructure-based Community
Plugins are responsible for:
- ✅ Signal collection (GPS, network data, etc.)
- ✅ Stamp creation (wrapping raw signals in standard format)
- ✅ Internal verification (signatures, structure, signal consistency)
SDK is responsible for:
- ✅ Spatial/temporal evaluation (haversine distance, overlap)
- ✅ Multidimensional credibility scoring
- ✅ Cross-stamp correlation analysis
- ✅ On-chain attestation (via EAS)
| Aspect | ProofMode | WitnessChain |
|---|---|---|
| Trust Model | Device self-signed | External validators |
| Privacy | High (on-device) | Medium (IP exposed) |
| Accuracy | GPS precision (~5-50m) | City/region (~10-100km) |
| Hardware Required | Smartphone | Any internet-connected device |
| Verification Cost | Low (crypto + SafetyNet check) | Medium (network measurements) |
| Best For | Photo/video geotagging | DePIN node verification |
Multifactor approach: Combine multiple compatible plugins to get high-precision device proof + independent infrastructure validation. (We're currently researching whether ProofMode and WitnessChain can be used to verify the location of the same device.)
Want to add a new proof-of-location system? See the Plugin Development Guide.
Plugin interface:
interface LocationProofPlugin {
readonly name: string;
readonly version: string;
readonly runtimes: Runtime[];
// Optional: Collect raw signals
collect?(options?: CollectOptions): Promise<RawSignals>;
// Required: Transform signals into stamps
create(signals: RawSignals): Promise<UnsignedLocationStamp>;
// Optional: Sign stamps
sign?(stamp: UnsignedLocationStamp, signer: StampSigner): Promise<LocationStamp>;
// Required: Verify stamp validity
verify(stamp: LocationStamp): Promise<StampVerificationResult>;
}Explore the academic foundations of proof-of-location systems:
- Towards Harder Location Proofs - Flashbots Collective discussion
- OSF Preprint - Open Science Framework research paper
- Research Repository - Survey of PoL systems, threat models, and verification methods
- Documentation
- Astral SDK
- Telegram (coming soon)
Location Proofs is part of the broader Astral ecosystem:
- Astral Protocol - Verifiable location-based services
- DecentralizedGeo - Decentralized geospatial infrastructure
- Astral SDK - Core SDK for location proofs
All plugins are MIT licensed. See individual repositories for details.
Built with ✨ by the Astral community