This course is a general introduction to cryptocurrencies and blockchain applications. Students will understand the theoretical concepts that underlay cryptocurrencies, and implement both their own cryptocurrencies as well as develop applications that run on existing cryptocurrencies. Students will see the ethics, legal, and policy aspects pertaining to the subject.