Bolt Protocol

Traverse implements the Bolt protocol (versions 5.1 through 6.0) for binary client-server communication.

Supported Versions

VersionStatus
Bolt 6.0Preferred
Bolt 5.8Supported
Bolt 5.7Supported
Bolt 5.6Supported
Bolt 5.5Supported
Bolt 5.4Supported
Bolt 5.3Supported
Bolt 5.2Supported
Bolt 5.1Supported

Handshake

The Bolt handshake begins with a 4-byte magic preamble:

60 60 B0 17

The client then sends four 32-bit version proposals. Each proposal is range-encoded in big-endian byte order:

[padding:8, range:8, minor:8, major:8]

  padding (bits 24-31): always 0
  range   (bits 16-23): number of minor versions backward from "minor" that are accepted
  minor   (bits  8-15): minor version
  major   (bits  0-7):  major version

The server iterates proposals in order, tries each version in the range, and responds with the highest mutually supported version. If no version matches, the server responds with 0.0 and closes the connection.

Default Port

Traverse listens for Bolt connections on port 7690 by default (configurable via --listen).

Authentication

After the handshake, the client sends a HELLO message followed by LOGON with credentials (Bolt 5.4+). If authentication is not configured on the server, any credentials are accepted.

Re-authentication is supported via LOGOFF + LOGON to switch users on the same connection.

TLS

When the server is started with --tls-cert and --tls-key, Bolt connections are upgraded to TLS. Drivers connect using the bolt+s:// scheme:

bolt+s://localhost:7690

Transactions

Bolt supports explicit transactions via BEGIN, COMMIT, and ROLLBACK messages. Queries outside an explicit transaction run in auto-commit mode.

Features

  • Streaming results — rows sent as individual RECORD messages
  • Query parameters — safe parameterized queries to prevent injection
  • Bookmarks — causal consistency across sessions
  • Query statistics — nodes created, relationships created, properties set, labels added, etc.
  • Notifications — warnings and informational messages from the server
  • Telemetry — client API type telemetry (Bolt 5.4+)
  • RESET — connection health recovery

Driver Compatibility

Any Bolt driver supporting version 5.1 or later works with Traverse. Tested drivers include:

LanguageDriverConnection URI
Pythonneo4j-driverbolt://host:7690
JavaScriptneo4j-driverbolt://host:7690
Javaneo4j-java-driverbolt://host:7690
Goneo4j-go-driverbolt://host:7690
.NETTraverse.Bolt (native)bolt://host:7690
.NETNeo4j.Driverbolt://host:7690

Note: Traverse provides a native .NET Bolt client (Traverse.Bolt) with zero external dependencies and pipelined RUN+PULL for lower latency. See .NET Bolt Client.