---
title: "Create wallets with recovery"
method: POST
path: "/v1/wallets_with_recovery"
tags: ["Embedded wallets"]
deprecated: true
---

# Create wallets with recovery

`POST /v1/wallets_with_recovery`

> **Deprecated.**

Create one or more wallets associated with a recovery user, so the user can later regain wallet access via the linked accounts. Deprecated; prefer the standard wallet creation flow combined with a separate recovery setup.

## Headers

- `privy-app-id` string, required — ID of your Privy app.

## Request body

- object
  - `primary_signer` object, required
    - `subject_id` string, required — The JWT subject ID of the user.
  - `recovery_user` object, required
    - `linked_accounts` union[], required
      - union
        - LinkedAccountEmailInput — The payload for importing an email account.
          - `address` string, email, required
          - `type` 'email', required
        - LinkedAccountCustomJWTInput — The payload for importing a Custom JWT account.
          - `custom_user_id` string, required
          - `type` 'custom_auth', required
  - `wallets` object[], required
    - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
    - `display_name` string — A human-readable label for the wallet.
    - `external_id` string — A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed after creation.
    - `policy_ids` string[] — List of policy IDs for policies that should be enforced on the wallet. Currently, only one policy is supported per wallet.

## Response `200`

Object with user and wallet data.

- WalletCreateWalletsWithRecoveryResponse — The response from creating wallets with an associated recovery user.
  - `recovery_user_id` string, required — The ID of the created user.
  - `wallets` Wallet[], required — The wallets that were created.
    - `additional_signers` WalletAdditionalSignerItem[], required — Additional signers for the wallet.
      - `override_policy_ids` string[] — An optional list of up to one policy ID to enforce on the wallet.
      - `signer_id` string, cuid2, required — A unique identifier for a key quorum.
    - `address` string, required — Address of the wallet.
    - `archived_at` number, nullable — Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active.
    - `authorization_threshold` number — The number of keys that must sign for an action to be valid.
    - `chain_type` 'ethereum' | 'solana' | 'cosmos' | 'stellar' | 'sui' | 'aptos' | 'movement' | 'tron' | 'bitcoin-segwit' | 'bitcoin-taproot' | 'pearl' | 'near' | 'ton' | 'starknet' | 'spark', required — The wallet chain types.
    - `created_at` number, required — Unix timestamp of when the wallet was created in milliseconds.
    - `custody` WalletCustodian — Information about the custodian managing this wallet.
      - `provider` string, required — The custodian responsible for the wallet.
      - `provider_user_id` string, required — The resource ID of the beneficiary of the custodial wallet.
    - `display_name` string — A human-readable label for the wallet.
    - `exported_at` number, nullable, required — Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported.
    - `external_id` string — A customer-provided identifier for mapping to external systems. Write-once, set only at creation.
    - `id` string, required — Unique ID of the wallet. This will be the primary identifier when using the wallet in the future.
    - `imported_at` number, nullable, required — Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported.
    - `owner_id` string, cuid2, nullable, required — The key quorum ID of the owner of the wallet.
    - `policy_ids` string[], required — List of policy IDs for policies that are enforced on the wallet.
    - `public_key` string — The compressed, raw public key for the wallet along the chain cryptographic curve.

---

[API](https://skmtc.net/privy-io/apis/privy-api.md) · [All operations](https://skmtc.net/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/privy-io/privy-api/revisions/bb2eb34156cc/schema)
