# AATH - Aries Agent Test Harness ```mermaid sequenceDiagram participant AgentA as Issuer participant AATH as AATH (Controller/Agent) participant AgentB as Holder participant AgentC as Verifier critical Connect to Agent as backchannel AATH->>AgentA: Connect to backchannel AgentA-->>AATH: Accept/Connected end critical Connect to Agent as backchannel AATH->>AgentB: Connect to backchannel AgentB-->>AATH: Accept/Connected end critical Connect to Agent as backchannel AATH->>AgentC: Connect to backchannel AgentC-->>AATH: Accept/Connected end critical Connect 2 agents AATH->>AgentA: *Create Invitation to Connect (session_id) AgentA-->>AATH: Invitaion URI AATH->>AgentB: *Connect using Invitaion URI(session_id, invitation_uri) AgentB->>AgentA: Connect AgentB-->>AATH: *Message_Received(connection_id, type, payload) AgentA-->>AATH: *Message_Received(connection_id, type, payload) AgentA-->>AgentB: Accept/Connected AgentB-->>AATH: Accept/Connected (session_id, connection_id) AgentA->>AATH: Accept/Connected (session_id, connection_id) end AATH->>AgentA: *Issue Credential (session_id, connection_id, cred) activate AgentA AgentA->>AgentB: Credential Offer AgentB-->>AATH: *Message_Received(connection_id, type, payload) AATH->>AgentB: *Accept Credential Offer(connection_id, type, payload) AgentB->>AgentA: Accept Credential Offer AgentA->>AgentB: Issue Credential AgentA-->>AATH: Credential Issued/Declined deactivate AgentA ``` ## Connection Flow ## Issuance Flow ```mermaid sequenceDiagram participant AgentA as Issuer participant AATH as AATH (Controller/Agent) participant AgentB as Holder AATH->>AgentA: ACT(type = Issue_Credential, payload = {session_id, connection_id, credential_data}) activate AgentA AgentA->>AgentB: Credential Offer AgentB->>AATH: REPORT(type=Message_Received, {connection_id, type, payload}) AATH->>AgentB: ACT(type=Accept_Credential, payload={connection_id, payload}) AgentB->>AgentA: Accept Credential Offer AgentA->>AgentB: Issue Credential AgentA->>AATH: REPORT(type=Message_Sent, {connection_id, type, payload}) AgentB->>AATH: REPORT(type=Message_Received, {connection_id, type, payload}) deactivate AgentA ``` ## Presentation Flow ## API - REPORT - type - payload - ACT - type/command/procedure - session_id - payload