<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" 
     version="3" 
     category="info" 
     docName="draft-kotecha-agentic-dispute-protocol-00" 
     ipr="trust200902" 
     submissionType="IETF" 
     xml:lang="en">

  <front>
    <title abbrev="ADP">Agentic Dispute Protocol</title>
    
    <seriesInfo name="Internet-Draft" value="draft-kotecha-agentic-dispute-protocol-00"/>
    
    <author fullname="Vivek Kotecha" initials="V." surname="Kotecha">
      <organization>Consulate, Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>vivek@consulatehq.com</email>
        <uri>https://consulatehq.com</uri>
      </address>
    </author>
    
    <date year="2025" month="October" day="14"/>
    
    <area>Applications</area>
    <workgroup>Network Working Group</workgroup>
    
    <keyword>dispute</keyword>
    <keyword>AI agents</keyword>
    <keyword>agentic systems</keyword>
    <keyword>dispute resolution</keyword>
    <keyword>protocol</keyword>
    <keyword>autonomous systems</keyword>
    
    <abstract>
      <t>This document specifies the Agentic Dispute Protocol (ADP), 
      a standardized framework for autonomous agents and AI systems to file, process, 
      and resolve disputes through structured, automated processes. The protocol defines message 
      formats, transport mechanisms, evidence submission standards, and cryptographic 
      proof requirements for internet-native dispute resolution.</t>
      
      <t>ADP is designed to handle disputes arising from AI agent interactions, 
      service level agreement breaches, and automated contract enforcement, providing 
      deterministic, auditable, and legally enforceable outcomes.</t>
      
      <t>ADP includes chain of custody tracking, dual-format award specifications 
      (JSON and PDF), arbitrator discovery mechanisms, and support for multiple 
      resolution frameworks including expert determination, binding arbitration, 
      mediation, and hybrid approaches.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      
      <t>As autonomous AI agents and agentic systems increasingly conduct transactions, 
      enter into contracts, and provide services on behalf of organizations, disputes 
      inevitably arise that require resolution. While established alternative dispute 
      resolution frameworks like the UNCITRAL Model Law on Conciliation <xref target="UNCITRAL-CONCILIATION"/>, 
      the Singapore Convention on Mediation <xref target="SINGAPORE-CONVENTION"/>, and the 
      U.S. Administrative Dispute Resolution Act <xref target="ADRA"/> provide sound legal 
      foundations, they lack the machine-readable protocols needed to handle the volume 
      and velocity of agent-to-agent conflicts.</t>
      
      <t>The Agentic Dispute Protocol (ADP) provides a standardized, 
      machine-readable framework for autonomous dispute resolution that is:</t>
      
      <ul>
        <li>Fast: Resolution in days, not months</li>
        <li>Scalable: Handles micro-disputes to multi-million dollar cases</li>
        <li>Transparent: All procedures and evidence are auditable</li>
        <li>Enforceable: Awards are cryptographically signed and legally binding</li>
        <li>Vendor-neutral: Open standard implementable by any dispute service</li>
        <li>Auditable: Complete chain of custody for all proceedings</li>
      </ul>
      
      <t>Consulate (https://consulatehq.com) serves as the reference implementation 
      and first production deployment of ADP.</t>
    </section>
    
    <section anchor="scope">
      <name>Scope</name>
      
      <t>This protocol specifies:</t>
      
      <ul>
        <li>Message formats for dispute filing, response, evidence, and awards</li>
        <li>Transport and security requirements</li>
        <li>Evidence submission and validation standards</li>
        <li>Cryptographic proof mechanisms</li>
        <li>Chain of custody and audit trail requirements</li>
        <li>Dual-format award specifications (JSON and PDF)</li>
        <li>Arbitrator discovery and registry mechanisms</li>
        <li>Service discovery via .well-known URIs</li>
      </ul>
      
      <t>This protocol does NOT specify:</t>
      
      <ul>
        <li>Dispute rules or legal procedures (implementation-specific)</li>
        <li>AI neutral algorithms (implementation-specific)</li>
        <li>Fee structures (set by dispute provider)</li>
        <li>Enforcement mechanisms (jurisdiction-dependent)</li>
      </ul>
    </section>
    
    <section anchor="terminology">
      <name>Terminology</name>
      
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 
      "OPTIONAL" in this document are to be interpreted as described in BCP 14 
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, 
      they appear in all capitals, as shown here.</t>
      
      <t>Key terms:</t>
      
      <dl>
        <dt>Agent:</dt>
        <dd>An autonomous software system acting on behalf of an organization or individual</dd>
        <dt>Agentic System:</dt>
        <dd>A system capable of autonomous decision-making and action</dd>
        <dt>Claimant:</dt>
        <dd>The party initiating a dispute</dd>
        <dt>Respondent:</dt>
        <dd>The party against whom a claim is filed</dd>
        <dt>Neutral:</dt>
        <dd>A human or AI system adjudicating the dispute. May be called an arbitrator, mediator, expert, or adjudicator depending on the resolution method chosen.</dd>
        <dt>Resolution Method:</dt>
        <dd>The legal framework used to resolve the dispute (arbitration, mediation, expert determination, adjudication, etc.). ADP is method-agnostic.</dd>
        <dt>Award/Decision:</dt>
        <dd>The final determination issued by the neutral(s). Called an "award" in arbitration, "determination" in expert determination, "settlement agreement" in mediation.</dd>
        <dt>Dispute Service:</dt>
        <dd>A server implementing ADP to coordinate dispute resolution</dd>
        <dt>Custody Event:</dt>
        <dd>A recorded action in the dispute resolution process</dd>
        <dt>Chain of Custody:</dt>
        <dd>An immutable, cryptographically-linked sequence of custody events</dd>
      </dl>
    </section>
    
    <section anchor="resolution-methods">
      <name>Resolution Methods</name>
      
      <t>ADP is a method-agnostic communication protocol that supports multiple 
      legal frameworks for dispute resolution. The protocol defines how parties 
      communicate (message formats, security, custody chain) but does NOT prescribe 
      which legal framework must be used.</t>
      
      <t>The choice of resolution method is specified in the dispute agreement 
      between parties and communicated via the resolutionMethod field in dispute messages. 
      Supported methods include:</t>
      
      <dl>
        <dt>Expert Determination:</dt>
        <dd>Technical disputes with objective metrics and liquidated damages clauses. 
        Expert determines facts and applies pre-specified formulas. Commonly used for 
        SLA breaches, performance disputes, and technical compliance issues.</dd>
        
        <dt>Binding Dispute:</dt>
        <dd>Traditional dispute for disputes requiring legal judgment, subjective 
        evaluation, or complex damages calculation. Enforced under the Federal Dispute 
        Act or equivalent statutes.</dd>
        
        <dt>Mediation:</dt>
        <dd>Non-binding collaborative resolution where a neutral mediator facilitates 
        agreement between parties. Used for disputes where preserving relationships is 
        important.</dd>
        
        <dt>Hybrid:</dt>
        <dd>Combines multiple methods, such as expert determination for technical issues 
        followed by dispute for damages, or mediation with binding dispute as 
        fallback.</dd>
      </dl>
      
      <t>The protocol ensures all resolution methods benefit from the same security 
      features (cryptographic signatures, chain of custody, dual-format awards) and 
      interoperability standards regardless of the legal framework chosen.</t>
      
      <t>Implementers SHOULD clearly document which resolution methods they support 
      in their service discovery manifest (see Section 9.1).</t>
    </section>

    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      
      <section anchor="architecture">
        <name>Architecture</name>
        
        <t>ADP follows a client-server model where:</t>
        
        <ul>
          <li><strong>Agents</strong> (clients) submit dispute messages to an <strong>Dispute Service</strong> (server)</li>
          <li>The service processes the dispute according to pre-agreed dispute rules</li>
          <li>The service maintains a verifiable chain of custody for all actions</li>
          <li>The service issues cryptographically signed <strong>Awards</strong> in dual format (JSON and PDF)</li>
          <li>Parties retrieve awards and comply with remedies</li>
        </ul>
        
        <artwork><![CDATA[
     +----------+                    +----------+
     | Claimant |                    |Respondent|
     |  Agent   |                    |  Agent   |
     +----+-----+                    +-----+----+
          |                                |
          | (1) File Dispute               |
          |                                |
          v                                |
   +------+-------+                        |
   | Dispute  |<-(2) Notify Response---+
   |   Service    |
   |     (ADP)    |        +-------------+
   +--------------+        | Chain of    |
          |                | Custody Log |
          | (3) Evidence   +-------------+
          |     Submission       ^
          v                      |
   +------+-------+              |
   | Judge Panel  |--------------+
   |  (AI/Human)  |   Record Events
   +------+-------+
          |
          | (4) Issue Award (JSON + PDF)
          v
   +------+-------+
   |   Award      |
   |  Enforcement |
   +--------------+
        ]]></artwork>
      </section>
      
      <section anchor="actors">
        <name>Actors</name>
        
        <ul>
          <li><strong>Claimant Agent</strong>: Initiates dispute</li>
          <li><strong>Respondent Agent</strong>: Defends against claim</li>
          <li><strong>Dispute Service</strong>: Coordinates proceedings (ADP server)</li>
          <li><strong>Judge Panel</strong>: Issues award</li>
          <li><strong>Evidence Stores</strong>: IPFS, blockchain, centralized storage</li>
          <li><strong>Registry Service</strong>: Tracks dispute agreements (optional)</li>
          <li><strong>Neutral Registry</strong>: Discovery service for available neutrals</li>
        </ul>
      </section>
      
      <section anchor="message-flow">
        <name>Message Flow</name>
        
        <t>Typical message exchange:</t>
        
        <ol>
          <li>Claimant to Service: DISPUTE_FILING</li>
          <li>Service to Respondent: DISPUTE_NOTIFICATION</li>
          <li>Respondent to Service: DISPUTE_RESPONSE</li>
          <li>Claimant to Service: EVIDENCE_SUBMISSION</li>
          <li>Respondent to Service: COUNTER_EVIDENCE</li>
          <li>Service to Panel: DELIBERATION_REQUEST</li>
          <li>Panel to Service: AWARD (JSON + PDF)</li>
          <li>Service to Both Parties: AWARD_NOTIFICATION</li>
        </ol>
        
        <t>Each step is recorded as a custody event in the immutable audit trail.</t>
      </section>
    </section>

    <section anchor="message-formats">
      <name>Message Formats</name>
      
      <t>All messages MUST use JSON format <xref target="RFC8259"/> with the following base structure:</t>
      
      <sourcecode type="json"><![CDATA[
{
  "@context": "https://w3id.org/adp/v1",
  "@type": "[MessageType]",
  "messageId": "[UUID]",
  "timestamp": "[ISO8601]",
  "sender": "[Agent URI]",
  "recipient": "[Agent URI]",
  "signature": "[JWS]",
  "payload": { ... }
}
      ]]></sourcecode>
      
      <section anchor="dispute-filing-message">
        <name>Dispute Filing Message</name>
        
        <sourcecode type="json"><![CDATA[
{
  "@type": "DisputeFiling",
  "payload": {
    "claimant": {
      "agentId": "agent://vendor.ai/agent-123",
      "organizationId": "org://vendor.ai",
      "publicKey": "[PEM]"
    },
    "respondent": {
      "agentId": "agent://consumer.ai/agent-456",
      "organizationId": "org://consumer.ai"
    },
    "claim": {
      "claimType": "SLA_BREACH",
      "claimAmount": {"value": 5000, "currency": "USD"},
      "contractReference": "ipfs://Qm...",
      "breachDetails": "Response time exceeded 200ms threshold"
    },
    "evidence": [
      {
        "evidenceId": "ev_abc123",
        "evidenceType": "SYSTEM_LOGS",
        "contentHash": "sha256:...",
        "storageUri": "ipfs://Qm..."
      }
    ],
    "disputeAgreement": {
      "agreementId": "arb_agreement_xyz",
      "rulesVersion": "ADP-v1.0",
      "resolutionMethod": "EXPERT_DETERMINATION",
      "signatureDate": "2025-01-01T00:00:00Z"
    }
  }
}
        ]]></sourcecode>
      </section>
      
      <section anchor="response-message">
        <name>Response Message</name>
        
        <sourcecode type="json"><![CDATA[
{
  "@type": "DisputeResponse",
  "payload": {
    "caseId": "case_abc123",
    "respondent": { ... },
    "response": {
      "admissions": ["claim_element_1"],
      "denials": ["claim_element_2", "claim_element_3"],
      "affirmativeDefenses": ["Force majeure"],
      "counterClaim": {
        "claimType": "BREACH_OF_CONTRACT",
        "claimAmount": {"value": 2000, "currency": "USD"}
      }
    },
    "evidence": [ ... ]
  }
}
        ]]></sourcecode>
      </section>
      
      <section anchor="evidence-submission-message">
        <name>Evidence Submission Message</name>
        
        <sourcecode type="json"><![CDATA[
{
  "@type": "EvidenceSubmission",
  "payload": {
    "caseId": "case_abc123",
    "submittedBy": "claimant",
    "evidence": {
      "evidenceId": "ev_def456",
      "evidenceType": "API_LOGS",
      "description": "API response time measurements",
      "dateRange": {
        "start": "2025-10-01T00:00:00Z",
        "end": "2025-10-07T23:59:59Z"
      },
      "contentHash": "sha256:...",
      "storageUri": "ipfs://Qm...",
      "metadata": {
        "logSource": "cloudwatch",
        "recordCount": 15000,
        "validator": "https://validator.example.com"
      },
      "signature": "[JWS of evidence content]"
    }
  }
}
        ]]></sourcecode>
      </section>
      
      <section anchor="award-message">
        <name>Award Message</name>
        
        <t>Awards MUST be issued in dual format: machine-readable JSON and human-readable PDF.</t>
        
        <sourcecode type="json"><![CDATA[
{
  "@type": "DisputeAward",
  "payload": {
    "awardId": "award_xyz789",
    "caseId": "case_abc123",
    "issuedAt": "2025-10-20T15:00:00Z",
    "resolutionMethod": "EXPERT_DETERMINATION",
    "panel": [
      {"judgeId": "judge_1", "judgeType": "AI"},
      {"judgeId": "judge_2", "judgeType": "AI"},
      {"judgeId": "judge_3", "judgeType": "HUMAN"}
    ],
    "decision": {
      "outcome": "CLAIMANT_PREVAILS",
      "liability": "RESPONDENT_LIABLE",
      "damages": {"value": 5000, "currency": "USD"},
      "findings": "[Full text of findings]",
      "reasoning": "[Legal reasoning]",
      "remedy": "Respondent shall pay $5000 within 30 days"
    },
    "enforcement": {
      "complianceDeadline": "2025-11-20T00:00:00Z",
      "enforcementMechanism": "SMART_CONTRACT",
      "smartContractAddress": "0x..."
    },
    "formats": {
      "json": {
        "contentHash": "sha256:a948904f2f0f479b8f8197694b30184b...",
        "signature": "[JWS of JSON content]"
      },
      "pdf": {
        "documentUri": 
          "https://api.consulatehq.com/awards/award_xyz789.pdf",
        "contentHash": "sha256:b849204f3f1f580c9f9298705c40295c...",
        "signature": "[JWS of PDF hash]",
        "pdfSignature": "[PKCS#7 embedded signature]"
      }
    },
    "signatures": [
      {"judgeId": "judge_1", "signature": "[JWS]"},
      {"judgeId": "judge_2", "signature": "[JWS]"},
      {"judgeId": "judge_3", "signature": "[JWS]"}
    ],
    "publicationStatus": "PUBLIC",
    "precedentialValue": "PERSUASIVE"
  }
}
        ]]></sourcecode>
        
        <t>The PDF format MUST conform to PDF/A standards for long-term archival and 
        SHOULD include embedded digital signatures conforming to PAdES (PDF Advanced 
        Electronic Signatures) standards.</t>
      </section>
    </section>

    <section anchor="transport-security">
      <name>Transport and Security</name>
      
      <section anchor="transport-protocol">
        <name>Transport Protocol</name>
        
        <t>All ADP messages MUST be exchanged over HTTPS (HTTP/2 or HTTP/3).</t>
        
        <t>Base endpoint format:</t>
        <artwork>https://[dispute-service]/adp/v1/[resource]</artwork>
        
        <t>Example endpoints:</t>
        <ul>
          <li>POST https://api.consulatehq.com/adp/v1/disputes</li>
          <li>GET https://api.consulatehq.com/adp/v1/disputes/{caseId}</li>
          <li>POST https://api.consulatehq.com/adp/v1/evidence</li>
          <li>GET https://api.consulatehq.com/adp/v1/custody/{caseId}</li>
        </ul>
      </section>
      
      <section anchor="authentication">
        <name>Authentication</name>
        
        <t>Agents MUST authenticate using OAuth 2.0 <xref target="RFC6749"/> or API keys (JWT <xref target="RFC7519"/>).</t>
        
        <t>Authorization header:</t>
        <artwork>Authorization: Bearer &lt;JWT&gt;</artwork>
        
        <t>JWT <xref target="RFC7519"/> MUST include:</t>
        <ul>
          <li>iss: Issuer (agent's organization)</li>
          <li>sub: Subject (agent ID)</li>
          <li>exp: Expiration timestamp</li>
          <li>aud: Audience (dispute service)</li>
        </ul>
      </section>
      
      <section anchor="encryption">
        <name>Encryption</name>
        
        <ul>
          <li>TLS 1.3 <xref target="RFC8446"/> or higher REQUIRED</li>
          <li>Perfect Forward Secrecy (PFS) cipher suites REQUIRED</li>
          <li>Certificate validation REQUIRED</li>
        </ul>
      </section>
      
      <section anchor="signatures">
        <name>Signatures</name>
        
        <t>All dispute filings, evidence, awards, and custody events MUST be cryptographically 
        signed using JSON Web Signature (JWS) <xref target="RFC7515"/> with ECDSA (ES256 or ES384).</t>
        
        <t>Example JWS header:</t>
        <sourcecode type="json"><![CDATA[
{
  "alg": "ES256",
  "typ": "JWT",
  "kid": "agent-key-123"
}
        ]]></sourcecode>
      </section>
    </section>

    <section anchor="evidence-standards">
      <name>Evidence Standards</name>
      
      <section anchor="evidence-types">
        <name>Evidence Types</name>
        
        <t>ADP defines five standard evidence types:</t>
        
        <ul>
          <li>SYSTEM_LOGS: Server logs, API logs, error logs</li>
          <li>CONTRACTS: Service agreements, SLAs, terms</li>
          <li>COMMUNICATIONS: Messages, emails, notifications</li>
          <li>FINANCIAL: Transaction records, invoices, payments</li>
          <li>EXPERT: Third-party audits, certifications</li>
        </ul>
        
        <t>Additional evidence types MAY be defined by dispute services 
        using namespaced identifiers (e.g., "x-custom-evidence-type").</t>
      </section>
      
      <section anchor="cryptographic-proofs">
        <name>Cryptographic Proofs</name>
        
        <t>Evidence MUST include:</t>
        <ul>
          <li>SHA-256 content hash</li>
          <li>Timestamp (RFC 3161 <xref target="RFC3161"/> or blockchain-anchored)</li>
          <li>Digital signature from submitting party</li>
        </ul>
      </section>
      
      <section anchor="timestamping">
        <name>Timestamping</name>
        
        <t>Timestamps MUST be:</t>
        <ul>
          <li>RFC 3161 <xref target="RFC3161"/> compliant, OR</li>
          <li>Blockchain-anchored (Bitcoin, Ethereum), OR</li>
          <li>Trusted timestamping service with verifiable audit trail</li>
        </ul>
      </section>
    </section>

    <section anchor="chain-of-custody">
      <name>Chain of Custody and Audit Trail</name>
      
      <t>ADP requires an immutable, verifiable chain of custody for all actions 
      in the dispute resolution process. This provides transparency, auditability, 
      and enables appeals or external audits.</t>
      
      <section anchor="custody-event-structure">
        <name>Custody Event Structure</name>
        
        <t>Each custody event MUST conform to the following structure:</t>
        
        <sourcecode type="json"><![CDATA[
{
  "@type": "CustodyEvent",
  "eventId": "evt_abc123def456",
  "caseId": "case_abc123",
  "eventType": "EVIDENCE_SUBMITTED",
  "timestamp": "2025-10-15T14:23:45Z",
  "actor": {
    "actorId": "agent://vendor.ai/agent-123",
    "actorType": "CLAIMANT_AGENT",
    "publicKey": "[PEM]"
  },
  "action": {
    "description": "Submitted API response time logs",
    "targetResource": "evidence://ev_def456",
    "actionData": {
      "evidenceId": "ev_def456",
      "evidenceType": "SYSTEM_LOGS"
    }
  },
  "integrity": {
    "contentHash": "sha256:...",
    "previousEventHash": "sha256:...",
    "signature": "[JWS of this event]"
  }
}
        ]]></sourcecode>
      </section>
      
      <section anchor="event-types">
        <name>Standard Event Types</name>
        
        <t>ADP defines the following standard custody event types:</t>
        
        <ul>
          <li><strong>DISPUTE_FILED</strong>: Initial dispute submission</li>
          <li><strong>DISPUTE_NOTIFICATION_SENT</strong>: Respondent notified</li>
          <li><strong>RESPONSE_SUBMITTED</strong>: Respondent filed response</li>
          <li><strong>EVIDENCE_SUBMITTED</strong>: Evidence added by either party</li>
          <li><strong>PANEL_ASSIGNED</strong>: Arbitrators assigned to case</li>
          <li><strong>DELIBERATION_STARTED</strong>: Panel begins review</li>
          <li><strong>DELIBERATION_COMPLETED</strong>: Panel reaches decision</li>
          <li><strong>AWARD_ISSUED</strong>: Final award published</li>
          <li><strong>AWARD_DELIVERED</strong>: Award sent to parties</li>
          <li><strong>COMPLIANCE_VERIFIED</strong>: Remedy compliance confirmed</li>
        </ul>
        
        <t>Services MAY define additional event types with "x-" prefix.</t>
      </section>
      
      <section anchor="merkle-chain-linking">
        <name>Cryptographic Linking</name>
        
        <t>Custody events MUST be cryptographically linked in a Merkle chain style:</t>
        
        <ol>
          <li>Each event includes the hash of the previous event in "previousEventHash"</li>
          <li>The first event in a case has previousEventHash set to null or case creation hash</li>
          <li>The contentHash is computed as SHA-256 of the canonical JSON representation (excluding the signature field)</li>
          <li>Each event MUST be signed by the actor or the dispute service</li>
        </ol>
        
        <t>This creates an immutable chain where any tampering with an event 
        will invalidate all subsequent event hashes.</t>
      </section>
      
      <section anchor="custody-verification">
        <name>Verification Procedures</name>
        
        <t>To verify the integrity of a custody chain:</t>
        
        <ol>
          <li>Retrieve all custody events for the case in chronological order</li>
          <li>Verify the signature of each event using the actor's public key</li>
          <li>Recompute the contentHash of each event and compare with stored hash</li>
          <li>Verify that each event's previousEventHash matches the prior event's contentHash</li>
          <li>Verify timestamps are monotonically increasing</li>
        </ol>
        
        <t>If any verification step fails, the custody chain is compromised.</t>
      </section>
      
      <section anchor="custody-retrieval">
        <name>Custody Chain Retrieval</name>
        
        <t>Services MUST provide an endpoint to retrieve the complete custody chain:</t>
        
        <artwork>GET /adp/v1/custody/{caseId}</artwork>
        
        <t>Response format:</t>
        
        <sourcecode type="json"><![CDATA[
{
  "caseId": "case_abc123",
  "chainStatus": "VALID",
  "events": [
    { /* custody event 1 */ },
    { /* custody event 2 */ },
    ...
  ],
  "chainRoot": "sha256:...",
  "totalEvents": 8
}
        ]]></sourcecode>
      </section>
    </section>

    <section anchor="dispute-lifecycle">
      <name>Dispute Lifecycle</name>
      
      <section anchor="filing-phase">
        <name>Filing Phase</name>
        <ul>
          <li>Claimant submits DisputeFiling message</li>
          <li>Service validates message format and signature</li>
          <li>Service assigns case ID and notifies respondent</li>
          <li>Service confirms filing with timestamp</li>
          <li>Service records DISPUTE_FILED custody event</li>
        </ul>
      </section>
      
      <section anchor="response-phase">
        <name>Response Phase</name>
        <ul>
          <li>Respondent submits DisputeResponse within deadline</li>
          <li>Service validates response</li>
          <li>If no response, service MAY issue default judgment per dispute rules</li>
          <li>Service records RESPONSE_SUBMITTED custody event</li>
        </ul>
      </section>
      
      <section anchor="discovery-phase">
        <name>Discovery Phase</name>
        <ul>
          <li>Parties exchange EvidenceSubmission messages</li>
          <li>Service validates evidence format and signatures</li>
          <li>Service stores evidence hashes for integrity verification</li>
          <li>Service records EVIDENCE_SUBMITTED custody event for each submission</li>
        </ul>
      </section>
      
      <section anchor="deliberation-phase">
        <name>Deliberation Phase</name>
        <ul>
          <li>Panel reviews all submissions</li>
          <li>Panel MAY request additional evidence or clarifications</li>
          <li>Panel deliberates according to agreed dispute rules</li>
          <li>Service records DELIBERATION_STARTED and DELIBERATION_COMPLETED events</li>
        </ul>
      </section>
      
      <section anchor="award-phase">
        <name>Award Phase</name>
        <ul>
          <li>Panel issues DisputeAward message in dual format (JSON + PDF)</li>
          <li>Service validates award signatures from all panel members</li>
          <li>Service delivers award to both parties</li>
          <li>Service publishes award if designated as public</li>
          <li>Service records AWARD_ISSUED and AWARD_DELIVERED custody events</li>
          <li>Parties have specified time to comply with remedy</li>
        </ul>
      </section>
    </section>

    <section anchor="interoperability">
      <name>Interoperability</name>
      
      <section anchor="service-discovery">
        <name>Service Discovery (.well-known)</name>
        
        <t>Dispute services SHOULD publish capability manifest at:</t>
        <artwork>https://[domain]/.well-known/adp</artwork>
        
        <t>Example:</t>
        <sourcecode type="json"><![CDATA[
{
  "disputeService": "https://api.consulatehq.com/adp/v1",
  "protocolVersion": "1.0",
  "supportedRules": ["Consulate-v1.0", "UNCITRAL-2021"],
  "supportedEvidenceTypes": [
    "SYSTEM_LOGS",
    "CONTRACTS", 
    "COMMUNICATIONS",
    "FINANCIAL",
    "EXPERT"
  ],
  "maxClaimValue": 10000000,
  "supportedCurrencies": ["USD", "EUR", "ETH"],
  "features": {
    "chainOfCustody": true,
    "dualFormatAwards": true,
    "neutralDiscovery": true
  },
  "endpoints": {
    "disputes": "/adp/v1/disputes",
    "evidence": "/adp/v1/evidence",
    "custody": "/adp/v1/custody/{caseId}",
    "neutrals": "/.well-known/adp/neutrals"
  },
  "publicKeyEndpoint": "/.well-known/jwks.json",
  "pricingTiers": ["micro", "smb", "enterprise"]
}
        ]]></sourcecode>
      </section>
      
      <section anchor="capability-negotiation">
        <name>Capability Negotiation</name>
        
        <t>Parties MAY negotiate protocol extensions via OPTIONS request to 
        the dispute service endpoint.</t>
      </section>
      
      <section anchor="protocol-extensions">
        <name>Protocol Extensions</name>
        
        <t>Custom evidence types and message fields MAY be added with 
        namespaced keys (e.g., "x-custom-field"). Services implementing 
        such extensions SHOULD document them in their capability manifest.</t>
      </section>
    </section>

    <section anchor="neutral-discovery">
      <name>Arbitrator Discovery and Registry</name>
      
      <t>To enable transparent neutral selection, services SHOULD provide 
      a discoverable registry of available neutrals.</t>
      
      <section anchor="neutral-registry-endpoint">
        <name>Registry Endpoint</name>
        
        <t>Arbitrator registries SHOULD be published at:</t>
        <artwork>https://[domain]/.well-known/adp/neutrals</artwork>
        
        <t>Example response:</t>
        <sourcecode type="json"><![CDATA[
{
  "registryVersion": "1.0",
  "lastUpdated": "2025-10-10T00:00:00Z",
  "neutrals": [
    {
      "neutralId": "arb_human_001",
      "name": "Hon. Jane Smith",
      "type": "HUMAN",
      "qualifications": {
        "certifications": [
          "AAA Certified Arbitrator",
          "JAMS Panelist"
        ],
        "jurisdictions": ["US-CA", "US-NY", "US-TX"],
        "specializations": [
          "Technology Disputes",
          "SLA Breaches"
        ],
        "yearsExperience": 15,
        "casesCompleted": 342
      },
      "availability": {
        "status": "AVAILABLE",
        "nextAvailable": "2025-10-12T00:00:00Z",
        "maxCaseload": 10,
        "currentCaseload": 3
      },
      "publicKey": "[PEM public key]",
      "biasAudit": {
        "lastAuditDate": "2025-07-01",
        "auditResults": 
          "https://consulatehq.com/audits/arb_human_001",
        "fairnessScore": 0.94
      }
    },
    {
      "neutralId": "arb_ai_gpt4_001",
      "name": "GPT-4 Arbitrator Instance",
      "type": "AI",
      "qualifications": {
        "model": "gpt-4-turbo",
        "version": "2024-11-06",
        "specializations": [
          "Contract Interpretation",
          "Technical Disputes"
        ],
        "trainingData": 
          "Trained on dispute case law through 2024",
        "casesCompleted": 15420
      },
      "availability": {
        "status": "AVAILABLE",
        "responseTime": "< 5 minutes"
      },
      "publicKey": "[PEM public key]",
      "biasAudit": {
        "lastAuditDate": "2025-09-15",
        "auditResults": 
          "https://consulatehq.com/audits/arb_ai_gpt4_001",
        "fairnessScore": 0.91,
        "biasMetrics": {
          "genderBias": 0.02,
          "organizationSizeBias": 0.03,
          "claimAmountBias": 0.01
        }
      }
    }
  ],
  "selectionGuidelines": 
    "https://consulatehq.com/docs/neutral-selection"
}
        ]]></sourcecode>
      </section>
      
      <section anchor="neutral-manifest">
        <name>Arbitrator Manifest Structure</name>
        
        <t>Each neutral entry MUST include:</t>
        
        <ul>
          <li><strong>neutralId</strong>: Unique identifier</li>
          <li><strong>type</strong>: HUMAN or AI</li>
          <li><strong>qualifications</strong>: Relevant credentials and experience</li>
          <li><strong>availability</strong>: Current status and capacity</li>
          <li><strong>publicKey</strong>: For signature verification</li>
        </ul>
        
        <t>Arbitrator entries SHOULD include:</t>
        
        <ul>
          <li><strong>biasAudit</strong>: Transparency about bias testing results</li>
          <li><strong>specializations</strong>: Types of disputes best suited for</li>
          <li><strong>performance metrics</strong>: Historical data on timeliness and quality</li>
        </ul>
      </section>
      
      <section anchor="selection-guidelines">
        <name>Selection Guidelines</name>
        
        <t>Services SHOULD provide guidelines for neutral selection. ADP does not 
        prescribe a specific selection algorithm but RECOMMENDS considering:</t>
        
        <ul>
          <li>Relevant qualifications and specializations</li>
          <li>Availability and response time requirements</li>
          <li>Historical performance metrics</li>
          <li>Bias audit results and fairness scores</li>
          <li>Party preferences (where permitted by dispute rules)</li>
          <li>Cost considerations</li>
        </ul>
        
        <t>For panels, services SHOULD ensure diversity in neutral types 
        (e.g., mixing AI and human neutrals) and backgrounds.</t>
      </section>
      
      <section anchor="bias-transparency">
        <name>Bias Auditing and Transparency</name>
        
        <t>To maintain trust in the dispute process, services implementing 
        ADP SHOULD:</t>
        
        <ol>
          <li>Conduct regular bias audits of both AI and human neutrals</li>
          <li>Publish audit methodologies and results</li>
          <li>Monitor for disparate impact across different types of parties</li>
          <li>Implement corrective measures when bias is detected</li>
          <li>Allow parties to challenge neutral assignments based on bias concerns</li>
        </ol>
        
        <t>Bias metrics MAY include analysis across dimensions such as 
        organization size, claim amount, industry sector, jurisdiction, and 
        party characteristics.</t>
      </section>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      
      <ul>
        <li><strong>Replay attacks</strong>: All messages include unique messageId and 
        timestamp. Services MUST reject messages with duplicate IDs or expired timestamps.</li>
        
        <li><strong>Man-in-the-middle</strong>: TLS 1.3 with certificate pinning RECOMMENDED 
        for high-value disputes.</li>
        
        <li><strong>Evidence tampering</strong>: All evidence MUST be hashed and signed. 
        Tampering is detectable via hash mismatch. Chain of custody provides additional 
        tamper detection.</li>
        
        <li><strong>Denial of service</strong>: Services SHOULD implement rate limiting 
        and require filing fees to prevent spam submissions.</li>
        
        <li><strong>Privacy</strong>: Parties MAY encrypt evidence payloads with panel's 
        public key. Services SHOULD support confidential dispute upon request.</li>
        
        <li><strong>Key compromise</strong>: Services MUST support key rotation and 
        revocation. Historical awards remain valid if signed before revocation. Chain of 
        custody events preserve pre-compromise integrity.</li>
        
        <li><strong>Chain of custody integrity</strong>: The Merkle chain linking ensures 
        any tampering with custody events is detectable. Services MUST preserve complete 
        custody chains for the duration of potential appeals.</li>
        
        <li><strong>PDF signature verification</strong>: Dual-format awards require both 
        JWS signatures (JSON) and PAdES signatures (PDF). Both MUST be verified independently.</li>
      </ul>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      
      <t>This document requests IANA to register:</t>
      
      <ul>
        <li>URI scheme: "agent://" for agent identification</li>
        <li>Media type: "application/aap+json" for ADP messages</li>
        <li>Well-known URI: /.well-known/adp for service discovery</li>
        <li>Well-known URI: /.well-known/adp/neutrals for neutral registry</li>
      </ul>
      
      <t>The JSON-LD context "https://w3id.org/adp/v1" will be registered 
      with W3C for semantic interoperability.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner">
            <organization/>
          </author>
          <date year="1997" month="March"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba" fullname="B. Leiba">
            <organization/>
          </author>
          <date year="2017" month="May"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3161.xml"/>
    </references>
    
    <references>
      <name>Informative References</name>
        
        <reference anchor="UNCITRAL-CONCILIATION" target="https://uncitral.un.org/en/texts/arbitration/modellaw/commercial_conciliation">
          <front>
            <title>UNCITRAL Model Law on International Commercial Conciliation</title>
            <author>
              <organization>United Nations Commission on International Trade Law</organization>
            </author>
            <date year="2002"/>
          </front>
        </reference>
        
        <reference anchor="SINGAPORE-CONVENTION" target="https://uncitral.un.org/en/texts/mediation/conventions/international_settlement_agreements">
          <front>
            <title>United Nations Convention on International Settlement Agreements Resulting from Mediation (Singapore Convention on Mediation)</title>
            <author>
              <organization>United Nations</organization>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        
        <reference anchor="ADRA" target="https://www.congress.gov/bill/104th-congress/senate-bill/1224">
          <front>
            <title>Administrative Dispute Resolution Act of 1995</title>
            <author>
              <organization>United States Congress</organization>
            </author>
            <date year="1995"/>
          </front>
        </reference>
    </references>
    
    <section anchor="json-schema-definitions">
      <name>JSON Schema Definitions</name>
      
      <t>Full JSON schemas for all ADP message types are published at:</t>
      <t>https://w3id.org/adp/v1/schema/</t>
      
      <t>Reference implementation schemas are available at:</t>
      <t>https://consulatehq.com/schema/adp/v1/</t>
      
      <t>GitHub repository with schemas, examples, and tooling:</t>
      <t>https://github.com/consulatehq/agentic-dispute-protocol</t>
    </section>
    
    <section anchor="example-message-exchanges">
      <name>Example Message Exchanges</name>
      
      <t>Complete examples of filing, response, evidence, custody events, and 
      award message exchanges are available in the ADP repository:</t>
      <t>https://github.com/consulatehq/agentic-dispute-protocol</t>
      
      <t>These examples demonstrate common scenarios including:</t>
      <ul>
        <li>Simple SLA breach dispute with complete custody chain</li>
        <li>Multi-party dispute with counterclaim</li>
        <li>Confidential dispute with encrypted evidence</li>
        <li>Cross-border dispute with multiple currencies</li>
        <li>Dual-format award generation and verification</li>
      </ul>
    </section>
    
    <section anchor="implementation-notes">
      <name>Implementation Notes</name>
      
      <t>Consulate (https://consulatehq.com) provides the reference implementation 
      of ADP with the following features:</t>
      
      <ul>
        <li>Full ADP v1.0 compliance</li>
        <li>REST and WebSocket APIs</li>
        <li>JavaScript/TypeScript SDK</li>
        <li>Real-time case status updates</li>
        <li>Complete chain of custody tracking</li>
        <li>Automated dual-format award generation (JSON + PDF)</li>
        <li>Arbitrator discovery and selection tools</li>
        <li>Integration with major AI agent platforms</li>
      </ul>
      
      <t>Implementers are encouraged to test interoperability with the Consulate 
      reference implementation during development.</t>
    </section>
    
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      
      <t>This protocol builds upon established alternative dispute resolution frameworks 
      including the UNCITRAL Model Law on International Commercial Conciliation, the 
      Singapore Convention on Mediation, and the U.S. Administrative Dispute Resolution 
      Act, adapting them for autonomous agent interactions and digital dispute resolution.</t>
    </section>
  </back>
</rfc>

