---
title: "Remove user from wallet"
method: DELETE
path: "/api/v2/{coin}/wallet/{walletId}/user/{userId}"
tags: ["Wallet"]
---

# Remove user from wallet

`DELETE /api/v2/{coin}/wallet/{walletId}/user/{userId}`

After a user has accepted a wallet share, they become a party on a
wallet and the wallet share is considered “complete”. In order to
revoke the share after they have accepted, you can remove the user
from the wallet.

This operation requires approval by another wallet administrator
if there is more than a single administrator on a wallet.

## Path parameters

- `coin` string, required — A cryptocurrency or token ticker symbol.
- `walletId` string, required
- `userId` string, required

## Response `200`

OK

- Wallet1
  - `admin` object
    - `policy` Policy1
      - `id` string, required
      - `date` string, date-time
      - `label` string
      - `latest` boolean, required
      - `rules` PolicyRule[], required
        - `id` string, required
        - `lockDate` string, date-time, required — The time at which this rule becomes immutable
        - `mutabilityConstraint` 'managed' | 'permanent' — Specifies whether a BitGo admin can change `lockDate` * `managed` - Not locked, but requires approval from a BitGo admin to change * `permanent` - `lockDate` cannot be changed
        - `coin` string — A cryptocurrency or token ticker symbol.
        - `type` 'advancedWhitelist' | 'allTx' | 'bitcoinAddressWhitelist' | 'coinAddressWhitelist' | 'coinAddressBlacklist' | 'transactionLimit' | 'velocityLimit' | 'webhook', required — What causes this rule to trigger
        - `condition` union — Parameters for the type
          - object
            - `amountString` string
            - `timeWindow` integer — Time window in seconds for a velocity limit, between 1 and a month
          - object
            - `amountString` string
            - `timeWindow` integer — Time window in seconds for a velocity limit, between 1 and 30 days
          - object
            - `addresses` union[] — Addresses allowed/restricted for a whitelist/blacklist
              - …
          - object
            - `entries` AdvancedListRuleEntry1[] — Entries specifying which addresses/ wallets/ enterprises are on the whitelist
              - …
          - object
            - `url` string — the url to query for the webhook
        - `action` PolicyRuleActions, required — What happens when this rule is triggered
          - `type` 'deny' | 'getApproval' | 'getFinalApproval' | 'getCustodianApproval' | 'getIdVerification', required
          - `userIds` Id[] — For a final approver action, who can approve
      - `version` integer, required
  - `allowBackupKeySigning` boolean
  - `approvalsRequired` integer, required
  - `balanceString` string
  - `buildDefaults` WalletBuildDefaults
    - `minFeeRate` integer, nullable — (BTC only) The minimum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. Must be greater than or equal to the default of 1000 satoshis/kvByte. Note: The you can override `minFeeRate` on a per transaction basis with the `feeRate` parameter.
    - `maxFeeRate` integer, nullable — (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`. Note: The you can override `maxFeeRate` on a per transaction basis with the `feeRate` parameter.
    - `feeMultiplier` number, nullable — (UTXO only) Custom multiplier to the `feeRate`. The resulting fee rate is limited by the `maxFeeRate`. For replace-by-fee (RBF) transactions (that include `rbfTxIds`), the `feeMultiplier` must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. Note: The `maxFeeRate` limits the fee rate generated by `feeMultiplier`.
    - `changeAddressType` 'p2sh' | 'p2shP2wsh' | 'p2wsh' | 'p2tr' | 'p2trMusig2' | 'default', nullable — (UTXO only) The default script type to use for change for this wallet. Per transaction, you override the default with the `changeAddressType` parameter. If `default` is provided, it will clear the `changeAddressType` default on the wallet. Note that each UTXO coin has different address types available. For example, Only BTC supports `p2tr`.
    - `txFormat` 'legacy' | 'psbt' | 'psbt-lite' — (UTXO only) The default transaction format to use for this wallet. Per transaction, you can override the default with the `txFormat` parameter.
    - `autoReserveUnspentsOnBuildMins` number, nullable — (UTXO only) Automatically reserve unspents when building a transaction.
  - `coin` string, required — A cryptocurrency or token ticker symbol.
  - `coinSpecific` union
    - object
      - `creationFailure` TxId[] — Includes list of fail initialization txids
      - `pendingChainInitialization` boolean — Whether the wallet needs to be initialized on the chain
    - WalletCoinSpecificBtc
      - `allowQuantumUnsafeAddresses` boolean — If true, the wallet allows creation of addresses which are vulnerable to quantum attacks. Defaults to false.
    - WalletCoinSpecificCosmos
      - `rootAddress` string, required — Wallet address to send or receive assets.
      - `lastChainIndex` number — Index of last address that was derived.
      - `lastMemoId` string, required — A running counter of the last known memo id. The first one is 0.
      - `pendingEcdsaTssInitialization` boolean — If true, this wallet cannot sign transactions or messages as the enterprise has not finished MPC setup.
    - WalletCoinSpecificOfc — Coin-specific data for OFC (Go Account) wallets.
      - `needsKeyReshareAfterPasswordReset` boolean — Deprecated: legacy password-reset recovery flag. Retained only for backward compatibility and will be removed in a future release. Do not rely on its presence or value.
      - `pendingSystemInitialization` boolean — True if the wallet is still pending initialization. While true, users cannot create addresses or initiate withdrawals.
      - `userKeySigningRequired` boolean — True if the wallet requires user signatures for all transactions and refuses BitGo KMS signing. Defaults to true when not explicitly set. Only applicable for OFC wallets.
    - WalletCoinSpecificXlm
      - `rootAddress` string — Root address of the wallet
      - `stellarUsername` string — Username for the user's Stellar address
      - `homeDomain` string — Home domain of a Stellar account
      - `stellarAddress` string — Email-like address associated to a Stellar account
  - `custodialWallet` object — The associated custodial wallet object
  - `custodialWalletId` string
  - `deleted` boolean, required
  - `disableTransactionNotifications` boolean, required
  - `enterprise` string
  - `freeze` object
    - `time` string, dateTime
    - `expires` string, dateTime
    - `reason` 'TxIntentMismatch' | 'TxIntentMismatchRecipient' | 'TxIntentMismatchContract' | 'TxIntentMismatchApproval' | 'UserRequest' | 'AdminRequest' — Reason why the wallet was frozen
    - `referenceId` string — Optional reference ID for tracking purposes
    - `adminOrUserId` string — The user who froze the wallet
  - `id` string, required
  - `isCold` boolean
  - `keys` Id[]
  - `label` string, required
  - `m` integer — Number of signatures required. This value must be 2 for hot wallets, 1 for **ofc** wallets, and not specified for custodial wallets.
  - `n` integer — Number of keys provided. This value must be 3 for hot wallets, 1 for **ofc** wallets, and not specified for custodial wallets.
  - `nodeId` string
  - `receiveAddress` Address21
    - `id` string
    - `address` string
    - `chain` 0 | 1 | 10 | 11 | 20 | 21 | 30 | 31 | 40 | 41
    - `index` integer
    - `coin` string
    - `lastNonce` integer
    - `wallet` string
    - `coinSpecific` object — Properties which are specific to certain coin types
      - `xlm` AddressCoinSpecificXlm
        - `memoId` string — Latest memo id generated for the wallet
        - `rootAddress` string — Root address of the wallet
      - `txlm` AddressCoinSpecificXlm
        - `memoId` string — Latest memo id generated for the wallet
        - `rootAddress` string — Root address of the wallet
    - `balance` object — Balance of the address. In case of Eth and Celo, if returnBalancesForToken is passed with includeBalances, then it will return token balance in the address object. This field will be present only when `includeBalances` query param is passed as true.
      - `updated` string, date-time — The last time a transaction affected the balance of this address
      - `balance` integer — The cleared balance of the address
      - `balanceString` string — String representation of `balance`. Guaranteed to not lose precision.
      - `totalReceived` integer — The total amount received on this address (in the chain's base unit)
      - `totalSent` integer — The total amount send from this address (in the chain's base unit)
      - `confirmedBalanceString` string — The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision.
      - `spendableBalanceString` string — The total balance of the address (in the chain's base unit) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision.
    - `label` string, nullable — A human-readable label for the address.
    - `addressType` 'p2sh' | 'p2shP2wsh' | 'p2wsh' | 'p2tr' | 'p2trMusig2'
  - `recoverable` boolean
  - `tags` Id[]
  - `spendableBalanceString` string
  - `unspentCount` number — Number of unspent outputs present in the wallet
  - `startDate` string, date-time
  - `type` 'cold' | 'custodial' | 'custodialPaired' | 'hot' | 'trading' | 'distributedCustody' | 'advanced' — The type describes who owns the keys to the wallet and how they are stored. `cold` wallets are wallets where the private key of the user key is stored exclusively outside of BitGo's system. `custodial` means that this wallet is a cold wallet where BitGo owns the keys. Only customers of the BitGo Trust can create this kind of wallet. `custodialPaired` means that this is a hot wallet that is owned by the customer but it will be linked to a cold (custodial) wallet where BitGo owns the keys. This option is only available to customers of BitGo Inc. BitGo stores an encrypted private key for the user key of `hot` wallets. `trading` wallets are trading accounts where the coin is `ofc`. `distributedCustody` means You manage one key and another key agent manages the second key. BitGo manages the third key
  - `users` WalletUser[]
    - `user` string
    - `permissions` WalletPermission[]
  - `customChangeKeySignatures` CustomChangeKeySignatures — Signatures for the keys which will be used to derive custom change addresses. **Note:** These signatures may only be set once for each wallet and are not modifiable after being set.
    - `user` string
    - `backup` string
    - `bitgo` string
  - `multisigType` 'onchain' | 'tss'
  - `multisigTypeVersion` 'MPCv2'

## Other responses

- `400` — Bad Request
- `404` — Not Found

---

[API](https://skmtc.net/bitgo/apis/bitgo-api.md) · [All operations](https://skmtc.net/bitgo/apis/bitgo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bitgo/bitgo-api/revisions/e445c15e5bee/schema)
