1. Get encrypted utxo from events of the smart contract. 2. Try to decrypt each utxo with your private key. 3. Decrypted utxo print on the frontend 4. Enter amount to withdrawal (no more than two utxos right now) 5. Compute proof, cyphertext of new utxos, push it and public data to smart contract