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

# Secp256k1.fromMnemonic

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

Derives a valid secp256k1 private key from a BIP-39 mnemonic.

This is equivalent to [`Mnemonic.toPrivateKey`](/docs/utilities/mnemonic/toPrivateKey), and derives the private key at `m/44'/60'/0'/0/0` by default.

## Imports

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

## Examples

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

const privateKey = Secp256k1.fromMnemonic(
  'test test test test test test test test test test test junk'
)
```

## Definition

```ts
function fromMnemonic<as>(
  mnemonic: string,
  options?: fromMnemonic.Options<as>,
): fromMnemonic.ReturnType<as>
```

## Parameters

### mnemonic

* **Type:** `string`

BIP-39 mnemonic phrase.

### options

* **Type:** `fromMnemonic.Options<as>`
* **Optional**

Options.

#### options.as

* **Type:** `"Bytes" | "Hex" | as`
* **Optional**

Format of the returned private key.

#### options.passphrase

* **Type:** `string`
* **Optional**

Optional BIP-39 passphrase.

#### options.path

* **Type:** `string`
* **Optional**

Derivation path.

## Return Type

A valid secp256k1 private key.

`fromMnemonic.ReturnType<as>`
