Skip to main content
Research Preview — This API is under development.

Distance

Calculate the distance between two geometries in meters.
POST /compute/v0/distance

Request body

chainId
number
required
Target chain ID. All UIDs must exist on this chain.
from
Input
required
First geometry. See Input types for accepted formats.
to
Input
required
Second geometry.
schema
string
EAS schema UID. The server uses a default schema if not provided.
recipient
string
Ethereum address to receive the attestation. Defaults to the zero address.

Example request

curl -X POST https://api.astral.global/compute/v0/distance \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key" \
  -d '{
    "chainId": 84532,
    "from": "0xabc123...",
    "to": {
      "type": "Point",
      "coordinates": [2.2945, 48.8584]
    },
    "recipient": "0xdef456..."
  }'

Response

Returns a NumericComputeResponse.
result
number
required
Distance in meters (e.g., 523.45).
units
string
required
Always "meters".
operation
string
required
Always "distance".
timestamp
number
required
Unix timestamp of computation.
inputRefs
string[]
required
Array of input references (UIDs or geometry hashes).
attestation
AttestationData
required
Signed EAS attestation. See AttestationData.
delegatedAttestation
DelegatedAttestationData
required
Signature for delegated onchain submission. See DelegatedAttestationData.

Example response

{
  "result": 523.45,
  "units": "meters",
  "operation": "distance",
  "timestamp": 1706400000,
  "inputRefs": [
    "0xabc123...",
    "0x7d3e8f..."
  ],
  "attestation": {
    "schema": "0x...",
    "attester": "0x590fdb53ed3f0B52694876d42367192a5336700F",
    "recipient": "0xdef456...",
    "data": "0x...",
    "revocable": true,
    "refUID": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "signature": "0x..."
  },
  "delegatedAttestation": {
    "signature": "0x...",
    "attester": "0x590fdb53ed3f0B52694876d42367192a5336700F",
    "deadline": 1706403600,
    "nonce": 0
  }
}

Notes

  • Distance is calculated using PostGIS ST_Distance with geodetic coordinates
  • Result is in meters with centimeter precision
  • The onchain attested value is scaled to centimeters (integer) for EVM compatibility
  • For raw GeoJSON inputs, a keccak256 hash is used in inputRefs

SDK Method

See astral.compute.distance()