Bolt Protocol

The Bolt network protocol is a highly efficient, lightweight client-server protocol designed for database applications.

The protocol is statement oriented, allowing a client to send statements, each consisting of a single string and a set of typed parameters. The server responds to each request with a result message and an optional stream of result records.

This documentation describes the various versions of the Bolt Protocol, for the use by anyone implementing client or server applications. It is licensed under Creative Commons 3.0 Attribution-ShareAlike, and was originally authored by the team behind the Neo4j graph database.

The current version is Protocol Version 1.

Connection

All versions of the Bolt Protocol operate over a TCP connection or WebSocket, with an optional TLS encapsulation. The recommended default port is 7687.

Protocol version negotiation

All connections will begin with protocol version negotiation, described in the handshake documentation.

Contributing

Bolt is a non-standardized open source protocol and contributions are encouraged.

Contributions to this website and the documentation can be made via the GitHub project.

Implementations

This is a non-exhaustive list of known implementations:

Clients

Command Line Interface (CLI) / Shell client

Command Line Interface (CLI) / Shell client

Web-based command client and visualization

Java driver library

Javascript driver library

Microsoft .NET driver library

Python driver library

Ruby driver library

PHP driver library

C/C++ driver library