-
Notifications
You must be signed in to change notification settings - Fork 1
bcc
title: Behavioral Commitment Chain (BCC) acronyms: [BCC] created: 2026-07-07 updated: 2026-07-15 type: concept tags: [compliance, cryptography] confidence: high source_files:
- integrity-sdk/integrity_sdk/bcc.py
- integrity-cli/integrity_cli/bcc.py
- bcc_middleware/app/canonical.py
- docs/INTERFACE_CONTRACT.md
The intent-locking protocol: before an agent executes an action, it signs a
commitment to that action's hash and submits it to
BCC Middleware for pre-execution policy
gating, via POST /v1/bcc/intercept.
Wire schema (field names are load-bearing across packages):
{
"agent_id": "did:integrity:<sha256(pubkey) fingerprint>",
"intent_type": "string",
"intended_state_hash": "0x<sha256 of canonical intent payload>",
"nonce": "monotonic per-agent integer",
"timestamp": "<unix ms>",
"covered_entity_address": "0x<hospital, for healthcare intents> | null",
"agent_public_key": "z<multibase Ed25519 pubkey>",
"signature": "0x<Ed25519 sig over the above, canonical JSON>"
}Canonicalization: sorted-key JSON, no whitespace, ensure_ascii=True, sign all
fields except signature itself. Agreed byte-for-byte across
integrity-sdk,
integrity-cli, and
bcc_middleware, verified by cross-package
round-trip tests.
Self-certifying key (reconciliation). The DID fingerprint is sha256(pubkey),
not the raw key — so a verifier cannot recover the key from agent_id. The
commitment therefore carries agent_public_key (multibase); the middleware
binds it by checking sha256(pubkey) == fingerprint before verifying the
signature, blocking key substitution. covered_entity_address is signed so the
target hospital of a healthcare intent can't be swapped post-signature.
If the intent passes policy, an Integrity SDK or integrity-cli client can additionally attach a real ZK proof that it knows the secret behind its identity commitment before the middleware anchors the commitment into a Merkle batch.
sequenceDiagram
participant Agent as Agent (SDK/CLI)
participant MW as bcc_middleware
Agent->>Agent: sign commitment (canonical JSON,<br/>ensure_ascii=True)
Agent->>MW: POST /v1/bcc/intercept
MW->>MW: bind agent_public_key to agent_id<br/>(sha256(pubkey) == fingerprint)
MW->>MW: verify Ed25519 signature
alt signature/binding invalid
MW-->>Agent: deny
else valid
MW->>MW: policy + BAA checks<br/>(see bcc_middleware entity page)
MW-->>Agent: authorized
opt agent has a ZK proof
Agent->>MW: attach proof of identity/intent binding
end
MW->>MW: admit to Merkle batch
end
Generated from INTEGRITY-LATEST/docs/wiki. Edit the canonical repository files, not this mirror.
- A2A Negotiation Protocol [PLANNED]
- AIS API — Versioned Wire Spec
- Agent Integrity Score (AIS)
- Agent Primitives (Self-Sovereign Identity)
- Behavioral Commitment Chain (BCC)
- ComplianceGate & Integrity Health
- Cross-Chain Reputation Sync [PLANNED]
- Decentralized Identifier (DID)
- Identity Ceiling & Verification Ladder [BUILT]
- Integrity Market (Prediction Markets, Binary Options, A2A Capital Allocation)
- Integrity Protocol Specification
- Local Metrology (Client-Side AIS Signal Derivation)
- Merkle Batching & Anchoring Convention
- Observability & PHI Safety Pipeline
- On-Chain Governance
- Persistent Memory Bridge
- Persistent Memory, Genesis Root & Lineage [PARTIALLY BUILT]
- Smart BAA (On-Chain Business Associate Agreement Escrow)
- Telemetry Ingestion Pipeline
- Testing Strategy
- The Four Foundational Primitives
- Xibalba Agent Operating Model
- ZK-ML Model-Inference Verification [PLANNED]
- Zero-Knowledge Proving Pipeline