Verify a Certificate
How counterparties evaluate a containment certificate before transacting with an agent.
CCP contracts are live on Hedera Testnet. See Deployed Contracts for addresses.
Overview
As a counterparty — whether you're a protocol, merchant, human, or another agent — you verify a certificate to answer: what is my maximum exposure from this interaction, and is it backed?
Verification Flow
1. Resolve ENS Name
If the agent presents an ENS name (e.g., alpha.operator.eth):
- Resolve to the agent's on-chain address
- Read the
ccp.certificatetext record to get the certificate hash - Read
ccp.chain(296 = Hedera testnet) andccp.registryto know where to query
2. Query the Registry
Call CCPRegistry.verify() on Hedera for a one-call check:
(bool acceptable, bytes32 certHash) = registry.verify(
agentAddress,
CertificateClass.C1, // your minimum class requirement
100_000e6 // your max acceptable loss (USDC)
);This checks: certificate exists, is active, not expired, class meets minimum, containment bound is within your tolerance.
3. Check the Auditor
Query AuditorStaking.getStake(auditor, certHash) to confirm the auditor has skin-in-the-game. Query getAuditorRecord(auditor) for their track record:
totalAttestations— how many certificates they've attestedsuccessfulChallenges— how many times they've been caught (0 is good)activeStake— total capital at risk
4. Check the Reserve
Call ReserveVault.getReserveBalance() and isAdequate(bound, ratioBps) to verify the reserve is funded and meets your ratio requirement.
5. Evaluate Your Risk Policy
Parse the full certificate against your policy:
- Are the loss bounds within your tolerance for this transaction?
- Are the critical constraints agent-independent? (Ledger co-signing = yes)
- Is the reserve exogenous and adequately sized?
- Is the auditor reputable (low challenge count, high attestation count)?
- Does this agent share auditors/contracts with too many other agents you interact with? (concentration risk)
6. Decide
Accept, reject, or request additional constraints.
Automated Verification
The entire flow — ENS resolution, registry query, auditor check, reserve verification, policy evaluation — can be fully automated. An agent evaluating whether to transact with another agent parses the counterparty's certificate programmatically, creating a machine-readable trust layer that does not depend on behavioral reputation.
On Hedera, the verification adds ~50ms of latency (one view call) to any transaction decision.
Using HCS for Monitoring
Subscribe to the CCP HCS topic (0.0.8510266) to receive real-time events:
CERTIFICATE_PUBLISHED— new certificate is liveATTESTATION_SIGNED— auditor attestedAGENT_TRANSACTION— agent executed a paymentTRANSACTION_BLOCKED— containment heldCHALLENGE_SUBMITTED/CHALLENGE_UPHELD— dispute activity
Query the Mirror Node REST API for historical events:
GET https://testnet.mirrornode.hedera.com/api/v1/topics/0.0.8510266/messages