Delete an IOTA Identity
There are two approaches to delete an IOTA Identity, with different implications:
Deactivate
As detailed in the IOTA DID Method Specification, the state controller of an IOTA Identity may deactivate it by publishing an update that either:
- deletes the contents of the DID Document entirely, leaving the state metadata empty, OR
- sets the
deactivated
field in the DID Document metadata totrue
.
In both cases, the DID Document will be marked as deactivated
when resolved.
This operation is reversible: the identity can subsequently be reactivated at any time, by publishing an update restoring the DID Document's contents, or unsetting the deactivated
field in the metadata respectively, depending on how it was initially deactivated.
Note that the governor (if different from the state controller) cannot deactivate an identity directly because it is disallowed from updating the DID Document, but it may destroy it.
Example
The following example demonstrates deactivating and reactivating an IOTA DID Document, and optionally reclaiming the storage deposit.
- Rust
- Node.js
loading...
loading...
Destroy
Alternatively, an IOTA Identity can be permanently destroyed.
This is achieved by the governor of a DID publishing a transaction consuming the Alias Output containing the IOTA DID Document, without a corresponding Alias Output on the output side.
Any coins and tokens in the Alias Output are reclaimed and can be sent to another address.
Destroying an IOTA Identity is permanent and irreversible.
Note that historical versions may still be stored off-ledger or on a permanode, so sensitive or Personal Identifiable Information (PII) should NEVER be stored in a DID Document. Even with a previous version available, a destroyed DID can never be restored.
Example
The following example demonstrates a governor destroying an IOTA Identity and sending the storage deposit back to itself.
- Rust
- Node.js
loading...
loading...