Skip to main content
GET
/
signature
/
{id}
Signature
curl --request GET \
  --url https://api.example.com/signature/{id}
GET /v1/signature/{id} is a legacy compatibility endpoint. It returns the same proof as the canonical Get Receipt endpoint, but wrapped in the older text, signature, and signing_address envelope. New integrations should use GET /v1/aci/receipts/{id}.

Endpoint

GET https://inference.phala.com/v1/signature/{id}

Parameters

id
string
required
Receipt id (rcpt-...) or response id from POST /v1/chat/completions.

Example

curl "https://inference.phala.com/v1/signature/$RECEIPT_OR_RESPONSE_ID" \
  -H "Authorization: Bearer <API_KEY>"

Response

FieldDescription
api_versionACI version token, for example aci/1.
signing_algoSignature algorithm, for example ecdsa.
signing_addressAddress that signed text.
text"<request body hash>:<response hash>".
signatureSignature over text.
receiptFull receipt object, identical to the canonical /v1/aci/receipts/{id} response.
{
  "api_version": "aci/1",
  "signing_algo": "ecdsa",
  "signing_address": "0xffb22d95...",
  "text": "111d08a5...:07703fb4...",
  "signature": "0xd0cd266a...",
  "receipt": {
    "receipt_id": "rcpt-...",
    "event_log": ["..."],
    "signature": "..."
  }
}

Verification

For new clients, verify the receipt object directly:
  1. Fetch a fresh Attestation Report.
  2. Confirm receipt.workload_id and receipt.workload_keyset_digest match the report.
  3. Verify receipt.signature under a receipt_signing_keys entry from the attested keyset.
  4. Confirm the request and response hashes in receipt.event_log match the bytes you sent and received.
For legacy clients that verify the wrapper, also verify signature over text, then bind signing_address back to a fresh attestation report.

Get Receipt

Verify a Response