English · Español · Português (Brasil) · 日本語 · 简体中文
API — OpenAPI と Protocol Buffers
英語版 の参考訳です(25/10/2026 更新)。内容が異なる場合は英語版が優先されます。識別子、コマンド、コードブロックは翻訳せずにそのまま掲載しています。
DCP の API の正式な定義です。HTTP/REST 向けの OpenAPI 3.1 の仕様と、gRPC 向けの Protocol Buffers があります。これらの定義を使って、任意の言語でクライアントを生成できます。
対象範囲(2026 年 10 月 25 日):
openapi.yaml は、リファレンスのゲートウェイ(server/)と、アンカー、透明性ログ、失効の各サービスを記述します。POST /v2/admit とゲートウェイの DCP-05 から DCP-09 のエンドポイントは対象外です。それらについては server/README.md と docs/OPERATOR_GUIDE.md を参照してください。
proto/dcp.proto は定義だけで、このリポジトリのどの gRPC のサーバーやクライアントもそれを実装していません。
このリポジトリは、ホストされた DCP-AI の API を設定していません。openapi.yaml はローカルの開発用アドレスのほかに https://api.dcp-ai.org を挙げていますが、そこで宣言された URL は動作中のサービスの証拠ではなく、この説明はそれを確認も呼び出しもしません。対象はオペレーターが運用するサービスです。
ファイル
ファイル
形式
説明
openapi.yaml
OpenAPI 3.1.0
REST の仕様(V1 + V2 + フェーズ 3)。上記の対象外を除く
proto/dcp.proto
Protocol Buffers 3
5 つのサービスを持つ gRPC の定義
OpenAPI の仕様
サーバー
環境
URL
ゲートウェイ(ローカル)
http://localhost:3000
アンカーサービス(ローカル)
http://localhost:3001
透明性ログ(ローカル)
http://localhost:3002
失効サービス(ローカル)
http://localhost:3003
エンドポイント
ヘルスと発見
メソッド
パス
説明
GET /health
ヘルスチェック
レスポンス:{ ok, service, supported_versions }
GET /.well-known/dcp-capabilities.json
ケイパビリティの発見
レスポンス:サポートするバージョン、アルゴリズム、機能
GET /.well-known/algorithm-advisories.json
アルゴリズムのアドバイザリー
レスポンス:{ advisories }
GET /.well-known/governance-keys.json
ガバナンスの鍵
レスポンス:ガバナンスの鍵セット
検証
メソッド
パス
説明
POST /verify
Signed Bundle を検証する(V1/V2 を自動判別)
リクエスト:{ signed_bundle, public_key_b64? } → レスポンス:{ verified, dcp_version, errors, warnings }
POST /v2/bundle/verify
ティアに応じた V2 の完全な検証(規範的な SignedBundleV2 のみ。V1 のバンドルには 400)
レスポンスに resolved_tier、verification_mode、session_binding_valid が加わる
V2:パスポートと鍵
メソッド
パス
説明
POST /v2/passport/register
エージェントのパスポートと鍵を登録する(新しい agent_id にはオペレーターのトークンが必要)
リクエスト:{ signed_passport }。複合の自己署名が検証できなければならない
GET /v2/keys/{kid}
鍵のレジストリの照会
レスポンス:{ found, kid, key, agent_id }
POST /v2/keys/rotate
保有の証明を伴う鍵のローテーション
リクエスト:KeyRotationRecord({ old_kid, new_key, timestamp, proof_of_possession, authorization_sig })
V2:意図とポリシー
メソッド
パス
説明
POST /v2/intent/declare
意図を宣言し、ポリシーを得る
リクエスト:{ signed_intent }(その composite_sig は検証されない)→ レスポンス:{ ok, policy_decision, security_tier, verification_mode, checkpoint_interval }
GET /v2/policy
現在の検証器のポリシー
レスポンス:{ policy, policy_hash, mode }
POST /v2/policy/mode
検証器のモードを切り替える(オペレーターのトークン)
リクエスト:{ mode }(pq_only、hybrid_required など)
V2:監査
メソッド
パス
説明
POST /v2/audit/append
監査イベントを追加する
リクエスト:{ audit_event }
POST /v2/audit/compact
監査証跡を圧縮する
リクエスト:{ compaction }
V2:失効と緊急時
メソッド
パス
説明
POST /v2/emergency-revoke
緊急失効(パニックボタン)
レート制限と原像の検証あり
POST /v2/multi-party/authorize
M-of-N のマルチパーティ承認
リクエスト:{ authorization }
V2:アドバイザリーとガバナンス
メソッド
パス
説明
POST /v2/advisory/publish
アルゴリズムのアドバイザリーを公開する(オペレーターのトークン)
リクエスト:{ advisory }
GET /v2/advisory/check
有効なアドバイザリーを確認する
レスポンス:{ deprecated, warned, revoked }
POST /v2/advisory/auto-apply
アドバイザリーをポリシーに自動適用する(オペレーターのトークン)
非推奨のアルゴリズムを削除し、代替を加える
POST /v2/governance/register
ガバナンスの鍵セットを登録する(オペレーターのトークン)
リクエスト:{ governance_key_set }
アンカリング
メソッド
パス
説明
POST /anchor
バンドルのハッシュをアンカーする
アンカーサービス(:3001)では:リクエスト { bundle_hash } → レスポンス { anchored, chain, tx_hash }(オンチェーンへの送信が実装されるまで tx_hash: null)、またはバッチモードでは 202。ゲートウェイ(:3000)では 501
失効(ポート 3003 のサービス)
openapi.yaml はこれらを、サービスをプロキシするゲートウェイが公開する形として /revocations の接頭辞の下に挙げています。リファレンスのゲートウェイはプロキシしないため、ポート 3003 の失効サービスを直接のパスで呼び出してください。
メソッド
ゲートウェイのパス
直接のパス(:3003)
説明
GET
/revocations
/list
失効を一覧する
POST
/revocations
/revoke
失効を公開する
GET
/revocations/{agent_id}
/check/{agent_id}
失効の状態
透明性ログ(ポート 3002 のサービス)
openapi.yaml はこれらを、プロキシするゲートウェイが公開する形として /transparency-log の接頭辞の下に挙げています。リファレンスのゲートウェイはプロキシしないため、ポート 3002 のサービスを接頭辞なしで呼び出してください。
メソッド
ゲートウェイのパス
直接のパス(:3002)
説明
POST
/transparency-log/add
/add
エントリを追加する
GET
/transparency-log/root
/root
現在のマークルルート
GET
/transparency-log/proof/{index}
/proof/{index}
包含証明
主なスキーマ
SignedBundleV1 / SignedBundleV2 — 署名付きバンドル(V1:Ed25519、V2:複合署名)
CitizenshipBundleV1 / CitizenshipBundleV2 — Citizenship bundle。マニフェストと署名付きペイロードを持つのは V2 だけ
CompositeSignature — バインディングのモードを持つクラシカル + PQ の署名
SignedPayload — 個別に署名されたアーティファクトのエンベロープ
BundleManifest — アーティファクトごとのハッシュとセッションの nonce を持つ V2 のマニフェスト
VerificationResult — verified、errors、warnings、verifier_policy_hash、resolved_tier を持つ結果
KeyEntryV2 — kid、alg、状態を持つ V2 の鍵のエントリ
PolicyDecisionV2 — リスクスコアとセキュリティティアを持つ V2 のポリシー判断
VerifierPolicy — 検証器のポリシーの設定
AlgorithmAdvisory — アルゴリズムの非推奨化や失効のアドバイザリー
GovernanceKeySet — 閾値を持つガバナンスの鍵セット
AnchorReceipt — アンカリングの受領証
RevocationRecord — 失効の記録
InclusionProof — 透明性ログの包含証明
ErrorResponse — 標準のエラーレスポンス
Swagger UI
仕様を対話的に見るには:
# With Redocly CLI 1.x (downloads it)
npx @redocly/cli@1 preview-docs api/openapi.yaml
# Or with Docker
docker run -p 8080 :8080 -e SWAGGER_JSON = /api/openapi.yaml \
-v $( pwd ) /api:/api swaggerapi/swagger-ui
Protocol Buffers(gRPC)
パッケージ
package dcp.v1 ;
option go_package = "github.com/dcp-ai/dcp-ai-go/proto" ;
go_package のパスは公開されたモジュールではありません。コードを生成するときに、自分のパスを設定してください。
サービス
VerificationService
RPC
リクエスト
レスポンス
VerifyBundle
VerifyBundleRequest
VerifyBundleResponse
ValidateBundle
ValidateBundleRequest
ValidateBundleResponse
VerifyBundleV2
VerifyBundleV2Request
VerifyBundleV2Response
HealthCheck
HealthCheckRequest
HealthCheckResponse
AnchorService
RPC
リクエスト
レスポンス
AnchorHash
AnchorHashRequest
AnchorHashResponse
AnchorBatch
AnchorBatchRequest
AnchorBatchResponse
CheckAnchor
CheckAnchorRequest
CheckAnchorResponse
RevocationService
RPC
リクエスト
レスポンス
Revoke
RevokeRequest
RevokeResponse
RevokeV2
RevokeV2Request
RevokeV2Response
EmergencyRevoke
EmergencyRevokeRequest
EmergencyRevokeResponse
CheckRevocation
CheckRevocationRequest
CheckRevocationResponse
CheckRevocationByKid
CheckRevocationByKidRequest
CheckRevocationByKidResponse
ListRevocations
ListRevocationsRequest
ListRevocationsResponse
TransparencyLogService
RPC
リクエスト
レスポンス
AddEntry
AddEntryRequest
AddEntryResponse
GetRoot
GetRootRequest
GetRootResponse
GetProof
GetProofRequest
GetProofResponse
KeyService
RPC
リクエスト
レスポンス
RegisterKeys
RegisterKeysRequest
RegisterKeysResponse
LookupKey
LookupKeyRequest
LookupKeyResponse
RotateKey
RotateKeyRequest
RotateKeyResponse
クライアントの生成
これらのコマンドには、それぞれのツール(protoc とそのプラグイン、grpc_tools、tonic-build)のインストールが必要です。このページのためには実行していません。
Go
protoc --go_out= . --go-grpc_out= . api/proto/dcp.proto
Python
python -m grpc_tools.protoc \
-I api/proto \
--python_out= . \
--grpc_python_out= . \
api/proto/dcp.proto
TypeScript
npx grpc_tools_node_protoc \
--ts_out= . \
--grpc_out= . \
-I api/proto \
api/proto/dcp.proto
Rust
build.rs で tonic-build を使います。
fn main () {
tonic_build :: compile_protos ( "api/proto/dcp.proto" ). unwrap ();
}
開発
# Validate OpenAPI spec
npx @redocly/cli lint api/openapi.yaml
# Generate clients with OpenAPI Generator
npx @openapitools/openapi-generator-cli generate \
-i api/openapi.yaml \
-g typescript-fetch \
-o generated/ts-client
ライセンス
Apache-2.0