> **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.from

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

Instantiates a typed [`PublicKey.PublicKey`](/docs/utilities/publickey/types#publickey) object from a [`PublicKey.PublicKey`](/docs/utilities/publickey/types#publickey), [`Bytes.Bytes`](/docs/utilities/bytes/types#bytes), or [`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'
})
// @log: {
// @log:   prefix: 4,
// @log:   x: '0x8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed75',
// @log:   y: '0x3547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',
// @log: }
```

### From Serialized

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

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

## Definition

```ts
function from<publicKey>(
  value: from.Value<publicKey>,
): from.ReturnType<publicKey>
```

## Parameters

### value

* **Type:** `from.Value<publicKey>`

The public key value to instantiate.

#### value.prefix

* **Type:** `number`
* **Optional**

## Return Type

The instantiated [`PublicKey.PublicKey`](/docs/utilities/publickey/types#publickey).

`from.ReturnType<publicKey>`
