Research Preview — APIs may change. GitHub
What is verified
When Astral produces a signed result, that signature makes specific claims. This page spells out exactly what is covered — and what that coverage depends on.Verifiability properties
| Property | How it’s achieved |
|---|---|
| Input integrity | Input signatures verified at the TEE boundary before processing |
| Execution integrity | Under attestation, the TEE ensures code runs as deployed and can’t be modified |
| Output authenticity | Signing key held inside the TEE; under attestation, can’t be extracted |
| Determinism | Stateless model + fixed precision = same inputs produce same outputs |
Privacy is a near-term design direction. Today, signed results can still expose their inputs (see Privacy). The same TEE design makes stronger privacy feasible — encrypted input coordinates, shielded outputs (a policy decision carrying no identifying detail), and outputs encrypted so only a specified counterparty can read them. We’re designing these now; if that would be useful to you, reach out at contact@astral.global.
What the signature covers
Under attestation (see deployment status above), a signed result from Astral is intended to prove three things:- The computation ran inside the TEE. EigenCompute is designed to provide hardware attestation that the expected code is executing in the attested environment.
- The inputs were hashed and recorded. Every signed result includes
inputRefs— hashes of the inputs used. You can verify which inputs went into the computation. This holds today regardless of attestation status. - The output was produced by that computation. The signing key is held inside the TEE. When the enclave is attested, a valid signature means the output came from the attested code running on the referenced inputs. Without live attestation, a valid signature proves only that Astral’s key signed the result.
What the signature does not establish: location correspondence
The signature proves the computation (or, for verification, the evaluation) ran correctly on the stated inputs. It does not, on its own, establish that a location claim corresponds to physical reality. That correspondence comes from two things outside the signature:- the evidence bundled into the location proof — stamps from one or more proof-of-location systems, and
- the evaluation function applied to that evidence, which produces the credibility vector.
Input references (inputRefs)
Every signed result includes an array ofinputRefs — deterministic references to the inputs used in the computation. These let downstream consumers verify which inputs were used:
- For geographic features referenced by UID, the
inputRefis the UID itself - For raw GeoJSON inputs, the
inputRefis a hash of the geometry
Computation reproducibility
Determinism is what makes signed results meaningful. If someone else runs the same computation on the same inputs, they should get the same answer. Astral achieves this through:- Centimeter precision rounding before signing — eliminates floating-point variance
- Pinned PostGIS version in the container — no algorithm changes between builds
- Stateless execution — no accumulated state that could affect results
The signing key
The service holds a signing key inside the TEE:- Key is generated within the TEE or securely provisioned
- Intended to be non-extractable by the operator when the enclave is attested
- All results are signed with this key
- Downstream consumers verify that results came from the known Astral signer
Verifying that the attester matches Astral’s signer proves the result came from a key Astral controls. Binding that key to an independently attested enclave — so a matching signature also proves where and how it was produced — is the target-state property described in the deployment-status note above.
Next: What you are trusting
Honest accounting of current assumptions