2026.02.28
Guides
検証済み属性をクエリする
ラストマイル:証明から回答へ
暗号化、コミットメント、ZK 証明、選択的開示はすべてインフラです。開発者や AI エージェントが実際に必要としているのは回答です:「この条件に一致する検証済み属性をください。」
Lemma の attributes.query API がそのラストマイルです。自然言語または構造化クエリを受け付け、完全な来歴メタデータ付きの検証済み属性を返します。
自然言語クエリ
import { attributes } from "@lemmaoracle/sdk";
const results = await attributes.query(client, {
query: "users over 18 in Japan",
mode: "natural", // "natural" | "structured"
proof: { required: true, type: "zk-snark" }, // type: "zk-snark" | "opaque"
targets: {
schemas: ["user-kyc-v1"],
chainIds: [1, 137], // ← オプション: チェーン ID でフィルター
},
});レスポンスには、一致する各サブジェクトについて以下が含まれます:
- 検証済み属性(例:
{ age_bucket: "adult", country: "JP" })。 - 証明状態:オンチェーン検証済み、オフチェーン検証済み、または保留中。
- 証明を生成した
circuitId。 - 属性空間を定義する
schemaId。 - 元ドキュメントに署名した
issuerId。 - 生ドキュメントの生成方法を記述する
generatorId。
これはキーバリュー検索ではありません。アプリケーションや AI エージェントが信頼判断を下すための、来歴情報が豊富なレスポンスです。
RAG ポリシー統合
attributes.query が返す来歴メタデータは、RAG ポリシーレイヤーに直接供給できるよう設計されています。一般的なパターン:
- 証明必須ポリシー:
proof.status === "onchain-verified"の属性のみを使用。 - スキーマホワイトリスト: 既知の監査済みスキーマからの属性のみを受け入れ。
- 発行者信頼リスト: 信頼できる発行者でフィルターし、未検証ソースを除外。
- 鮮度チェック:
dateメタデータを使い、古い検証を除外。 - ジェネレーター再現性: 特定の
generatorIdを要求し、生データが既知の監査可能なプロセスで生成されたことを保証。
これらのポリシーは Lemma 自体ではなく、アプリケーション層で実装します。Lemma はファクトとその来歴を提供し、どのファクトを信頼するかはアプリケーションが決定します。
何が違うのか
従来のオラクルは値を返します。Lemma は証明付きの値を返します。AI が「このユーザーは適格です」と言うとき、その主張を裏付ける正確な回路、スキーマ、発行者、オンチェーン検証イベントを指し示せます。これは主張と証拠の違いです。