English · Español · Português (Brasil) · 日本語 · 简体中文
API — OpenAPI e Protocol Buffers
Tradução informativa da versão em inglês , atualizada em 25/10/2026. Em caso de divergência, prevalece a versão em inglês. Identificadores, comandos e blocos de código são mantidos sem tradução.
Definições formais da API do DCP: especificação OpenAPI 3.1 para HTTP/REST e Protocol Buffers para gRPC. Use essas definições para gerar clientes em qualquer linguagem.
O que elas cobrem (25/10/2026):
openapi.yaml descreve o gateway de referência (server/) e os serviços de ancoragem, log de transparência e revogação. Não cobre POST /v2/admit nem os endpoints do DCP-05 ao DCP-09 do gateway; para eles, consulte server/README.md e docs/OPERATOR_GUIDE.md .
proto/dcp.proto é só uma definição: nenhum servidor ou cliente gRPC deste repositório a implementa.
O repositório não configura nenhuma API do DCP-AI hospedada. Além dos endereços locais de desenvolvimento, openapi.yaml lista https://api.dcp-ai.org; uma URL declarada ali não é evidência de um serviço em funcionamento, e estas instruções nem a checam nem a chamam. Elas cobrem serviços executados pelo operador.
Arquivos
Arquivo
Formato
Descrição
openapi.yaml
OpenAPI 3.1.0
Especificação REST (V1 + V2 + fase 3), com as exclusões indicadas acima
proto/dcp.proto
Protocol Buffers 3
Definição gRPC com 5 serviços
Especificação OpenAPI
Servidores
Ambiente
URL
Gateway (local)
http://localhost:3000
Serviço de ancoragem (local)
http://localhost:3001
Log de transparência (local)
http://localhost:3002
Serviço de revogação (local)
http://localhost:3003
Endpoints
Saúde e descoberta
Método
Caminho
Descrição
GET /health
Checagem de saúde
Resposta: { ok, service, supported_versions }
GET /.well-known/dcp-capabilities.json
Descoberta de capacidades
Resposta: versões, algoritmos e funcionalidades suportados
GET /.well-known/algorithm-advisories.json
Avisos de algoritmos
Resposta: { advisories }
GET /.well-known/governance-keys.json
Chaves de governança
Resposta: conjunto de chaves de governança
Verificação
Método
Caminho
Descrição
POST /verify
Verifica um Signed Bundle (detecta V1/V2)
Requisição: { signed_bundle, public_key_b64? } → Resposta: { verified, dcp_version, errors, warnings }
POST /v2/bundle/verify
Verificação V2 completa conforme o nível (só SignedBundleV2 normativo; bundles V1 recebem 400)
A resposta acrescenta resolved_tier, verification_mode, session_binding_valid
V2: passaporte e chaves
Método
Caminho
Descrição
POST /v2/passport/register
Registra o passaporte e as chaves de um agente (um agent_id novo precisa do token do operador)
Requisição: { signed_passport }; a autoassinatura composta deve ser verificada
GET /v2/keys/{kid}
Consulta ao registro de chaves
Resposta: { found, kid, key, agent_id }
POST /v2/keys/rotate
Rotação de chaves com prova de posse
Requisição: KeyRotationRecord ({ old_kid, new_key, timestamp, proof_of_possession, authorization_sig })
V2: intenção e política
Método
Caminho
Descrição
POST /v2/intent/declare
Declara uma intenção e obtém a política
Requisição: { signed_intent } (a sua composite_sig não é verificada) → Resposta: { ok, policy_decision, security_tier, verification_mode, checkpoint_interval }
GET /v2/policy
Política atual do verificador
Resposta: { policy, policy_hash, mode }
POST /v2/policy/mode
Troca o modo do verificador (token do operador)
Requisição: { mode } (pq_only, hybrid_required etc.)
V2: auditoria
Método
Caminho
Descrição
POST /v2/audit/append
Acrescenta um evento de auditoria
Requisição: { audit_event }
POST /v2/audit/compact
Compacta a trilha de auditoria
Requisição: { compaction }
V2: revogação e emergência
Método
Caminho
Descrição
POST /v2/emergency-revoke
Revogação de emergência (botão de pânico)
Com limite de taxa e verificação da pré-imagem
POST /v2/multi-party/authorize
Autorização multipartes M de N
Requisição: { authorization }
V2: avisos e governança
Método
Caminho
Descrição
POST /v2/advisory/publish
Publica um aviso de algoritmo (token do operador)
Requisição: { advisory }
GET /v2/advisory/check
Checa os avisos ativos
Resposta: { deprecated, warned, revoked }
POST /v2/advisory/auto-apply
Aplica automaticamente os avisos à política (token do operador)
Remove os algoritmos obsoletos e acrescenta os substitutos
POST /v2/governance/register
Registra o conjunto de chaves de governança (token do operador)
Requisição: { governance_key_set }
Ancoragem
Método
Caminho
Descrição
POST /anchor
Ancora um hash de bundle
No serviço de ancoragem (:3001): requisição { bundle_hash } → resposta { anchored, chain, tx_hash } (tx_hash: null até que o envio on-chain seja implementado), ou 202 no modo em lote. No gateway (:3000): 501
Revogação (serviço na porta 3003)
openapi.yaml os lista sob um prefixo /revocations, como um gateway que fizesse proxy do serviço os exporia. O gateway de referência não faz proxy: chame o serviço de revogação na porta 3003 com os caminhos diretos.
Método
Caminho no gateway
Caminho direto (:3003)
Descrição
GET
/revocations
/list
Lista as revogações
POST
/revocations
/revoke
Publica uma revogação
GET
/revocations/{agent_id}
/check/{agent_id}
Estado de revogação
Log de transparência (serviço na porta 3002)
openapi.yaml os lista sob um prefixo /transparency-log, como um gateway que fizesse proxy os exporia. O gateway de referência não faz proxy: chame o serviço na porta 3002 sem o prefixo.
Método
Caminho no gateway
Caminho direto (:3002)
Descrição
POST
/transparency-log/add
/add
Acrescenta uma entrada
GET
/transparency-log/root
/root
Raiz de Merkle atual
GET
/transparency-log/proof/{index}
/proof/{index}
Prova de inclusão
Schemas principais
SignedBundleV1 / SignedBundleV2 — Bundles assinados (V1: Ed25519, V2: assinaturas compostas)
CitizenshipBundleV1 / CitizenshipBundleV2 — Citizenship bundles; só a V2 tem manifesto e payloads assinados
CompositeSignature — Assinatura clássica + PQ com modo de vinculação
SignedPayload — Envelope de um artefato assinado individualmente
BundleManifest — Manifesto V2 com hashes por artefato e nonce de sessão
VerificationResult — Resultado com verified, errors, warnings, verifier_policy_hash, resolved_tier
KeyEntryV2 — Entrada de chave V2 com kid, alg e estado
PolicyDecisionV2 — Decisão de política V2 com pontuação de risco e nível de segurança
VerifierPolicy — Configuração da política do verificador
AlgorithmAdvisory — Aviso de obsolescência ou revogação de um algoritmo
GovernanceKeySet — Conjunto de chaves de governança com limiar
AnchorReceipt — Recibo de ancoragem
RevocationRecord — Registro de revogação
InclusionProof — Prova de inclusão do log de transparência
ErrorResponse — Resposta de erro padrão
Swagger UI
Para ver a especificação de forma interativa:
# 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)
Pacote
package dcp.v1 ;
option go_package = "github.com/dcp-ai/dcp-ai-go/proto" ;
O caminho de go_package não é um módulo publicado; defina o seu ao gerar o código.
Serviços
VerificationService
RPC
Requisição
Resposta
VerifyBundle
VerifyBundleRequest
VerifyBundleResponse
ValidateBundle
ValidateBundleRequest
ValidateBundleResponse
VerifyBundleV2
VerifyBundleV2Request
VerifyBundleV2Response
HealthCheck
HealthCheckRequest
HealthCheckResponse
AnchorService
RPC
Requisição
Resposta
AnchorHash
AnchorHashRequest
AnchorHashResponse
AnchorBatch
AnchorBatchRequest
AnchorBatchResponse
CheckAnchor
CheckAnchorRequest
CheckAnchorResponse
RevocationService
RPC
Requisição
Resposta
Revoke
RevokeRequest
RevokeResponse
RevokeV2
RevokeV2Request
RevokeV2Response
EmergencyRevoke
EmergencyRevokeRequest
EmergencyRevokeResponse
CheckRevocation
CheckRevocationRequest
CheckRevocationResponse
CheckRevocationByKid
CheckRevocationByKidRequest
CheckRevocationByKidResponse
ListRevocations
ListRevocationsRequest
ListRevocationsResponse
TransparencyLogService
RPC
Requisição
Resposta
AddEntry
AddEntryRequest
AddEntryResponse
GetRoot
GetRootRequest
GetRootResponse
GetProof
GetProofRequest
GetProofResponse
KeyService
RPC
Requisição
Resposta
RegisterKeys
RegisterKeysRequest
RegisterKeysResponse
LookupKey
LookupKeyRequest
LookupKeyResponse
RotateKey
RotateKeyRequest
RotateKeyResponse
Gerar clientes
Estes comandos precisam das suas ferramentas (protoc e os seus plugins, grpc_tools, tonic-build) instaladas; não foram executados para esta página.
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
Com tonic-build no build.rs:
fn main () {
tonic_build :: compile_protos ( "api/proto/dcp.proto" ). unwrap ();
}
Desenvolvimento
# 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
Licença
Apache-2.0