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

Within

Check if a geometry is within a specified radius of a target geometry.
POST /compute/v0/within

Request Body

chainId
number
required
Target chain ID (e.g., 84532 for Base Sepolia, 8453 for Base).
geometry
Input
required
The geometry to check (typically a point).
target
Input
required
The target geometry to measure distance from.
radius
number
required
Maximum distance in meters.
schema
string
required
EAS schema UID to issue the attestation against.
recipient
string
Ethereum address to receive the attestation. Defaults to zero address if not provided.

Example Request

curl -X POST https://api.astral.global/compute/v0/within \
  -H "Content-Type: application/json" \
  -d '{
    "chainId": 84532,
    "geometry": "0xpoint...",
    "target": "0xlandmark...",
    "radius": 500,
    "schema": "0xschema...",
    "recipient": "0xdef456..."
  }'

Example Response

{
  "result": true,
  "operation": "within:50000",
  "timestamp": 1706400000,
  "inputRefs": [
    "0xpoint...",
    "0xlandmark..."
  ],
  "attestation": {
    "schema": "0x...",
    "attester": "0x...",
    "recipient": "0xdef456...",
    "data": "0x...",
    "signature": "0x..."
  },
  "delegatedAttestation": {
    "signature": "0x...",
    "attester": "0x...",
    "deadline": 1706403600
  }
}

Notes

  • Uses PostGIS ST_DWithin function
  • Radius is always in meters (no unit conversion)
  • Returns true if the distance between geometries is less than or equal to the radius
  • The operation field includes the radius in centimeters: within:RADIUS_CM (e.g., within:50000 for a 500m radius). Resolver contracts should use prefix matching, not exact string comparison

SDK Method

See astral.compute.within()