# 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