Skip to main content
Privy allows your app to archive wallets that are no longer needed. Archiving performs a reversible soft-delete: Privy retains the wallet’s keys, history, and address, but hides the wallet from read endpoints and blocks all write and signing operations.

When to archive

Archive a wallet when:
  • The wallet’s purpose is complete (e.g., a one-time payment wallet)
  • Your app is rotating to a new wallet and decommissioning the old one
  • A compliance or security event requires deactivating a wallet without destroying its audit trail

Archiving a wallet

To archive a wallet, make a POST request to:
If the wallet has an external ID, your app can use ext_wal_<external_id> in place of the wallet ID.
The response returns the wallet with archived_at populated (Unix timestamp in milliseconds).

What happens when your app archives a wallet

Custodial wallets (wallets managed by a third-party custodian) cannot be archived. Attempting to archive a custodial wallet returns a 400 error.

Reading archived wallets

To include archived wallets in read operations, pass the include_archived=true query parameter:
Archived wallets include an archived_at field in the response, allowing your app to distinguish them from active wallets.

Restoring an archived wallet

Wallet restoration is available to Privy administrators. If your app needs to restore an accidentally archived wallet, contact Privy support. When Privy restores a wallet:
  • The wallet becomes visible in all read endpoints again
  • Write and signing operations resume
  • Privy sends a wallet.restored webhook event
  • The wallet counts toward your app’s active wallet total

API reference

Archive wallet

POST /v1/wallets/{wallet_id}/archive

wallet.archived webhook

Fired when a wallet is archived.