# Native protocol

The native interface is a Coordinator DB connection protocol. Use the supplied `coordinator client`; clients for ClickHouse, PostgreSQL and SQLite cannot connect to it. The default native listener is `127.0.0.1:7400`.

## Connect and select a database

```sh
./coordinator client --addr 127.0.0.1:7400 --user default --database data
```

The supplied local example configures `default` with an empty password. For another configured account, the client accepts `--password` or the `COORDINATOR_PASSWORD` environment variable. Keep secrets outside shared command output.

## Own the connection lifetime

A native connection retains its selected database, temporary objects and transaction state. Closing it rolls back an uncommitted transaction. An application that returns a connection to a pool must account for that state before another operation uses it.

Native transport has no TLS. Use a trusted connection or an external secure tunnel. Ordinary SQL/control requests and responses have a 16 MiB limit; client uploads have different input limits, described in [native TCP](https://coordinatordb.com/docs/concepts/features/interfaces/tcp).

Result formats are a separate choice from the connection protocol. See [result and input formats](https://coordinatordb.com/docs/resources/develop-contribute/native-protocol/format) and the [client guide](https://coordinatordb.com/docs/concepts/features/interfaces/client) for exact-byte requests, file input and scripted execution.
