# Scanning Flow
```mermaid
flowchart
endOfTask1(((End)))
endOfTask2(((End)))
endOfTask3(((End)))
scan["Holder Scans a QR Code"]
isConnectionLess{"Is Connetionless?"}
goalCodeProvided{"Goal Code Provided?"}
waitForCredentialOffer("Wait for Credential Offer")
waitForProofRequest("Wait for Proof Request")
wait4connection("Wait for Connection Ready")
openContactDetailScreen("Open Contact Chat Screen")
openCredentialOffer("Open Credential Offer Screen")
openProofRequest("Open Proof Request Screen")
scan --> isConnectionLess
isConnectionLess -->|No|wait4connection
goalCodeProvided -->|Yes, Credential Offer| waitForCredentialOffer
goalCodeProvided -->|Yes, Proof Request| waitForProofRequest
openContactDetailScreen --> endOfTask1
wait4connection --> goalCodeProvided
goalCodeProvided -->|No|openContactDetailScreen
waitForCredentialOffer --> openCredentialOffer
isConnectionLess -->|Yes|openProofRequest
waitForProofRequest --> openProofRequest
openCredentialOffer --> endOfTask2
openProofRequest --> endOfTask3
style waitForCredentialOffer fill:#7F7F7F
style openCredentialOffer fill:#7F7F7F
style endOfTask2 fill:#7F7F7F
```