> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How-to: Remove a user

> Stop a user from using your app by revoking their session and removing the user-to-wallet mapping in your system. Funds remain in the user's self-custodial wallet.

User-controlled wallets are self-custodial: the user's MPC key share lives on
their device, and Circle's API does not provide an endpoint to delete a user,
delete a user-controlled wallet, or bulk disable accounts. There is no "remove
from app" or "deactivate user" operation alongside the
[List users](/api-reference/wallets/user-controlled-wallets/list-users) and
[Get user](/api-reference/wallets/user-controlled-wallets/get-user) endpoints.
Use this guide to stop a user from accessing your app while preserving their
self-custodial wallet.

## Prerequisites

Before you begin, ensure that you've:

* Created a
  [Circle Developer Account and an API key](/w3s/circle-developer-account).
* Built a backend that issues short-lived `userToken` values to authenticated
  users. See [Build a wallet app](/wallets/user-controlled/build-a-wallet-app)
  for the full flow.
* Identified the `userId` of the user you want to remove from your app.

## Steps

<Steps>
  <Step title="Revoke the user's session in your application">
    End-user access is gated by your authentication layer (social login, email
    OTP, or PIN) and the short-lived `userToken` your backend issues. Stop
    issuing new tokens for that user so your app can no longer call user-scoped
    wallet endpoints on their behalf.
  </Step>

  <Step title="Delete the user record in your own system">
    Remove the user-to-wallet mapping in your database so your app no longer
    surfaces the wallet to other flows.
  </Step>

  <Step title="Notify the user about their funds">
    Because the user controls their key share, any onchain balance stays in
    their wallet and is not affected by removing them from your app. Ask the
    user to sweep funds out beforehand if needed.
  </Step>
</Steps>

<Note>
  Circle retains the `userId` and associated wallet records to support audit and
  recovery. The user can still access their wallet through any other application
  that authenticates them with the same Circle account.
</Note>
