# Class: TRPCBuilder<TContext, TMeta>

> 

Defined in: [packages/server/src/unstable-core-do-not-import/initTRPC.ts:135](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/unstable-core-do-not-import/initTRPC.ts#L135)

The type of `initTRPC`. Chain `.context()` and `.meta()` to set their
types, then call `.create()`.

## Type Parameters

| Type Parameter |
| ------ |
| `TContext` *extends* `object` |
| `TMeta` *extends* `object` |

## Constructors

### new TRPCBuilder()

> **new TRPCBuilder**\<`TContext`, `TMeta`\>(): [`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TContext`, `TMeta`\>

#### Returns

[`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TContext`, `TMeta`\>

## Methods

### context()

> **context**\<`TNewContext`\>(): [`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TNewContext` *extends* `ContextCallback` ? `Unwrap`\<`TNewContext`\<`TNewContext`\>\> : `TNewContext`, `TMeta`\>

Defined in: [packages/server/src/unstable-core-do-not-import/initTRPC.ts:141](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/unstable-core-do-not-import/initTRPC.ts#L141)

Sets the type of the context every procedure gets. Pass the type, or
the type of your `createContext` function.

#### Type Parameters

| Type Parameter |
| ------ |
| `TNewContext` *extends* `object` \| `ContextCallback` |

#### Returns

[`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TNewContext` *extends* `ContextCallback` ? `Unwrap`\<`TNewContext`\<`TNewContext`\>\> : `TNewContext`, `TMeta`\>

#### See

https://trpc.io/docs/server/context#defining-the-context-type

***

### create()

> **create**\<`TOptions`\>(`opts`?): [`TRPCRootObject`](https://trpc.io/docs/typedoc/server/index/interfaces/TRPCRootObject.md)\<`TContext`, `TMeta`, `TOptions`\>

Defined in: [packages/server/src/unstable-core-do-not-import/initTRPC.ts:161](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/unstable-core-do-not-import/initTRPC.ts#L161)

Creates the root object, which holds the builders for your procedures,
middlewares and routers.

#### Type Parameters

| Type Parameter |
| ------ |
| `TOptions` *extends* `RuntimeConfigOptions`\<`TContext`, `TMeta`\> |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `opts`? | `ValidateShape`\<`TOptions`, `RuntimeConfigOptions`\<`TContext`, `TMeta`\>\> |

#### Returns

[`TRPCRootObject`](https://trpc.io/docs/typedoc/server/index/interfaces/TRPCRootObject.md)\<`TContext`, `TMeta`, `TOptions`\>

#### See

https://trpc.io/docs/server/routers#initialize-trpc

***

### meta()

> **meta**\<`TNewMeta`\>(): [`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TContext`, `TNewMeta`\>

Defined in: [packages/server/src/unstable-core-do-not-import/initTRPC.ts:152](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/unstable-core-do-not-import/initTRPC.ts#L152)

Sets the type of the metadata procedures can set with `.meta()`.

#### Type Parameters

| Type Parameter |
| ------ |
| `TNewMeta` *extends* `object` |

#### Returns

[`TRPCBuilder`](https://trpc.io/docs/typedoc/server/index/classes/TRPCBuilder.md)\<`TContext`, `TNewMeta`\>

#### See

https://trpc.io/docs/server/metadata
