Skip to main content
POST
/
v1
/
wallets
/
batch
Create wallets in batch
curl --request POST \
  --url https://api.privy.io/v1/wallets/batch \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'privy-app-id: <privy-app-id>' \
  --data '
{
  "wallets": [
    {
      "chain_type": "ethereum"
    },
    {
      "chain_type": "solana"
    }
  ]
}
'
{
  "results": [
    {
      "index": 0,
      "success": true,
      "wallet": {
        "id": "id2tptkqrxd39qo9j423etij",
        "address": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
        "chain_type": "ethereum",
        "policy_ids": [],
        "additional_signers": [],
        "owner_id": "rkiz0ivz254drv1xw982v3jq",
        "created_at": 1741834854578,
        "exported_at": null,
        "imported_at": null
      }
    },
    {
      "index": 1,
      "success": false,
      "error": "Policy not found",
      "code": "not_found"
    }
  ]
}

Batch behavior

This endpoint creates multiple wallets in a single request. Each wallet creation is processed independently, so a failure for one wallet does not affect the others. If the request body is valid, the endpoint returns HTTP 200 with a results array containing the success or failure status for each wallet. Request-level errors (invalid body, authentication failure, rate limiting) return standard HTTP error codes before any wallets are processed.

Authorizations

Authorization
string
header
required

Basic Auth header with your app ID as the username and your app secret as the password.

Headers

privy-app-id
string
required

ID of your Privy app.

Body

application/json

Request body for batch wallet creation.

wallets
WalletBatchItemInput · object[]
required

Array of wallet creation requests. Minimum 1, maximum 100.

Required array length: 1 - 100 elements

Response

200 - application/json

Batch creation results. Always returns 200 with a results array containing success/failure status for each wallet.

Response for a batch wallet creation request.

results
(WalletBatchCreateSuccess · object | WalletBatchCreateFailure · object)[]
required

Array of results for each wallet creation request, in the same order as input.

A successful wallet creation result within a batch operation.