Skip to content

DID-Deactivate tyronZIL transaction

It completely deactivates the Decentralized Identifier by setting the DID-Status to Deactivated and the DID state to None, undefined or Empty.

To be able to execute this operation, the user MUST possess the private did_recovery_key.

Once the operation request is processed, the user as the contract owner MUST call the DidDeactivate transition of their DIDC. This transition is irreversible - after deactivation, the DIDC will never be useful again. Resolving the Decentralized Identifier in future occasions MUST throw a DidDeactivated error.

On the DID-Client's side:

  1. Initialize with the Zilliqa network (mainnet or testnet) & the user's domain name.did to fetch their DID contract from the blockchain.
  2. Utilize the user's private did_recovery_key to verify that it corresponds to the public did_recovery_key stored in the DIDC.
  3. Retrieve the tyron_hash from the user's DIDC and sign it with the pair did_recovery_keys through the SIGNATURE_ALGORITHM.
  4. Submit the DidDeactivate tyronZIL transaction with its transition parameters (agent and Schnorr signature). The contract owner MUST call this transition for it to be successful.

On the DID smart contract's side

When the DidDeactivate transition gets called with the proper hex-encoded signature of type ByStr64 as its argument, the DIDC proceeds as follows:

  1. First, it verifies that the DID-Status is operational by executing the IsRightStatus procedure.
  2. Executes the Payment procedure to make the DIDC work only if the payment is correct.
  3. Executes the IsRightCaller procedure to verify that the call comes from the user (contract owner address).
  4. Fetches the did_recovery_key and the tyron_hash from the contract's state.
  5. Performs the IsRightSignature procedure. It verifies that the signature got produced with the did_recovery_keys by applying the Schnorr signature algorithm on the tyron_hash. 5. Sets the DID-Status to Deactivated, the verification_methods to Emp String ByStr33, the services to Emp String Pair String String and both the did_update_key & did_recovery_key to None{ByStr33}.
  6. Emits the "DID_deactivated" event & executes the Timestamp procedure.

A DID-Deactivate tyronZIL transaction consumes approximately 500 units of GAS (1 ZIL, currently around 0.02 USD).