# Deleting Accounts

The owner of an account can send an [AccountDelete transaction](/docs/references/protocol/transactions/types/accountdelete) to delete the account and related entries from the ledger, sending most of the account's remaining XRP balance to another account. To discourage wasteful creation and deletion of accounts, deleting an account requires burning a higher than usual amount of XRP as the [transaction cost](/docs/concepts/transactions/transaction-cost).

Some types of associated ledger entries block an account from being deleted. For example, the issuer of a fungible token can't be deleted while anyone holds a nonzero balance of that token.

After an account has been deleted, it can be re-created in the ledger through the normal method of [creating accounts](/docs/concepts/accounts#creating-accounts). An account that has been deleted and re-created is no different than an account that has been created for the first time.

## Requirements

To be deleted, an account must meet the following requirements:

- The account's `Sequence` number plus 255 must be less than or equal to the current [Ledger Index](/docs/references/protocol/data-types/basic-data-types#ledger-index). This is to protect against replaying old transactions.
- The account must not have any "deletion blockers" in its owner directory. Deletion blockers are generally ledger entries that represent assets, obligations, or transfers of funds. See below for a full list of deletion blockers.
- The account must own 1000 or fewer objects in the ledger.
- The transaction must pay a special [transaction cost](/docs/concepts/transactions/transaction-cost) equal to at least the [owner reserve](/docs/concepts/accounts/reserves) for one item (currently 0.2 XRP).
- If the account has issued any [NFTs](/docs/concepts/tokens/nfts), they must all have been burned. Additionally, the account's `FirstNFTSequence` number plus `MintedNFTokens` number plus 255 must be less than or equal to the current ledger index. This is to protect against reusing `NFTokenID` values.


## Deletion Blockers

The following table shows which [ledger entry types](/docs/references/protocol/ledger-data/ledger-entry-types) are deletion blockers. Any other types of ledger entries that an account owns are automatically deleted along with the account.

Some deletion blockers cannot be removed unilaterally. For example, if you have issued a token to someone else, you cannot delete your account as long as they hold your token. In other cases, you can remove the deletion blocker by sending a transaction that causes the entry to be removed from the ledger.

| Entry Type | Related Amendment | How to remove |
|  --- | --- | --- |
| [Bridge](/docs/references/protocol/ledger-data/ledger-entry-types/bridge) |  | Cannot be removed. |
| [Check](/docs/references/protocol/ledger-data/ledger-entry-types/check) |  | Send a [CheckCancel transaction](/docs/references/protocol/transactions/types/checkcancel) to cancel the check. |
| [Escrow](/docs/references/protocol/ledger-data/ledger-entry-types/escrow) | (Core protocol) | Send an [EscrowCancel transaction](/docs/references/protocol/transactions/types/escrowcancel) to cancel the transaction if it has expired; send [EscrowFinish transaction](/docs/references/protocol/transactions/types/escrowfinish) to finish it if you can satisfy the timed and/or conditional requirements of the escrow. Otherwise, you can't remove the entry. |
| [PayChannel](/docs/references/protocol/ledger-data/ledger-entry-types/paychannel) | (Core protocol) | Send a [PaymentChannelClaim transaction](/docs/references/protocol/transactions/types/paymentchannelclaim) with the `tfClose` flag to request closing the channel; after the settle delay has passed, send another [PaymentChannelClaim transaction](/docs/references/protocol/transactions/types/paymentchannelclaim) to fully close and remove the channel. |
| [PermissionedDomain](/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain) |  | Send a [PermissionedDomainDelete transaction](/docs/references/protocol/transactions/types/permissioneddomaindelete) to delete the domain. |
| [RippleState](/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate) | (Core protocol) | You can only remove the entry if the counterparty's settings are entirely default. If they are, you can remove it by getting the balance to 0 and setting your own settings to the default with a [TrustSet transaction](/docs/references/protocol/transactions/types/trustset). In the common case, the holder can remove the entry but the issuer cannot. |
| [MPToken](/docs/references/protocol/ledger-data/ledger-entry-types/mptoken) |  | If you are the holder of the MPT, reduce your balance to 0 (for example, using a payment), then send an [MPTokenAuthorize transaction](/docs/references/protocol/transactions/types/mptokenauthorize) with the `tfMPTUnauthorize` flag. If you are the issuer of the MPT, you can't remove the entry. |
| [MPTokenIssuance](/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance) |  | Send an [MPTokenIssuanceDestroy transaction](/docs/references/protocol/transactions/types/mptokenissuancedestroy). You can only do this if there are no holders of the MPT. |
| [NFTokenPage](/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage) |  | Send [NFTokenBurn transactions](/docs/references/protocol/transactions/types/nftokenburn) to burn, or [NFTokenCreateOffer transactions](/docs/references/protocol/transactions/types/nftokencreateoffer) to sell or transfer, each NFT you hold. |
| [Vault](/docs/references/protocol/ledger-data/ledger-entry-types/vault) |  | Send a [VaultDelete transaction](/docs/references/protocol/transactions/types/vaultdelete) to delete the vault. You can only do this if the vault is empty. |
| [XChainOwnedClaimID](/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid) |  | Send an [XChainClaim transaction](/docs/references/protocol/transactions/types/xchainclaim) to complete the cross-chain transfer. |
| [XChainOwnedCreateAccountClaimID](/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid) |  | Send enough attestations ([XChainAddAccountCreateAttestation transactions](/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation)) to create the new account. |


## Cost of Deleting

The [AccountDelete transaction](/docs/references/protocol/transactions/types/accountdelete)'s transaction cost always applies when the transaction is included in a validated ledger, even if the transaction failed because the account does not meet the requirements to be deleted. To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, use the `fail_hard` option when submitting an AccountDelete transaction.

Unlike Bitcoin and many other cryptocurrencies, each new version of the XRP Ledger's public ledger chain contains the full state of the ledger, which increases in size with each new account. For that reason, you should not create new XRP Ledger accounts unless necessary. You can recover some of an account's 1 XRP [reserve](/docs/concepts/accounts/reserves) by deleting the account, but you must still destroy at least 0.2 XRP to do so.

Institutions who send and receive value on behalf of many users can use [**Source Tags** and **Destination Tags**](/docs/concepts/transactions/source-and-destination-tags) to distinguish payments from and to their customers while only using one (or a handful) of accounts in the XRP Ledger.