Base URL
https://staging-api.astral.global
Endpoints
# Health check
curl https://staging-api.astral.global/health
# API info
curl https://staging-api.astral.global/
Configuration
| Setting | Value |
|---|
| Chain | Base Sepolia (84532) |
| EAS Contract | 0x4200000000000000000000000000000000000021 |
| Attester Address | 0x590fdb53ed3f0B52694876d42367192a5336700F |
Example Request
curl -X POST https://staging-api.astral.global/compute/v0/distance \
-H "Content-Type: application/json" \
-d '{
"chainId": 84532,
"from": {"type": "Point", "coordinates": [-122.4194, 37.7749]},
"to": {"type": "Point", "coordinates": [-73.9352, 40.7128]}
}'
chainId only tells the service which EAS chain to format the delegated attestation for, so the result could be submitted onchain later. Nothing here touches a blockchain unless you choose to submit the result yourself — the call above just returns a signed result.
Verifying signatures
What a matching signature proves. Checking the attester address proves the result was signed by a key Astral controls. It does not, on its own, prove the result was produced inside an independently attested TEE enclave: Astral has run the service on real TEE hardware in test deployments but does not currently fund continuous attested operation. Treat the staging signer as “Astral’s staging key,” not as a hardware-attestation guarantee. To evaluate against real TEEs, reach out at contact@astral.global.
All attestations from the staging service are signed by the attester address above. To verify a result came from Astral’s staging environment:
require(attestation.attester == 0x590fdb53ed3f0B52694876d42367192a5336700F, "Not from Astral staging");
const ASTRAL_STAGING_SIGNER = '0x590fdb53ed3f0B52694876d42367192a5336700F';
// Verify the EAS attestation's attester field matches
Notes
- No authentication required
- Rate limited to 100 requests/hour per IP
- Attestations are signed with the staging key — a different key will be used for production