# z.RpcSchema Types

<a id="zrpcschemaitem" />

## `z.RpcSchema.Item`

A single JSON-RPC method schema. Holds the Zod schemas for a method's `params` and `returns`, plus a derived `request` (`{ method, params }`) schema used to build discriminated-union request envelopes.

```ts
type Item = {
    method: method;
    params: params;
    request: z.ZodMiniType;
    returns: returns;
}
```

**Source:** [src/zod/internal/rpcSchemas/from.ts](https://github.com/wevm/ox/blob/main/src/zod/internal/rpcSchemas/from.ts#L53)

<a id="zrpcschemamethodname" />

## `z.RpcSchema.MethodName`

Extracts the method names of a `RpcSchema.Namespace`.

```ts
type MethodName = keyof namespace & string
```

**Source:** [src/zod/RpcSchema.ts](https://github.com/wevm/ox/blob/main/src/zod/RpcSchema.ts#L454)

<a id="zrpcschemanamespace" />

## `z.RpcSchema.Namespace`

A namespace of JSON-RPC method schemas, keyed by method name.

```ts
type Namespace = Record<string, Item>
```

**Source:** [src/zod/RpcSchema.ts](https://github.com/wevm/ox/blob/main/src/zod/RpcSchema.ts#L454)

<a id="zrpcschemarequestinput" />

## `z.RpcSchema.RequestInput`

Wire (input) request envelope for a namespace.

```ts
type RequestInput = {
    [method in MethodName<namespace>]: {
        method: namespace[method]['method'];
        params: z.input<namespace[method]['params']>;
    };
}[MethodName<namespace>]
```

**Source:** [src/zod/RpcSchema.ts](https://github.com/wevm/ox/blob/main/src/zod/RpcSchema.ts#L454)

<a id="zrpcschemarequestoutput" />

## `z.RpcSchema.RequestOutput`

Decoded (output) request envelope for a namespace.

```ts
type RequestOutput = {
    [method in MethodName<namespace>]: {
        method: namespace[method]['method'];
        params: z.output<namespace[method]['params']>;
    };
}[MethodName<namespace>]
```

**Source:** [src/zod/RpcSchema.ts](https://github.com/wevm/ox/blob/main/src/zod/RpcSchema.ts#L454)
