# KeyAuthorization.fromRpcUnsigned

Converts unsigned RPC fields before owner signing.

## Imports

:::code-group
```ts [Named]
import { KeyAuthorization } from 'ox/tempo'
```

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

## Examples

```ts
import { KeyAuthorization } from 'ox/tempo'

const authorization = KeyAuthorization.fromRpcUnsigned({
  chainId: '0x1',
  expiry: null,
  keyId: '0x2222222222222222222222222222222222222222',
  keyType: 'secp256k1',
})
```

## Definition

```ts
function fromRpcUnsigned(
  authorization: UnsignedRpc,
): Unsigned
```

**Source:** [src/tempo/KeyAuthorization.ts](https://github.com/wevm/ox/blob/main/src/tempo/KeyAuthorization.ts#L585)

## Parameters

### authorization

* **Type:** `UnsignedRpc`

#### authorization.account

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

Optional account address binding (TIP-1049).

#### authorization.allowedCalls

* **Type:** `readonly RpcCallScope[]`
* **Optional**

Allowed call scopes (node field: `allowedCalls`).

#### authorization.chainId

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

Chain ID (hex quantity).

#### authorization.expiry

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

Expiry timestamp (hex quantity or null).

#### authorization.fundingPolicy

* **Type:** `Rpc`
* **Optional**

Existing policy ID or inline creation.

#### authorization.isAdmin

* **Type:** `boolean`
* **Optional**

Whether this authorization provisions an admin access key (TIP-1049).

#### authorization.keyId

* **Type:** `abitype_Address`

Key identifier.

#### authorization.keyType

* **Type:** `"secp256k1" | "p256" | "webAuthn" | "multisig"`

Key type.

#### authorization.limits

* **Type:** `readonly RpcTokenLimit[]`
* **Optional**

Token spending limits.

#### authorization.signature

* **Type:** `0x${string} | PrimitiveRpc`

Primitive or multisig signature authorizing this key.

#### authorization.witness

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

Optional 32-byte witness (hex).

## Return Type

`Unsigned`
