CtrlK
BlogDocsLog inGet started
Tessl Logo

chainlink-confidential-ai-attester-skill

Chainlink Confidential AI Attester (alpha): submit private documents to an LLM inside an AWS Nitro Enclave and get back a cryptographically attested result — raw documents never leave the TEE. Use for these hackathon scenarios: (1) undercollateralized DeFi lending — upload a bank statement, get an attested approved/denied JSON decision without exposing financials on-chain; (2) accredited investor verification — check SEC Rule 501 qualification from brokerage statements privately; (3) KYC/AML screening — analyse ID docs and transaction history inside a TEE, return a pass/fail with flags; (4) proof of reserves — verify custodian balance reports against claimed reserves; (5) any use case where an AI must read sensitive user documents and the result needs a cryptographic proof of what model ran on what data. Trigger on: private inference, attested AI, TEE inference, confidential AI, or undercollateralized lending / KYC / accredited investor mentioned alongside document analysis, or the product named explicitly. Do not trigger on generic confidentiality/TEE/enclave requests that involve no document upload or private inference — a user who wants a Chainlink workflow's own logic or data kept confidential from node operators, with no document analysis involved, wants CRE Confidential Workflows, which chainlink-cre-skill covers.

Invalid
This skill can't be scored yet
Validation errors are blocking scoring. Review and fix them to unlock Quality, Impact and Security scores. See what needs fixing →
SKILL.md
Quality
Evals
Security

Chainlink Confidential AI Attester

Runs LLM inference inside Trusted Execution Environment (TEE). Documents go in, LLM analysis comes out — the raw documents are never stored or exposed.

Beta product for the EthGlobal NYC hackathon. Get an API key at the Chainlink booth or via the #partner-chainlink channel in the EthGlobal Discord.

Playground UI: https://confidential-ai-dev-preview.cldev.cloud/playground — easiest way to try it. Everything there maps 1:1 to the API calls below.


Workflow 1 — Submit: POST /v1/inference

Auth: Authorization: Bearer $API_KEY — always use an env var, never hardcode.

Request shape:

{
  "model": "gemma4",
  "system_prompt": "",
  "prompt": "...",
  "resources": [{ "filename": "doc.pdf", "content_type": "application/pdf", "content_base64": "<base64>" }],
  "cre_callback": { "url": "https://..." }
}
  • cre_callback is optional — omit it and poll instead.
  • Models: gemma4 (images/general, default), qwen3.6 (long text).
  • Prefer PNG over PDF for demos — PDF preprocessing can take up to 5 minutes.

Response: 202 Accepted{ "id": "...", "status": "queued" } — save the id.

For curl examples and multi-language snippets → references/code-examples.md
For full request/response spec, error codes, resource types → references/api-reference.md


Workflow 2 — Poll: GET /v1/inference/{id}

Poll every 2–5 s until status is completed or failed.

Key fields on completion: output (LLM text), usage, completed_at.

For error symptoms → references/troubleshooting.md


Writing Prompts That Work

Always enforce JSON output with two layers:

  1. System prompt — keep the default unless you have a specific reason to change it.
  2. User prompt — binary question + exact JSON schema to return

For per-use-case prompt templates (lending, KYC, accredited investor, proof of reserves) → references/prompts.md

Repository
smartcontractkit/chainlink-agent-skills
Last updated
First committed

Is this your skill?

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.