> ## 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: Retire existing wallets

> Retire dev-controlled wallets from active use by sweeping balances, re-tagging metadata, and blocking further activity with Compliance Engine policies.

Dev-controlled wallets are persistent onchain accounts. Circle's API does not
provide a delete, disable, or archive endpoint for individual wallets or for
wallet sets, and there is no bulk delete operation. Once a wallet is created,
its address and key material remain part of your wallet set. Use this guide to
retire a wallet from active use while keeping it available for audit and
reconciliation.

## Prerequisites

Before you begin, ensure that you've:

* Created a
  [Circle Developer Account and an API key](/w3s/circle-developer-account).
* [Registered your entity secret](/wallets/dev-controlled/register-entity-secret).
* Created at least one dev-controlled wallet. If you haven't, complete the
  [Create a dev-controlled wallet](/wallets/dev-controlled/create-your-first-wallet)
  quickstart.
* Identified the `id` of each wallet you want to retire.

## Steps

<Steps>
  <Step title="Sweep any balance">
    Send all token and native balances to another wallet you control before
    stopping use of the wallet. See [Transfer tokens across
    wallets](/wallets/dev-controlled/transfer-tokens-across-wallets) for the
    transfer flow.
  </Step>

  <Step title="Re-tag the wallet">
    Call [Update a
    wallet](/api-reference/wallets/developer-controlled-wallets/update-wallet)
    (`PUT /wallets/{id}`) and update the `name` and `refId`. For example, prefix
    `refId` with `archived-` so your application can filter the wallet out of
    active lists. The wallet remains available to query for audit and
    reconciliation.
  </Step>

  <Step title="Stop using the wallet in your application">
    Remove the wallet's `id` and `refId` from any user record or assignment pool
    so it is no longer used for new transactions.
  </Step>

  <Step title="Block further activity with policies">
    Use the [Compliance Engine](/wallets/compliance-engine) to screen and deny
    transactions on retired wallets, or enforce equivalent rules in your own
    backend before submitting transactions.
  </Step>
</Steps>

<Note>
  There is no batched delete or disable endpoint. To retire many wallets at
  once, iterate the same flow over a list of wallet IDs in your code: sweep,
  re-tag with `PUT /wallets/{id}`, then remove each wallet from active
  assignment in your application.
</Note>
