---
title: "Create wallet"
method: POST
path: "/v1/wallets"
tags: ["Wallets"]
---

# Create wallet

`POST /v1/wallets`

Creates a new wallet on the requested chain and for the requested owner.

## Headers

- `privy-app-id` string, required — ID of your Privy app.
- `privy-idempotency-key` string — Idempotency keys ensure API requests are executed only once within a 24-hour window.

## Request body

- object
  - `additional_signers` AdditionalSignerItemInput[] — 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.
  - `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.
  - `owner` union — The owner of the resource, specified as a Privy user ID, a P-256 public key, or null to remove the current owner.
    - object — Owner input specifying a Privy user ID.
      - `user_id` string, required
    - object — Owner input specifying a P-256 public key.
      - `public_key` string, required — A P-256 (secp256r1) public key.
  - `owner_id` string, cuid2, nullable — The key quorum ID to set as the owner of the resource. If you provide this, do not specify an owner.
  - `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`

Newly created wallet.

- Wallet — A wallet managed by Privy's wallet infrastructure.
  - `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)
