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
- Offchain Workflow Guide - Deep dive into offchain attestations
- Onchain Workflow Guide - Create permanent blockchain records
- Core Concepts - Understand the fundamentals
Build Something
- Environmental monitoring station
- Delivery confirmation system
- Location-based rewards
- Geospatial data registry
Get Help
• Review common issues • Check the API Reference