> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# createServerSigner

<Note>
  **This page has been updated for Wallets SDK V1.** If you are using the previous version,
  see the [previous version docs](/wallets/v0/overview) or the [V1 migration guide](/wallets/guides/migrate-to-v1).
</Note>

> **createServerSigner**(`params`): [`ServerSigner`](../type-aliases/ServerSigner)

Defined in: [packages/wallets/src/utils/server-signers/createServerSigner.ts:41](https://github.com/Crossmint/crossmint-sdk/blob/main/packages/wallets/src/utils/server-signers/createServerSigner.ts#L41)

Creates a server signer by deriving a chain-specific key pair from a master secret using HKDF-SHA256.

The derivation is deterministic: same inputs always produce the same signer.

## Parameters

| Parameter | Type                                                                   |
| --------- | ---------------------------------------------------------------------- |
| `params`  | [`CreateServerSignerParams`](../type-aliases/CreateServerSignerParams) |

## Returns

[`ServerSigner`](../type-aliases/ServerSigner)

A server signer containing the type, derived address, and key bytes.

## Example

```ts theme={null}
const signer = createServerSigner({
    secret: "xmsk1_abc123...",
    chain: "base-sepolia",
    projectId: "project-id",
    environment: "staging",
});
// signer = { type: "server", address: "0x...", keyBytes: Uint8Array }
```
