@idemcore/sdk

中文文档
0.1.2发布于 2026/11/01Apache-2.0TypeScriptES Module零依赖构建来源已验证

Idemcore API客户端与签名收据和本地收据验证。零依赖关系;Node 18+、浏览器、worker。

中文使用文档
文档目录9 节
  1. 安装
  2. 获取API密钥
  3. 快速入门
  4. 流媒体
  5. 收据、日志和服务器端检查
  6. 脱机验证,无需客户端
  7. 错误
  8. 使用OpenAI SDK代替
  9. 许可证

@idemcore / sdk

的JavaScript / TypeScript客户端 Idemcore API。每一个聊天 答案带有签名收据,此包可以在本地检查该收据。

  • 返回答案文本的聊天补全(纯文本或流文本) 和 它的收据id。
  • 获取收据及其公共令牌日志。
  • 本地验证收据:Ed25519签名(L1),令牌日志链(L2),以及您的 根据收据的担保承诺(披露)迅速答复。
  • 服务器端检查:远程验证,在独立构建(L3)上重播,审计导出。
  • 零依赖关系, fetch +仅限WebCrypto。ESM与TypeScript类型。 Node 18+、Deno、Bun、Cloudflare Workers和其他边缘运行时。

解码是贪婪的: 温度固定在0。任何其他温度 InvalidRequestError 在提出请求之前。

安装

npm install @idemcore/sdk

获取API密钥

  1. 登录到控制台 https://console.idemcore.net/#/login (公共 预览是免费的,有预览限制)。
  2. 创建API密钥。它开始于 ick_ 并且只显示一次。
  3. 出口:
export IDEMCORE_API_KEY="ick_..."

在Node上,客户端读取 IDEMCORE_API_KEY (可选 IDEMCORE_BASE_URL, 默认的 https://api.idemcore.net). 其他地方传递 new Idemcore({ apiKey }). 将密钥保存在服务器上:API不接受来自其他站点的浏览器调用(CORS)。 所以从你的后端或Worker调用它。

快速入门

import { Idemcore } from "@idemcore/sdk";

const client = new Idemcore();
const model = (await client.models())[0].id;   // pass a model id explicitly

const r = await client.chat("Name the three primary colours.", { model, maxTokens: 64 });
console.log(r.text);
console.log(r.receiptId);            // rcpt_...

// Verify on this machine: signature, token-log chain, and that the receipt
// commits to exactly this prompt and this answer.
const v = await client.verifyLocal(r);
console.log(v.ok);                   // true
console.log(v.levels);               // { L1, L2, disclosure }

r.receipt 是否有完整的签名收据 r.salt 的base64url盐 hash_only 接收(默认隐私模式)。有盐和文字的人都可以 检查承诺,所以在谈话中储存盐。

流媒体

const stream = client.chatStream("Write a haiku about receipts.", { model });
for await (const chunk of stream) process.stdout.write(chunk.delta);
const result = await stream.finalResult();   // receipt arrives with the last chunk
console.log("\n" + result.receiptId);

收据、日志和服务器端检查

await client.getReceipt("rcpt_...");                 // GET  /v1/receipts/{id}
const log = await client.getReceiptLog("rcpt_...");  // GET  /v1/receipts/{id}/log
await client.verifyRemote(r.receipt, { messages: r.messages, salt: r.salt, outputTokenIds: r.outputTokenIds });
await client.replayResult(r);                        // POST /v1/receipts/replay (L3)
await client.auditExport({ since: "2026-10-01", until: "2026-10-31" }); // NDJSON lines
await client.models();                               // GET  /v1/models
await client.keys();                                 // GET  /v1/keys (JWKS)

脱机验证,无需客户端

import { verifyReceipt } from "@idemcore/sdk";

const res = await verifyReceipt(receipt, { logText, messages, salt, outputTokenIds });

生成收据签名公钥被绑定(DEFAULT_TRUSTED_KEYS); 通过 keys: await client.keys() 来使用活动键集。

错误

所有错误扩展 IdemcoreError 与 status, type 和 message: AuthenticationError (401), PermissionDeniedError (403), NotFoundError (404), ConflictError (409), InvalidRequestError (400/415), RateLimitError (429年, .retryAfter), InsufficientQuotaError (429), ServiceUnavailableError (503), InternalServerError xx (5), APIConnectionError (网络)。重试GET请求 429/503 (maxRetries,默认值2)。聊天永远不会自动重试,所以重试永远不会 在你背后开了第二张收据。

使用OpenAI SDK代替

API是openai兼容的: new OpenAI({ baseURL: "https://api.idemcore.net/v1", apiKey }) 可以,回执在回复中 idemcore_receipt 字段。这个包增加了 打印收据和本地验证。

许可证

apache - 2.0

版本与发布记录

@idemcore/sdk 共发布 4 个版本,首次发布于 2026/11/01;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.2latest2026/11/012 天前
0.1.12026/11/012 天前
0.1.02026/11/012 天前
0.0.0-stage2026/11/012 天前

关于 @idemcore/sdk 的常见问题

@idemcore/sdk 是什么?

Idemcore API客户端与签名收据和本地收据验证。零依赖关系;Node 18+、浏览器、worker。

如何安装 @idemcore/sdk?

在项目目录运行 npm install @idemcore/sdk,或使用 pnpm add / yarn add / bun add。

@idemcore/sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@idemcore/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@idemcore/sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@idemcore/sdk 可以商用吗?

@idemcore/sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@idemcore/sdk 还在维护吗?

最新版本 0.1.2 发布于 2026/11/01(2 天前);至今共发布 4 个版本,其中过去 12 个月发布了 4 个;首次发布于 2026/11/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。