This is course aims to fulfill a necessity of teaching blockchain from introductory to developing advanced level applications, depending on the area, either as a deployable product or a well defined proposal. We hope to develop skilled students that are aware of the current and future technologies related to bitcoin architecture such as P2P networking, consensus protocols, wallets implementations, smart contracts, privacy and security requirements solved by the deployment of cryptography will be extensively discussed.