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

# Create wallet

`POST /v1/wallets`

Provisions a new wallet for the resolved default signing provider configuration, or for an explicitly targeted provider.

## Request body

- object — Create wallet request body.
  - `provider` 'local' | 'fireblocks' | 'privy' | 'coinbase_cdp' | 'para' | 'turnkey' | 'dfns' | 'ibm_haven' | 'anchorage' — Optional provider target. Defaults to the currently resolved default provider for the scope.
  - `label` string — Optional label for the new wallet.
  - `purpose` 'root' | 'mint_authority' | 'freeze_authority' | 'fee_payer' | 'transfer' — Optional semantic purpose for the wallet.
  - `setDefault` boolean — Set this wallet as the default signer for the active wallet signing config.

## Response `201`

Wallet created

- object — Standard success response envelope.
  - `data` object, required — Created wallet response payload.
    - `wallet` object, required — Wallet details.
      - `id` string, required — Wallet record ID.
      - `custodyConfigId` string — Owning custody configuration ID.
      - `provider` 'local' | 'fireblocks' | 'privy' | 'coinbase_cdp' | 'para' | 'turnkey' | 'dfns' | 'ibm_haven' | 'anchorage' — Wallet signing provider.
      - `isDefaultProvider` boolean — Whether this wallet belongs to the current default provider config.
      - `walletId` string, required — Provider wallet ID.
      - `publicKey` string, required — Base58-encoded Solana address.
      - `label` string, nullable, required — Optional wallet label.
      - `purpose` 'root' | 'mint_authority' | 'freeze_authority' | 'fee_payer' | 'transfer' | 'null', nullable, required — Optional wallet purpose.
      - `status` 'active' | 'inactive', required — Wallet status.
      - `createdAt` string, date-time, required — ISO 8601 timestamp.
      - `balances` object[] — Optional tracked token balances for the wallet.
        - `token` string, required — Tracked token symbol.
        - `mint` string, required — Tracked token mint address.
        - `amount` string, required — Raw token amount as a string.
        - `uiAmount` string, required — Human-readable token balance.
        - `decimals` integer, required — Token decimals.
        - `usdPrice` number — Resolved USD price per token when available.
        - `usdValue` number — Resolved USD value of this balance when pricing is available.
  - `meta` object, required — Response metadata.
    - `requestId` string, required — Request identifier for tracing.
    - `timestamp` string, date-time, required — ISO 8601 timestamp.

## Other responses

- `400` — Error
- `401` — Error
- `403` — Error
- `409` — Error
- `500` — Error

---

[API](https://skmtc.dev/solana/apis/solana-developer-platform-api.md) · [All operations](https://skmtc.dev/solana/apis/solana-developer-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/solana/solana-developer-platform-api/revisions/f0006b71f86c/schema)
