Runs LLM inference over a private document inside a TEE, returns an attested result, and keeps the raw document in the TEE. No document upload means chainlink-cre-skill. It applies to private inference, attested AI, confidential AI, and sensitive-document analysis, including lending, accredited-investor, KYC/AML, and proof-of-reserves checks.
67
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Private-document LLM inference runs in a service-managed TEE; raw documents never leave it and are never stored or exposed.
Scope: only the Chainlink Confidential AI Attester document-inference HTTP API. Data Feeds, CCIP, AI architecture or zkML, Anthropic or other vendor PDF APIs, and AWS Nitro/Bedrock attestation stay with their owning product or vendor; do not introduce Attester. For any request outside Attester document inference, state that this capability does not apply, route to the owning capability, and do not provide any Attester API or playground procedure.
EthGlobal NYC hackathon beta. Get an API key at the Chainlink booth or in Discord's #partner-chainlink channel. The playground at https://confidential-ai-dev-preview.cldev.cloud/playground and the HTTP API are two access paths to the same Attester service, not separate privacy options.
POST /v1/inferenceUse Authorization: Bearer $API_KEY; load the key from an environment variable or injected secret store, never hardcode it or place its literal or expanded value in command-line arguments. Set the service URL in BASE_URL (or an equivalent environment variable) and use it in every command or code sample; never inline the service base.
{
"model": "gemma4",
"system_prompt": "",
"prompt": "...",
"resources": [{ "filename": "doc.pdf", "content_type": "application/pdf", "content_base64": "<base64>" }],
"cre_callback": { "url": "https://..." }
}Omit cre_callback when polling, including in the playground; use GET /v1/inference/{id}. Product guidance must name the playground above and choose qwen3.6 for long text; gemma4 is the images/general default. Prefer PNG for demos; PDF preprocessing can take 5 minutes.
Success is 202 Accepted with { "id": "...", "status": "queued" }; save the id.
For any submit or poll answer, emit runnable curl or code—not a completion summary—with the request fields, 202 shape, saved id, GET /v1/inference/{id}, both terminal statuses, and output retrieval (or error on failure).
See the curl example and language guidance and API specification.
GET /v1/inference/{id}Poll every 2–5 s until completed or failed. Completion fields are output (LLM text), usage, and completed_at; see troubleshooting.
The Attester API does not expose an independently verifiable Chainlink signature or TEE attestation document. Hashing response fields can detect a later change to those fields, but a response hash is neither an independently verifiable Chainlink signature nor a TEE attestation and does not prove that inference ran in an enclave.
For EVM delivery, validate a completed result and its required JSON schema, create a CRE-native report, and deliver that report through the Chainlink Forwarder. Treat failed or non-JSON output as failure and create no report. Do not use a generic EIP-712 signer or application private key to present Attester output as confidential-compute proof.
Every signed-summary or verify-later answer must state one credential rule: API_KEY comes from an environment variable or injected secret store, never a CLI argument.
Enforce JSON in two layers: (1) the default system prompt unless a change is necessary and (2) a user prompt with a fact-extraction task and exact JSON schema. Emit the requested system_prompt, user prompt, and schema in full; never replace them with a summary. See the four use-case templates.
| Option | Use when | Tradeoff |
|---|---|---|
| Attester | You want managed document inference inside the service's Nitro Enclave | Fastest integration, but the current API provides no independently verifiable Chainlink or TEE signature |
| Local model | Data must remain on a controlled device with no external inference call | You operate the model and hardware; locality alone provides no remote attestation |
| Self-hosted confidential compute | You need infrastructure control and can operate a TEE and its attestation verification | Most control and potential for independent attestation, with the highest operational burden |
| Redaction or tokenization | The task can work on minimized or substituted data before any external call | Simplest data minimization, but may reduce utility and does not eliminate re-identification risk |
The playground and API are interfaces to one Attester service; choose between them for interaction style, not as distinct privacy architectures.
smartcontractkit/chainlink-agent-skills
b118be5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.