---
title: "Adopt an existing Privy wallet as the account's 2-of-2 wallet"
method: POST
path: "/admin/wallets/accounts/{id}/adopt-multisig"
tags: ["directory"]
---

# Adopt an existing Privy wallet as the account's 2-of-2 wallet

`POST /admin/wallets/accounts/{id}/adopt-multisig`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/admin/wallets/accounts/{id}/adopt-multisig`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Threads an ALREADY-EXISTING quorum-owned Privy wallet into account_wallets as the account's multisig wallet, and makes it primary. For wallets minted outside v3 (a migration spike, or by hand during an incident) — those are invisible on the Privy user object, so no automatic path can discover them, and the ensure path would mint a duplicate instead of adopting. The wallet's live owner quorum is VERIFIED to be a true 2-of-2 naming this account's Privy user before anything is written; a mistyped wallet id is refused rather than recorded. Refuses when the account already records a multisig wallet.

## Path parameters

- `id` string, required

## Request body

- InternalDeliveryHttpHandlerAdoptMultisigWalletRequest
  - `privy_wallet_id` string

## Response `200`

OK

- InternalDeliveryHttpHandlerAdoptMultisigWalletResponse
  - `address` string
  - `owner_quorum_id` string
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `409`: Conflict
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
