Returns the signed receipt for a response: a transparency event log that binds the request and
response hashes to the attested gateway, signed by a key from the attested
keyset. This is the canonical per-response proof. Look up a receipt by
the x-receipt-id header on the inference response, or by the response id. For how to read the
event log, see Receipts.
These checks follow ACI spec §§9.1–9.3,
starting with an established gateway identity.
#
Check
Inputs
1
Established keyset
§9.1: hardware quote, nonce binding, expiry, provenance, private-key custody, and channel binding, including workload_keyset_digest == sha256(JCS(workload_keyset))
2
Receipt signature
keyset.receipt_signing_keys[key_id] over JCS(receipt minus signature)
3
Receipt document
receipt.api_version == "aci/1"; receipt.workload_keyset_digest equals the established digest
4
Request hash
request.received.body_hash == sha256(raw bytes you sent)
5
Response hash
response.returned.body_hash == sha256(raw bytes you received)
6
Required upstream verification succeeded
upstream.verified.result == "verified" and required == true
7
Cited session
session.api_version == "aci/1"; sha256(JCS(full session document)) == upstream.verified.session_id; served_at is within its validity window; id is in your pinned set, if supplied
8
Session evidence and policy
Decode evidence.data, hash the exact bytes to evidence.digest, and appraise channel bindings, claims and provider evidence under your policy
A signature-valid receipt is not the same as a successful verification: upstream.verified can
record result: "failed" and carry no session_id. Assert the result explicitly before looking
for a session.JCS is RFC 8785 (JSON Canonicalization Scheme). Use an RFC 8785 implementation or the SDK’s helpers;
sorted-key json.dumps is not sufficient. Canonicalize ACI documents, but hash HTTP bodies and decoded
evidence as exact bytes. For E2EE requests, follow the
decrypted-body hashing rules.See Verify a response for the artifact walkthrough.
GET /v1/signature/{id} returns the same receipt wrapped in a legacy envelope, for clients written
against earlier API versions. {id} is a receipt id or a response id.
Field
Description
api_version
ACI version token, for example aci/1.
signing_algo
Signature algorithm, for example ecdsa.
signing_address
Address that signed text.
text
"<request body hash>:<response hash>", the signed message.
signature
Signature over text.
receipt
The full receipt object, identical to this endpoint’s response.
New integrations should use /v1/aci/receipts/{id}.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"RedPill AI","colors":{"primary":"#c96442","light":"#d97757","dark":"#b0512f"},"logo":{"light":"https://mintcdn.com/phala-47f19b07/5vRaVvmX8pi5Nukr/logo/light.svg?fit=max\u0026auto=format\u0026n=5vRaVvmX8pi5Nukr\u0026q=85\u0026s=03f8dbe12d0f593a956cccba7b18115f","dark":"https://mintcdn.com/phala-47f19b07/5vRaVvmX8pi5Nukr/logo/dark.svg?fit=max\u0026auto=format\u0026n=5vRaVvmX8pi5Nukr\u0026q=85\u0026s=dd49c6b52615b7312317e2fc353ac289"},"favicon":"https://mintcdn.com/phala-47f19b07/jUpTfTWRxXYc1F5K/favicon.svg?fit=max\u0026auto=format\u0026n=jUpTfTWRxXYc1F5K\u0026q=85\u0026s=1ac7304fa03ccc515bee40d9694e75e2","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://api.redpill.ai/v1"}},"navbar":{"links":[{"href":"https://www.redpill.ai/dashboard","label":"Dashboard"}],"primary":{"type":"button","label":"Start building","href":"https://redpill.ai/start-building"}},"footer":{"socials":{"twitter":"https://twitter.com/redpill_ai","github":"https://github.com/redpill-ai","discord":"https://discord.gg/P2ukR4Z5ps"}},"fonts":{"heading":{"family":"Poppins","weight":600},"body":{"family":"Inter","weight":400}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/P2ukR4Z5ps"},{"anchor":"GitHub","icon":"github","href":"https://github.com/redpill-ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"phala-47f19b07","hasAudioNarration":false,"actualSubdomain":"phala-47f19b07","customDomains":["docs.redpill.ai"],"gitSource":{"type":"github","owner":"redpill-ai","repo":"redpill-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeadca45adfacbbaf537b77","collectionId":"9eb481cb-d39b-4c33-96ba-258251700e65","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeadca45adfacbbaf537b77"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6aeaec39197840cd827e97ba","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":49},{"language":"default","tag":"API Reference","count":11},{"language":"default","tag":"Use in agents","count":9},{"language":"default","tag":"Endpoints","count":8},{"language":"default","tag":"Build with the API","count":8},{"language":"default","tag":"Get started","count":7},{"language":"default","tag":"Features","count":7},{"language":"default","tag":"How it works","count":6},{"language":"default","tag":"Verify and control","count":6},{"language":"default","tag":"Providers and trust","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":"h1,h2,h3,h4,h5,h6{font-family:\"Poppins\",sans-serif}"}],"page":{"pagePath":"api-reference/receipts","slug":"/api-reference/receipts","pageMetadata":{"title":"Receipt","description":"The signed receipt for a response, with the full transparency event log.","api":"GET https://tee.redpill.ai/v1/aci/receipts/{id}","href":"/api-reference/receipts"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The signed receipt for a response, with the full transparency event log.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Heading,ParamField,Table}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Returns the signed receipt for a response: a transparency event log that binds the request and\nresponse hashes to the attested gateway, signed by a key from the attested\n`,_jsx(_components.a,{href:`/api-reference/attestation`,children:`keyset`}),`. This is the canonical per-response proof. Look up a receipt by\nthe `,_jsx(_components.code,{children:`x-receipt-id`}),` header on the inference response, or by the response `,_jsx(_components.code,{children:`id`}),`. For how to read the\nevent log, see `,_jsx(_components.a,{href:`/confidential-ai/receipts`,children:`Receipts`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`GET`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` /v1/aci/receipts/{id}`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsxs(_components.p,{children:[`A receipt id (`,_jsx(_components.code,{children:`rcpt-…`}),`) or the response `,_jsx(_components.code,{children:`id`}),` (chat id). The receipt id is returned in the\n`,_jsx(_components.code,{children:`x-receipt-id`}),` response header on `,_jsx(_components.code,{children:`/v1/chat/completions`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`200 OK`}),`, `,_jsx(_components.code,{children:`application/json`}),`. The bare canonical receipt:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`api_version`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`ACI version token, for example `,_jsx(_components.code,{children:`aci/1`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`receipt_id`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`The receipt id (`,_jsx(_components.code,{children:`rcpt-…`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chat_id`})}),_jsx(_components.td,{children:`string or null`}),_jsx(_components.td,{children:`The response/chat id, when the upstream returns one.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`workload_keyset_digest`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Must match the attestation report.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`model`})}),_jsx(_components.td,{children:`string or null`}),_jsx(_components.td,{children:`Model requested by the client.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`endpoint`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`The route served, for example `,_jsx(_components.code,{children:`/v1/chat/completions`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`method`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`HTTP method.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`served_at`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`Unix seconds.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`event_log`})}),_jsx(_components.td,{children:`array`}),_jsx(_components.td,{children:`Ordered transparency events (below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`key_id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Selects a receipt-signing key from the attested keyset.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`signature`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Signature over the receipt, by a key in the attested keyset.`})]})]})]}),`\n`,_jsxs(Heading,{level:`3`,id:`event_log-entries`,children:[_jsx(_components.code,{children:`event_log`}),` entries`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.th,{children:`Key fields`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`request.received`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`body_hash`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`middleware.forwarded`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`body_hash`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`route.selected`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`target_route_id`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`request.forwarded`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`body_hash`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`upstream.verified`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`model_id`}),`, `,_jsx(_components.code,{children:`result`}),`, `,_jsx(_components.code,{children:`required`}),`, `,_jsx(_components.code,{children:`session_id`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`response.received`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`body_hash`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`response.returned`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`body_hash`})})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`example-truncated`,children:`Example (truncated)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`19`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"api_version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"aci/1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"receipt_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rcpt-e0eefe63b3673e2a5984951f\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"chat_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"d3ad808b20a444c29e798db35f112033\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"workload_keyset_digest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256:3eff0836…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"phala/gemma-4-26b-a4b-uncensored\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"endpoint\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/v1/chat/completions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"method\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"served_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1781588857`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"event_log\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"request.received\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"body_hash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256:111d08a5…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"route.selected\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"target_route_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"phala:gemma-4\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"upstream.verified\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"model_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"phala/gemma-4-26b-a4b-uncensored\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"verified\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"session_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ecda679a01d29724ccb12f24e5007f536a50668b544d9c87d04c5ef8a1bddd3a\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"response.returned\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"body_hash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256:07703fb4…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dstack-kms-receipt-ed25519-v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"signature\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"…\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The session id is a snapshot from the public sessions list; use the id in your own receipt.`}),`\n`,_jsx(Heading,{level:`2`,id:`verifying-the-receipt`,children:`Verifying the receipt`}),`\n`,_jsxs(_components.p,{children:[`These checks follow `,_jsx(_components.a,{href:`https://github.com/Dstack-TEE/private-ai-gateway/blob/main/spec/aci.md#9-verification-procedure`,children:`ACI spec §§9.1–9.3`}),`,\nstarting with an established gateway identity.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`#`}),_jsx(_components.th,{children:`Check`}),_jsx(_components.th,{children:`Inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`1`}),_jsx(_components.td,{children:`Established keyset`}),_jsxs(_components.td,{children:[`§9.1: hardware quote, nonce binding, expiry, provenance, private-key custody, and channel binding, including `,_jsx(_components.code,{children:`workload_keyset_digest == sha256(JCS(workload_keyset))`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2`}),_jsx(_components.td,{children:`Receipt signature`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`keyset.receipt_signing_keys[key_id]`}),` over `,_jsx(_components.code,{children:`JCS(receipt minus signature)`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{children:`Receipt document`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`receipt.api_version == \"aci/1\"`}),`; `,_jsx(_components.code,{children:`receipt.workload_keyset_digest`}),` equals the established digest`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`4`}),_jsx(_components.td,{children:`Request hash`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`request.received.body_hash == sha256(raw bytes you sent)`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`5`}),_jsx(_components.td,{children:`Response hash`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`response.returned.body_hash == sha256(raw bytes you received)`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`6`}),_jsx(_components.td,{children:`Required upstream verification succeeded`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`upstream.verified.result == \"verified\"`}),` and `,_jsx(_components.code,{children:`required == true`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`7`}),_jsx(_components.td,{children:`Cited session`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`session.api_version == \"aci/1\"`}),`; `,_jsx(_components.code,{children:`sha256(JCS(full session document)) == upstream.verified.session_id`}),`; `,_jsx(_components.code,{children:`served_at`}),` is within its validity window; id is in your pinned set, if supplied`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`8`}),_jsx(_components.td,{children:`Session evidence and policy`}),_jsxs(_components.td,{children:[`Decode `,_jsx(_components.code,{children:`evidence.data`}),`, hash the exact bytes to `,_jsx(_components.code,{children:`evidence.digest`}),`, and appraise channel bindings, claims and provider evidence under your policy`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A signature-valid receipt is not the same as a successful verification: `,_jsx(_components.code,{children:`upstream.verified`}),` can\nrecord `,_jsx(_components.code,{children:`result: \"failed\"`}),` and carry no `,_jsx(_components.code,{children:`session_id`}),`. Assert the result explicitly before looking\nfor a session.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`JCS`}),` is RFC 8785 (JSON Canonicalization Scheme). Use an RFC 8785 implementation or the SDK’s helpers;\nsorted-key `,_jsx(_components.code,{children:`json.dumps`}),` is not sufficient. Canonicalize ACI documents, but hash HTTP bodies and decoded\nevidence as exact bytes. For E2EE requests, follow the\n`,_jsx(_components.a,{href:`/confidential-ai/e2e-encryption#receipts-with-e2ee`,children:`decrypted-body hashing rules`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/guides/verify-a-response#inspect-the-artifacts-by-hand`,children:`Verify a response`}),` for the artifact walkthrough.`]}),`\n`,_jsx(Heading,{level:`2`,id:`legacy-alias`,children:`Legacy alias`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET /v1/signature/{id}`}),` returns the same receipt wrapped in a legacy envelope, for clients written\nagainst earlier API versions. `,_jsx(_components.code,{children:`{id}`}),` is a receipt id or a response id.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`api_version`})}),_jsxs(_components.td,{children:[`ACI version token, for example `,_jsx(_components.code,{children:`aci/1`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`signing_algo`})}),_jsxs(_components.td,{children:[`Signature algorithm, for example `,_jsx(_components.code,{children:`ecdsa`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`signing_address`})}),_jsxs(_components.td,{children:[`Address that signed `,_jsx(_components.code,{children:`text`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`text`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"\u003crequest body hash>:\u003cresponse hash>\"`}),`, the signed message.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`signature`})}),_jsxs(_components.td,{children:[`Signature over `,_jsx(_components.code,{children:`text`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`receipt`})}),_jsx(_components.td,{children:`The full receipt object, identical to this endpoint’s response.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`New integrations should use `,_jsx(_components.code,{children:`/v1/aci/receipts/{id}`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Get attestation report`,icon:`microchip`,href:`/api-reference/attestation`}),_jsx(Card,{title:`Get session`,icon:`link`,href:`/api-reference/sessions`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Receipt","description":"The signed receipt for a response, with the full transparency event log.","api":"GET https://tee.redpill.ai/v1/aci/receipts/{id}","href":"/api-reference/receipts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[{"title":"event_log entries","slug":"event_log-entries","depth":3,"children":[]},{"title":"Example (truncated)","slug":"example-truncated","depth":3,"children":[]}]},{"title":"Verifying the receipt","slug":"verifying-the-receipt","depth":2,"children":[]},{"title":"Legacy alias","slug":"legacy-alias","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{},"endpoint":{"title":"Receipt","path":"/v1/aci/receipts/{id}","servers":[{"url":"https://tee.redpill.ai"}],"method":"get","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{"id":{"schema":[{"type":"string","description":"A receipt id ( `rcpt-…` ) or the response `id` (chat id). The receipt id is returned in the `x-receipt-id` response header on `/v1/chat/completions` .","required":true}]}}},"body":{}},"response":{},"deprecated":false}},"jsLinks":[],"subdomain":"phala-47f19b07","siteName":"RedPill AI","title":"Receipt - RedPill AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T08:14:11.611Z","originalFileLocation":"api-reference/receipts.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The signed receipt for a response, with the full transparency event log.\">\u003cmeta data-mint-head name=\"application-name\" content=\"RedPill AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Receipt - RedPill AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"The signed receipt for a response, with the full transparency event log.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"RedPill AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.redpill.ai/api-reference/receipts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phala-47f19b07.mintlify.app/_mintlify/api/og/v2?division=Verification\u0026amp;title=Receipt\u0026amp;description=The+signed+receipt+for+a+response%2C+with+the+full+transparency+event+log.\u0026amp;theme=42df2522bd3507e897bd01fe\u0026amp;signature=ed12e143df80a2640c27e3cd6f8e64ba41d4edb3525aea4e7d456fc1df287ce9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Receipt - RedPill AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The signed receipt for a response, with the full transparency event log.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phala-47f19b07.mintlify.app/_mintlify/api/og/v2?division=Verification\u0026amp;title=Receipt\u0026amp;description=The+signed+receipt+for+a+response%2C+with+the+full+transparency+event+log.\u0026amp;theme=42df2522bd3507e897bd01fe\u0026amp;signature=ed12e143df80a2640c27e3cd6f8e64ba41d4edb3525aea4e7d456fc1df287ce9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/phala-47f19b07/Y9aC6lrEn-iBCXi1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"RedPill AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#c96442\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.redpill.ai/api-reference/receipts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/receipts.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.redpill.ai/#organization\",\"name\":\"RedPill AI\",\"url\":\"https://docs.redpill.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/phala-47f19b07/5vRaVvmX8pi5Nukr/logo/light.svg?fit=max\u0026auto=format\u0026n=5vRaVvmX8pi5Nukr\u0026q=85\u0026s=03f8dbe12d0f593a956cccba7b18115f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.redpill.ai#website\",\"name\":\"RedPill AI\",\"url\":\"https://docs.redpill.ai\",\"publisher\":{\"@id\":\"https://docs.redpill.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.redpill.ai/api-reference/receipts#webpage\",\"url\":\"https://docs.redpill.ai/api-reference/receipts\",\"name\":\"Receipt\",\"description\":\"The signed receipt for a response, with the full transparency event log.\",\"dateModified\":\"2026-10-26T08:14:11.611Z\",\"isPartOf\":{\"@id\":\"https://docs.redpill.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.redpill.ai/api-reference/receipts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.redpill.ai/api-reference/receipts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Verification\",\"item\":\"https://docs.redpill.ai/api-reference/attestation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Receipt\",\"item\":\"https://docs.redpill.ai/api-reference/receipts\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.redpill.ai/api-reference/receipts#apireference\",\"headline\":\"Receipt\",\"name\":\"Receipt\",\"description\":\"The signed receipt for a response, with the full transparency event log.\",\"url\":\"https://docs.redpill.ai/api-reference/receipts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.redpill.ai/api-reference/receipts#webpage\"},\"dateModified\":\"2026-10-26T08:14:11.611Z\",\"publisher\":{\"@id\":\"https://docs.redpill.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.redpill.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"RedPill AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"RedPill AI","nav":{"global":{"anchors":[{"anchor":"Community","icon":"discord","href":"https://discord.gg/P2ukR4Z5ps"},{"anchor":"GitHub","icon":"github","href":"https://github.com/redpill-ai"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started/introduction"}]},{"tab":"API Reference","groups":[{"group":"Endpoints","pages":[{"title":"Overview","href":"/api-reference/overview"},{"title":"Chat completions","api":"POST /chat/completions","href":"/api-reference/chat-completions"},{"title":"Responses","api":"POST /responses","href":"/api-reference/responses"},{"title":"Messages","api":"POST /messages","href":"/api-reference/messages"},{"title":"Embeddings","api":"POST /embeddings","href":"/api-reference/embeddings"},{"title":"System One","api":"POST /systemone","href":"/api-reference/systemone"},{"title":"Models","api":"GET /models","href":"/api-reference/models"},{"title":"Completions (legacy)","api":"POST /completions","href":"/api-reference/completions"}]},{"group":"Verification","pages":[{"title":"Attestation report","description":"The gateway TEE attestation report, bound to a caller-supplied nonce.","api":"GET https://tee.redpill.ai/v1/aci/attestation","href":"/api-reference/attestation"},{"title":"Receipt","api":"GET https://tee.redpill.ai/v1/aci/receipts/{id}","href":"/api-reference/receipts"},{"title":"Session","description":"The immutable attested-session record behind a confidential response.","api":"GET https://tee.redpill.ai/v1/aci/sessions/{session_id}","href":"/api-reference/sessions"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Receipt - RedPill AI","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js"]}