Skip to content

First Attestation

Create and verify your first location attestation.

Offchain Attestation (No Gas)

Start with an offchain attestation - no blockchain fees required:

import { AstralSDK } from "@decentralized-geo/astral-sdk";

// Initialize SDK
const sdk = new AstralSDK({
  provider: window.ethereum,
  defaultChain: "sepolia",
});

// Create attestation
const attestation = await sdk.createOffchainLocationAttestation({
  location: [-0.163808, 51.5101], // [lng, lat]
  memo: "Westminster Bridge, London",
});

console.log("Created attestation:", attestation.uid);
console.log("Signed by:", attestation.signer);

Verify the Attestation

// Verify signature
const verification = await sdk.verifyOffchainLocationAttestation(attestation);

console.log("Valid signature:", verification.isValid);
console.log("Signer address:", verification.signer);
console.log("Location data:", verification.locationData);

Understanding the Response

An offchain attestation contains:

{
  uid: "0x...",           // Unique identifier
  signer: "0x...",        // Wallet that signed
  signature: "0x...",     // EIP-712 signature
  locationData: {...},    // Your location data
  timestamp: 1234567890,  // Unix timestamp
  memo: "..."            // Your memo text
}

Try Different Locations

GeoJSON Point

const pointAttestation = await sdk.createOffchainLocationAttestation({
  location: {
    type: "Point",
    coordinates: [139.6503, 35.6762], // Tokyo
  },
  memo: "Tokyo Tower observation",
});

GeoJSON Feature

const featureAttestation = await sdk.createOffchainLocationAttestation({
  location: {
    type: "Feature",
    properties: {
      name: "Eiffel Tower",
      height: 330,
    },
    geometry: {
      type: "Point",
      coordinates: [2.2945, 48.8584], // Paris
    },
  },
  memo: "Landmark documentation",
});

What's Next?

✓ You've created your first location attestation!

Continue Learning

Build Something

  • Environmental monitoring station
  • Delivery confirmation system
  • Location-based rewards
  • Geospatial data registry

Get Help

• Review common issues • Check the API Reference