Flow Studio
Send DIDComm Message
The DIDCommSendNode — sending an encrypted, authenticated message to a DID endpoint, message type, body, and delivery confirmation.
Node Configuration
{
"nodeType": "DIDCommSend",
"name": "sendVcRequest",
"config": {
"toDid": "$output.resolvePartner.did",
"messageType": "https://didcomm.org/present-proof/3.0/request-presentation",
"body": {
"comment": "Please present your KYB verification credential",
"presentationDefinition": "$output.fetchVcSchema.definition"
},
"senderDidCredentialId": 88,
"encryption": "authcrypt",
"retryCount": 2
}
}
Configuration Fields
| Field | Type | Description |
|---|---|---|
toDid | string / expr | The recipient's DID (e.g., did:web:partner.example.com). The DID document is resolved to find the messaging endpoint. |
messageType | string | DIDComm message type URI. Defines the protocol and version (e.g., present-proof 3.0, basic-message 2.0). |
body | object | Message body payload. Values are expression-evaluated. |
senderDidCredentialId | int | References the sender's DID private key stored via ICredentialResolver. Used for signing and authcrypt. |
encryption | authcrypt | anoncrypt | authcrypt: encrypted and authenticated (sender identity visible to recipient). anoncrypt: encrypted but sender is anonymous. |
Node Output
{
"messageId": "urn:uuid:ef5a7369-f0b9-4143-a49e-aa77e6b74fb8",
"toDid": "did:web:partner.example.com",
"messageType": "https://didcomm.org/present-proof/3.0/request-presentation",
"deliveredAt": "2026-05-25T10:00:00Z",
"status": "delivered"
}
Asynchronous delivery: DIDComm message delivery is asynchronous. The
DIDCommSendNode returns when the message has been sent to the recipient's DID endpoint — not when the recipient has processed it or responded. Use a DIDCommReceiveTrigger in a separate workflow to receive responses.