Smart contract is a software code that represents transactions in the blockchain network. It is a collection of business rules or conditions that are invoked by the nodes in the blockchain network. Smart contract can have its own execution runtime or a virtual machine environment. It can be made to run in a secured context, like a virtualized container. Smart contract can be implemented in any software languages, the popular being, but not limited to, Java, Python, Go, JavaScript and Scala. Smart contract can be also written as services and placed in registries so that client can look up for the same in a location independent way. The registries can be secured, and access can be controlled so that only authorized clients can act upon that contract. Smart contract itself can be made secured using cryptographic hash algorithms so that it’s content (software code and related metadata) are made confidential. Smart contract can also be programmed to communicate or broadcast transaction state transitions in the form of events. It could be lifecycle events of the contract itself. The application client can listen to these events and handle them accordingly.