[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [local‑first/Owner](https://evolu.dev/docs/api-reference/common/local-first/Owner) › createOwnerWebSocketTransport

```ts
function createOwnerWebSocketTransport(config: {
  ownerId: string & Brand<"Id"> & Brand<"OwnerId">;
  url: string;
}): OwnerWebSocketTransport;
```

Defined in: [packages/common/src/local-first/Owner.ts:374](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/local-first/Owner.ts#L374)

Creates an [OwnerWebSocketTransport](https://evolu.dev/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport) for the given relay URL and
[OwnerId](https://evolu.dev/docs/api-reference/common/local-first/Owner/variables/OwnerId).

The URL must be a WebSocket base URL without query parameters or fragments
(e.g., `wss://relay.evolu.dev`, not `wss://relay.evolu.dev?foo=bar`). The
function appends the `ownerId` as a query parameter.

### Example

```ts
// Create transport "wss://relay.evolu.dev?ownerId=..."
const transport = createOwnerWebSocketTransport({
  url: "wss://relay.evolu.dev",
  ownerId: owner.id,
});

// Use with createEvolu
const evolu = createEvolu(deps)(Schema, {
  transports: [transport],
});
```