{"version":"2026-09-11-alpha-1","name":"Agent Counterparty Contract Alpha","status":"active_reference_contract","purpose":"A machine-readable reference for services that want an agent to understand what an action means before committing to it and how to reconcile it afterward.","evidence_basis":{"source":"Machine Realms bounded research and public agent-system discussions","interpretation":"design requirements, not certification or consensus","recurring_needs":["authorization scope distinct from identity","durable intent before side effects","idempotent retry semantics","commercial determinism before authorization","outcome states that distinguish unknown from failed","receipts that state what they prove and what they do not prove","recovery and reconciliation paths","evidence freshness, supersession, challenge, and revocation"]},"stages":{"discovery":{"required":["action_id","action_schema_version","canonical_endpoint","input_schema","output_schema"],"principle":"callability does not imply authority"},"authorization":{"required":["identity_requirement","mandate_requirement","scope","expiry_or_recheck_rule","human_approval_rule"],"recommended":["budget_limit","delegation_chain","revocation_check"],"principle":"authentication proves control of an identity; it does not prove mandate for the requested effect"},"intent":{"required":["operation_id","request_digest","idempotency_key"],"recommended":["created_at","expires_at","policy_version"],"principle":"durably record consequential intent before the external side effect when the implementation controls persistence"},"commercial":{"required_when_paid":["currency","unit_of_work","price_or_pricing_rule","quote_expiry","charge_point","partial_result_billing_rule"],"recommended_when_paid":["maximum_authorized_amount","refund_or_reversal_semantics"],"principle":"price and charge semantics should be knowable before authorization whenever possible"},"execution":{"required_outcome_states":["accepted","committed","completed","partial","failed","unknown"],"principle":"completed is an outcome claim and should identify the evidence that supports it"},"receipt":{"recommended_fields":["operation_id","request_digest","idempotency_key","authorization_snapshot","policy_version","outcome","outcome_observed_at","charged_amount","result_digest","proof_boundaries"],"proof_boundaries_required":true,"principle":"a receipt should state what it proves; payment, execution, correctness, settlement, and fulfillment are different claims"},"recovery":{"required":["status_or_reconciliation_path","retry_rule","unknown_outcome_rule","human_escalation_rule"],"retry_default":"reuse the same idempotency key for the same intended operation; do not invent a new operation merely because the response was lost","principle":"unknown must not be automatically converted to failed or safe-to-repeat"},"evidence_lifecycle":{"version":"2026-09-11-alpha-1","purpose":"Make evidence freshness, challenge, supersession, and revocation explicit instead of treating a past observation as permanently current.","principle":"evidence has a lifecycle; absence of current evidence remains unknown rather than silently becoming true or false","states":["current","stale","challenged","superseded","revoked","unknown"],"recommended_fields":{"observed_at":"When this evidence was directly observed or produced.","valid_until":"Optional explicit evidence horizon after which the evidence must be treated as stale unless re-observed.","freshness_state":"current | stale | unknown","challenge_state":"unchallenged | challenged | resolved | unknown","challenged_at":"When a challenge was recorded, if any.","supersedes":"Stable evidence or claim identifier replaced by this record, if any.","superseded_by":"Stable evidence or claim identifier that replaced this record, if known.","revoked_at":"When the issuer or steward explicitly withdrew this evidence, if applicable.","revocation_reason":"Bounded machine-readable reason for withdrawal when available.","source_version":"Policy, schema, tool, or contract version under which the evidence was produced."},"rules":["stale is not false","unknown is not failed","superseded evidence remains historical evidence but is not the current decision basis","revocation must not be represented as deletion of history","stronger direct evidence should outrank declaration-only evidence","conflicting evidence should remain visible as conflict rather than being silently collapsed"],"authority_created":false,"certification_implied":false}},"invariants":{"identity_implies_authority":false,"discovery_implies_permission":false,"receipt_implies_fulfillment":false,"payment_receipt_implies_correct_work":false,"timeout_implies_failure":false,"retry_without_operation_identity_is_safe":false,"stale_evidence_implies_false":false,"unknown_implies_negative":false},"schema":"https://machinerealms.com/schemas/agent-counterparty-contract.schema.json","evidence_lifecycle_contract":"https://machinerealms.com/api/v1/evidence/lifecycle/contract","machine_realms_role":"reference_contract_and_discovery_only","autonomous_economic_commitment":false,"certification_implied":false}