# Function: deriveChannel()

```ts
function deriveChannel(params): Promise<Channel>;
```

Defined in: [packages/core/src/identity/channel.ts:90](https://github.com/leifriksheim/minca/blob/main/core/src/identity/channel.ts#L90)

The channel, from this side's private key, both public points and the secret.
The secret and the shared point both go into the keys, so neither alone
opens a recording; both points go into the labels, binding it to this exchange.

## Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `params` | \{ `join`: `Uint8Array`; `kind`: [`ChannelKind`](https://minca.dev/api/core/interfaces/ChannelKind.md); `offer`: `Uint8Array`; `privateKey`: `CryptoKey`; `secret`: `Uint8Array`; `side`: [`ChannelSide`](https://minca.dev/api/core/type-aliases/ChannelSide.md); \} | - |
| `params.join` | `Uint8Array` | The joining side's point |
| `params.kind` | [`ChannelKind`](https://minca.dev/api/core/interfaces/ChannelKind.md) | - |
| `params.offer` | `Uint8Array` | The offering side's point |
| `params.privateKey` | `CryptoKey` | - |
| `params.secret` | `Uint8Array` | - |
| `params.side` | [`ChannelSide`](https://minca.dev/api/core/type-aliases/ChannelSide.md) | Which of the two this side is |

## Returns

`Promise`\<[`Channel`](https://minca.dev/api/core/interfaces/Channel.md)\>
