# FrameSignature.toTuple

Converts a [`FrameSignature.FrameSignature`](/api/FrameSignature/types#framesignature) to its RLP-ready [`FrameSignature.Tuple`](/api/FrameSignature/types#tuple).

Encodes numeric scheme identifiers and packs protocol signatures without mutating the entry. Omitted protocol signatures become empty bytes.

## Imports

:::code-group
```ts [Named]
import { FrameSignature } from 'ox'
```

```ts [Entrypoint]
import * as FrameSignature from 'ox/FrameSignature'
```
:::

## Examples

### Basic Usage

Encode arbitrary witness bytes with the default scheme and payload.

```ts twoslash
import { FrameSignature } from 'ox'

const entry = FrameSignature.from('0xaabb')
const tuple = FrameSignature.toTuple(entry)
// @log: ['0x', '0x', '0x', '0xaabb']
```

## Definition

```ts
function toTuple(
  entry: FrameSignature,
): Tuple
```

**Source:** [src/core/FrameSignature.ts](https://github.com/wevm/ox/blob/main/src/core/FrameSignature.ts#L501)

## Parameters

### entry

* **Type:** `FrameSignature`

The signature entry to convert.

#### entry.payload

* **Type:** `0x${string}`
* **Optional**

Explicit nonzero digest. Omit or use empty bytes for the transaction signing hash.

#### entry.publicKey

* **Type:** `{ prefix: number; x: 0x${string}; y: 0x${string}; }`
* **Optional**

Public key, if already known. Empty wire signatures do not retain it.

#### entry.scheme

* **Type:** `2 | "p256"`

P-256 verification scheme.

#### entry.signature

* **Type:** `{ r: 0x${string}; s: 0x${string}; yParity?: number; }`

P-256 signature.

#### entry.signer

* **Type:** `Address.Address | undefined`
* **Optional**

Signer address. Omit to use the transaction sender.

## Return Type

The encoded signature tuple.

`Tuple`
