This course examines the most mature and widely used language for coding smart contracts, Solidity. The 12-video series assumes a reasonably broad understanding of Solidity language; you should also be familiar with different types of functions and data structures available, needed here to build a number of decentralized applications (dApps). Begin by refining an application used to conduct a poll, then implement a smart contract which functions as an escrow. Watch how the different types of data structures in the Solidity programming language operate. Explore different types of functions, including the payable functions which collect ether in a smart contract. Next, build a smart contract application which mimics a bank, with customers represented by their Ethereum account addresses, and each account can have an Ether balance. By completing the course labs, you will incorporate all the skills needed to build the back end of any decentralized application. With some additional Javascript knowledge, you need only integrate your front end with your smart contract in order to become a full-stack blockchain developer.