Part 10: Withdraw Crypto Wallet Specification

Today, we will talk about the process of withdrawing cryptocurrency to external blockchain address specification in detail.

Watch on Youtube    Back to Course Index

Hi. Good morning guys.

This is your one stop channel to become a full stack blockchain engineer.

This is part 10 of the whole course on how to build a Crypto E-Wallet and Exchange System using Odoo.

As defined in the system features before, it should provide a functionality that enable customer to withdraw his crypto wallet to any external blockchain address within the same network.

Before continuing, please consider to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building E-wallet Exchange system with Odoo regularly.

Ok, now let's talk about the specification details.

Withdrawing cryptocurrency from a customer account is essentially a process of transferring cryptocurrency from the company's main crypto wallet, to any external blockchain address, within the same network.

And then, decreasing the customer crypto wallet balance, when that withdraw transaction is executed successfully on the blockchain network, by querying the transaction status.

As we defined on the previous part, every customer will have crypto wallets for each crypto network supported by our system. For example E.T.H wallet, BTC wallet, BNB wallet, etc. 

The actual customer's cryptocurrency is safely stored on our company crypto wallet. The balance can be filled up from a deposit transaction, selling, received from other account, etc.

When a withdraw request is made and confirmed, we will transfer the actual cryptocurrency from that company main wallet, to the destination address, by submitting transfer transaction to the blockchain network.

When the transaction is executed successfully on the network, then we decrease the customer crypto wallet balance for the amount withdrawn.


As we defined in the previous section, at the customer dashboard, he can see shortcut of all his favorite wallets and it's balances, as well as the list of crypto currency he is watching the price for.

To withdraw a cryptocurrency, customer must select the crypto wallet which he want to Buy, Sell, Send, and Receive.

The selected crypto wallet page will appear as follows:

The page shows the current total wallet balance and the transaction history.

To withdraw the cryptocurrency, he will click the Send button.

A page to send or withdraw cryptocurrency will appear.

On this page, customer can see his crypto wallet balance.

Customer must enter the transfer destination address, either by pasting it from the clipboard, searching from his transfer contact, or scanning that address QR code.

When searching and selecting from the contact address, the list of his contact address will appear, where he can select one of them, add new contact, delete, or edit existing contact. 


He can scan the address QR code from another device's wallet application, or copy and paste it for another application on the same device.

The address can be an internal Customer address, identified by email address or user ID, or an external blockchain address. If internal Customer address is selected, then no additional transfer fee is applied, as the money movement is just between one wallet to another internal wallet.

If it is an external blockchain address, then a transfer fee is applied, where the fee amount is depending on the blockchain network at that time of transfer, as we must submit the transaction into the blockchain network.

Next, enter the amount to transfer.

In this event, the system must check whether the sender wallet balance is available for this transfer amount.

If it is, then the Continue button is active, otherwise it remains inactive and a pop up message appear, informing the current wallet balance.

When the transfer transaction is confirmed by the customer, these procedure below is executed at the backend.

If it was an external blockchain address, then the system will execute a transfer transaction and submit it into the respective blockchain network. Then, wait for the transaction status to be successful.

Next, decrease the sender wallet for the transfer amount once the blockchain transaction was successful.

Ok, those are the minimum feature specification for the customer cryptocurrency withdrawal mechanism.

Please consider to like, share, and subscribing our channel if you find it useful, as we will update the topics of Building E-wallet Exchange system with Odoo regularly.

Thanks for watching.