---
title: "Switch wallet signing provider"
method: POST
path: "/v1/wallets/switch"
tags: ["Wallets"]
---

# Switch wallet signing provider

`POST /v1/wallets/switch`

Selects an active provider config or exact Custody Connection as the default signing target for the requested scope. Existing on-chain authorities are not rotated.

## Request body

- union — Switch the active wallet signing target by provider or exact Custody Connection ID for the project resolved from the request context.
  - object
    - `connectionId` string, required
    - `provider` 'fireblocks' | 'privy' | 'coinbase_cdp' | 'para' | 'turnkey' | 'dfns' | 'ibm_haven' | 'anchorage' | 'utila' | 'local'
  - union
    - object
      - `provider` 'local', required
      - `walletLabel` string
    - object
      - `provider` 'fireblocks', required
      - `walletLabel` string
    - object
      - `provider` 'privy', required
      - `requestDelayMs` integer
      - `walletLabel` string
    - object
      - `provider` 'coinbase_cdp', required
      - `network` 'solana' | 'solana-devnet'
      - `accountPolicy` string
      - `walletLabel` string
    - object
      - `provider` 'para', required
      - `requestDelayMs` integer
      - `walletLabel` string
    - object
      - `provider` 'turnkey', required
      - `requestDelayMs` integer
      - `walletLabel` string
    - object
      - `provider` 'dfns', required
      - `network` 'Solana' | 'SolanaDevnet'
      - `walletLabel` string
    - object
      - `provider` 'ibm_haven', required
      - `network` 'Solana' | 'SolanaDevnet'
      - `walletLabel` string
    - object
      - `provider` 'anchorage', required
      - `walletLabel` string
      - `network` 'solana' | 'solana-devnet'
    - object
      - `provider` 'utila', required
      - `walletLabel` string

## Response `201`

Wallet signing provider switched

- union — Wallet signing switch result.
  - object — Wallet signing initialization result.
    - `configId` string, required — Created wallet signing config ID.
    - `publicKey` string, required — Public key of the provisioned root wallet.
    - `walletId` string, required — Provider wallet ID of the provisioned root wallet.
  - object
    - `connectionId` string, required — Selected Custody Connection ID.
    - `publicKey` string, required — Public key of the Connection's default wallet.
    - `walletId` string, required — Provider wallet ID of the Connection's default wallet.

## Other responses

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

## Changes

- **2026-08-15** `3e302bba5386` — 6 warning
  - added the new `SERVICE_UNAVAILABLE` enum value to the `error/code` response property for the response status `400`
  - added the new `SERVICE_UNAVAILABLE` enum value to the `error/code` response property for the response status `401`
  - added the new `SERVICE_UNAVAILABLE` enum value to the `error/code` response property for the response status `403`
  - added the new `SERVICE_UNAVAILABLE` enum value to the `error/code` response property for the response status `404`
  - …2 more
- **2026-08-12** `fffd44667b3d` — 5 breaking, 4 info
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` from the request body `oneOf` list
  - the response's body type/format changed from `object`/`` to ``/`` for status `201`
  - removed the required property `configId` from the response with the `201` status
  - removed the required property `publicKey` from the response with the `201` status
  - …5 more

[Change history](https://skmtc.dev/solana/apis/solana-developer-platform-api/changes/v1/wallets/switch/post.md)

---

[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/f138f2b58663/schema)
