Private Withdraw in Mystiko V1 Testnet Wallet

What is Private Withdraw in Mystiko V1 Testnet Wallet?

Private Withdraw is an operation which converts the Private Assets to normal public assets. Private Withdraw takes the locally generated zkSnark proofs as inputs, and submits to smart contract for verifying the authenticity of the requested Private Assets. Once Private Withdraw is successfully verified on-chain, the previously deposited assets will be transferred to the specified public address. Private Withdraw does not reveal any information about the corresponding Private Deposit. Therefore, it is extremely hard to link a deposit and a withdraw, as long as you use two different public addresses for depositing and withdrawing.
Note: It is always good to wait a significant amount of time before you withdrawing the deposited Private Asset. Our recommendation is, you should wait at least 24-hours after your deposit is created. Moreover, it is also a good practice to use different addresses for deposting, withdrawing and paying Ethereum gas.
Mystiko Tutorial 06: Private Withdrawal on Mystiko.Network

Private Withdrawal in Mystiko V1 Testnet Wallet Tutorial

In this section, we will demonstrate how to privately withdraw mUSD(Mystiko test USD token). Withdraw processes are the same in single-chain and cross-chain scenarios.
  1. 1.
    Switch your MetaMask network to the destination chain (Ropsten Network or Goerli Network or BSC network in this demo).
  2. 2.
    ❗️Make sure the deposit receipts to be withdrew has been imported to your Mystiko account before withdraw:
    • If a user would like to withdraw assets from a deposit created in other Mystiko wallets, the user should manually import the deposit receipts provided by the depositor to his/her Mystiko account in advance. Learn how to import external deposit receipts.
    • If a user would like to withdraw the assets he/she deposited in the current Mystiko wallet, user can skip the process of deposit receipt importation, because all deposit receipts created in user’s Mystiko wallet will automatically been imported listed as potential withdrawal options in “Withdraw” page
  3. 3.
    ❗️If the private asset was deposited with cross-chain bridge, you should make sure the status of deposit to be withdrawn is 'Succeeded' instead of any other status. Sometimes cross-chain bridge delays might cause the private asset stuck in source chain, in that scenario, you cannot withdraw that private asset successfully.
  4. 4.
    Fill in withdraw info in “Withdraw” tab of “Transaction” section:
    • Choose a deposit receipt that you would like to withdraw from
    • Type in recipient Address (❗️Please type in your or other users’ ultimate destination address, NOT Mystiko Address)
    • Type in your Mystiko wallet password
    ** we choose to withdraw a 0.1mUSD deposit to MetaMask in this demo. The mUSD balance in MetaMask before withdrawal is 2.7mSUD**
  5. 5.
    And click the “Withdraw” button for withdrawal.
make sure the status of deposit to be withdrawn is 'Succeeded'
Withdrawal transaction prompt
5. Pay transaction gas fee in MetaMask. Notes: Processing time depends on speed and stability on source chain network speed.❗️BSC testnet reports error occasionally, please refresh if stuck.
Submitting withdrawal transaction
Waiting for conformation
6. Once Withdrawn is sent successfully, the MetaMask mUSD balance will increase by the amount of mUSD withdrawn (After 0.1m USD was successfully withdrawn to MetaMask, and the MetaMask balance increased from 2.7mUSD to 2.8mUSD in this demo).
Asset is successfully received
7. Users can review withdrawal history in the “History” section. Click id number for withdrawal details.
Withdraw history