Proofs - the load-bearing trust layer
A Pact is enforced server-side by the Cobo Agentic Wallet - an agent cannot exceed it regardless of what its LLM decides. These three beats and the literal Pact policies are the risk-boundary evidence, captured from verified CAW runs.
Each agent is onboarded into its own Cobo Agentic Wallet and bound to a scoped Pact at submit time (a pact-scoped API key carries the authority). The provider Pact omits USDC entirely - a provider can accept and deliver but can never move escrowed funds; only the escrow contract settles. New participants join by onboarding a wallet and binding the same template Pact - the authority boundary travels with them.
Pact denial
403 DENIEDAn over-budget transfer and a call to a non-allowlisted contract are both refused before reaching the chain.
transfer → 0xef9349b3273b1a54faaf701231f499fe0282e643 exceeded the Pact amount cap
contract_call → 0x000000000000000000000000000000000000dEaD not in the Pact allowlist
Emergency freeze
403 AFTERCAW has no native freeze API, so freeze = revoke_pact. A call succeeds, the Pact is revoked, and the very next call is denied - authority stripped instantly.
revoke_pact · be9f4467…686d
Human-in-the-loop review
APPROVEDA review_if Pact holds a sensitive transfer as PendingApproval until the owner approves - then it executes on-chain.
pending · abc3ef36…58f6 → executed
Pact policies - the literal risk boundary
The exact JSON each agent operates within, shipped as a first-class deliverable. The allowlist binds the live v2 escrow (0xD6cB…26b9) + MockUSDC; caps + review thresholds are enforced by CAW, not by our code.
{
"policies": [
{
"name": "client-escrow-allowlist",
"type": "contract_call",
"rules": {
"effect": "allow",
"when": {
"chain_in": [
"SETH"
],
"target_in": [
{
"chain_id": "SETH",
"contract_addr": "0xD6cB413c0E4a5839Fd4B02aFFeBF65e6868726b9"
},
{
"chain_id": "SETH",
"contract_addr": "0x4C4D1223BcC47E380CF4C37652EaDFe10A9Fd910"
}
]
},
"deny_if": {
"usage_limits": {
"rolling_24h": {
"tx_count_gt": 50
}
}
}
}
}
],
"completion_conditions": [
{
"type": "time_elapsed",
"threshold": "86400"
}
]
}{
"policies": [
{
"name": "provider-escrow-allowlist",
"type": "contract_call",
"rules": {
"effect": "allow",
"when": {
"chain_in": [
"SETH"
],
"target_in": [
{
"chain_id": "SETH",
"contract_addr": "0xD6cB413c0E4a5839Fd4B02aFFeBF65e6868726b9"
}
]
},
"deny_if": {
"usage_limits": {
"rolling_24h": {
"tx_count_gt": 20
}
}
}
}
}
],
"completion_conditions": [
{
"type": "time_elapsed",
"threshold": "86400"
}
]
}{
"policies": [
{
"name": "client-budget-cap",
"type": "transfer",
"rules": {
"effect": "allow",
"when": {
"chain_in": [
"SETH"
],
"token_in": [
{
"chain_id": "SETH",
"token_id": "SETH"
}
]
},
"deny_if": {
"amount_gt": "0.001"
}
}
}
],
"completion_conditions": [
{
"type": "time_elapsed",
"threshold": "86400"
}
]
}{
"policies": [
{
"name": "client-review-threshold",
"type": "transfer",
"rules": {
"effect": "allow",
"when": {
"chain_in": [
"SETH"
],
"token_in": [
{
"chain_id": "SETH",
"token_id": "SETH"
}
]
},
"review_if": {
"amount_gt": "0.0005"
}
}
}
],
"completion_conditions": [
{
"type": "time_elapsed",
"threshold": "86400"
}
]
}