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

# Pre-generating wallets

> Create embedded wallets for users before they authenticate

Pre-generated wallets allow you to create embedded wallets for users before they authenticate. This is useful for scenarios where you want to prepare wallets in advance or create wallets for users who haven't logged in yet.

## When to use pre-generated wallets

Use pre-generated wallets when you need to:

* Create wallets for users before they sign up or log in
* Prepare wallets in advance for a batch of users
* Set up wallets for users identified by email, phone, or other identifiers
* Create wallets programmatically from your backend

## Prerequisites

Before creating pre-generated wallets, you need:

1. Your environment ID from the Dynamic dashboard URL
2. A Dynamic API key:
   * Go to **Developers** > **SDK and API Key**
   * Create a new API key with appropriate permissions

## Creating a pre-generated wallet

To create a pre-generated wallet, make a POST request to the Dynamic API:

```bash theme={"system"}
curl -X POST "https://app.dynamic.xyz/api/v0/environments/{environmentId}/waas/create" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "identifier": "user@example.com",
    "type": "email",
    "chains": ["EVM"]
  }'
```

### Request parameters

| Parameter       | Type   | Required | Description                                                                                                                                                           |
| --------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `environmentId` | string | Yes      | Your Dynamic environment ID (found in the dashboard URL)                                                                                                              |
| `identifier`    | string | Yes      | The user identifier (email, phone, etc.)                                                                                                                              |
| `type`          | string | Yes      | The type of identifier. See [social providers](/api-reference/schemas/SocialSignInProviderEnum) or [identifier types](/api-reference/schemas/UserIdentifierTypeEnum). |
| `chains`        | array  | Yes      | Array of blockchain chains to create wallets for. See [WaasChainEnum](/api-reference/schemas/WaasChainEnum).                                                          |

### Response

The API returns the created wallet information including:

* Wallet address
* Chain details
* Wallet ID
* Creation timestamp

## How users claim pre-generated wallets

When a user authenticates with the same identifier (email, phone, etc.) used to pre-generate the wallet, the wallet is automatically associated with their account. No additional steps are required from the user.

## API reference

For complete API details, see the [Create WaaS Wallet API endpoint](/api-reference/wallets/create-waas-wallet).
