> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# PublicKey.toHex

:::info
`PublicKey.toHex` is a re-export of ox's [`PublicKey.toHex`](https://oxlib.sh/api/PublicKey/toHex). Refer to the ox documentation for the full reference.
:::

Serializes a [`PublicKey.PublicKey`](/docs/utilities/publickey/types#publickey) to [`Hex.Hex`](/docs/utilities/hex/types#hex).

## Imports

```ts
import { PublicKey } from 'viem/utils'
```

## Examples

```ts twoslash
// @noErrors
import { PublicKey } from 'viem/utils'

const publicKey = PublicKey.from({
  prefix: 4,
  x: '0x8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed75',
  y: '0x3547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5'
})

const hex = PublicKey.toHex(publicKey) // [!code focus]
// @log: '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5'
```

## Definition

```ts
function toHex(
  publicKey: PublicKey<boolean>,
  options?: toHex.Options,
): Hex.Hex
```

## Parameters

### publicKey

* **Type:** `PublicKey<boolean>`

The public key to serialize.

#### publicKey.prefix

* **Type:** `numberType`

#### publicKey.x

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

#### publicKey.y

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

### options

* **Type:** `toHex.Options`
* **Optional**

#### options.includePrefix

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

Whether to include the prefix in the serialized public key.

## Return Type

The serialized public key.

`Hex.Hex`
