Solidity is a written programming language used for smart contracts. Solidity has a way of controlling bank account with code. With the help of solidity we can have access to application for crowdfunding, lottery, loan or other type financial instrument. This kind of programming language is related to Javascript. The target audience can be classifies as the programmers looking to leverage blockchain technology for advanced apps. Engineers who want to understand Ethereum have also access to solidity. It runs on Ethereum virtual machine on blockchain. This can be considered as high level language designed to work on virtual machine of Ethereum .It was developed by Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai and several former Ethereum core contributors. Now moving towards the explanation to smart contracts which can be explained as best means to exchange money, property, shares or anything that values the money. Solidity allows the interaction between various number of smart contracts with other contracts. One of the most upgradable case involving is the it is not possible to change the code as once the contract has been started. This is to stated as done due to immutable nature of the blockchain. While there are many languages which are compatible with the smart contracts today bot the solidity is the best choice. Solidity language has been in usage of many variables from other language also. This language can be still categorized as quite new language and has limited leaning resource. It might be difficult for a starter to understand it first, it can be only learned from a trainer. Besides Solidity, serpent can also be learnt which is much easier to learn and can be used on Ethereum too. But still solidity can be declared as the king of all the languages to understand the smart contracts and hence learning this language is equal to mastering the concept of Ethereum .