# Handshake message binary format
Handshake is used to start communication between two nodes.
| # | Field name | Type | Length in Bytes |
|---|---|---|---|
| 1 | Application name length (N) | Byte | 1 |
| 2 | Application name (UTF-8 encoded bytes) | Bytes | N |
| 3 | Application version major | Int | 4 |
| 4 | Application version minor | Int | 4 |
| 5 | Application version patch | Int | 4 |
| 6 | Node name length (M) | Byte | 1 |
| 7 | Node name (UTF-8 encoded bytes) | Bytes | M |
| 8 | Node nonce | Long | 8 |
| 9 | Declared address length (K) or 0 if no declared address was set | Int | 4 |
| 10 | Declared address bytes (if length is not 0) | Bytes | K |
| 11 | Timestamp | Long | 8 |