Skip to main content
Development Preview — This project is under active development.

Frequently Asked Questions

General

Astral Location Services is a verifiable geospatial computation oracle for Ethereum. It runs spatial operations (distance, containment, intersection) in a trusted execution environment and produces signed attestations you can verify onchain.
Unlike traditional oracles that report external data, Astral performs computation on location data and signs the results. The computation runs in a TEE (EigenCompute), providing cryptographic proof that the operation was performed correctly.
Any application that needs to gate onchain actions by physical location:
  • Proof-of-visit NFTs
  • Local currencies (geofenced token swaps)
  • Neighborhood DAOs
  • Delivery verification
  • Location-based games
See Use Cases for detailed examples.
No. Astral Location Services is under active development. APIs may change. We’re building in public and welcome feedback!

Technical

MVP operations:
  • distance - Distance between two geometries (meters)
  • contains - Is geometry B inside geometry A?
  • within - Is point within radius of target?
  • intersects - Do geometries overlap?
  • area - Area of a polygon (square meters)
  • length - Length of a line (meters)
Future operations:
  • buffer, centroid, union, intersection, disjoint
MVP targets Base Sepolia (chain ID 84532). Additional chains (Base Mainnet, Ethereum Sepolia/Mainnet) are planned.
  1. Operations run in EigenCompute’s TEE (Trusted Execution Environment)
  2. The TEE attests that specific code executed on specific inputs
  3. Results are signed with a key held inside the TEE
  4. Smart contracts verify attestation.attester == astralSigner
MVP: Centralized service with TEE execution attestation. Trust Astral + TEE.Future: AVS consensus (multiple operators), ZK proofs, decentralized signing.
Yes. GPS is spoofable. Astral verifies that computations are correct, not that inputs are authentic. If a user provides a fake GPS coordinate, we’ll compute on that fake coordinate.We’re actively researching Location Proofs — a framework for providing evidence-based location claims using multiple corroborating stamps. As location proof plugins are developed, they’ll plug into Astral Location Services for stronger verification.

Integration

No. Astral operates the compute service. You just use the SDK to call it and submit attestations to your contracts.
You do. The delegated attestation pattern means:
  • Astral signs the attestation offchain
  • You submit with Astral’s signature (paying gas)
  • EAS records Astral as the attester
This lets you control costs and timing.
Yes. Policy Attestations are signed offchain and can be used in your application directly. Onchain submission is optional.
Use an EAS resolver:
function onAttest(Attestation calldata attestation, uint256)
    internal override returns (bool)
{
    require(attestation.attester == astralSigner, "Not from Astral");
    (bool result, , , ) = abi.decode(attestation.data, (bool, bytes32[], uint64, string));
    require(result, "Location check failed");
    // ... your logic
}
Complementary!
  • Turf.js: Client-side, instant, free, unverified
  • Astral: Server-side, verified, signed attestation
Use Turf for UX (showing distance in real-time), use Astral for verification (proving location for onchain actions).

Data

GeoJSON standard: [longitude, latitude] in WGS84 (EPSG:4326).
// San Francisco
const sf = { type: 'Point', coordinates: [-122.4194, 37.7749] };
Metric only:
  • Distance/length: meters
  • Area: square meters
  • Radius (in within): meters
No unit conversion options. Convert client-side if needed.
Both work! You can pass:
  • Attestation UIDs (verified, traceable)
  • Raw GeoJSON (unverified, for reference data or prototyping)
For security-sensitive operations, prefer attestation UIDs.
  • Location attestations: On EAS (onchain) or IPFS/your storage (offchain)
  • Policy attestations: Returned to you; optionally submitted to EAS
  • Compute service: Stateless, no persistent storage

Getting Help

We’re building in public! Once the repo is public:
  • Open issues with feedback
  • Share your use cases
  • Submit PRs for improvements

Back: Introduction

Return to the introduction