Smart contracts are programs stored on the blockchain that are run when some set of predetermined conditions are met. Each smart contract has a unique hexadecimal address. These addresses are a 42-character alphanumeric string that begins with "0x" and is generated using a cryptographic algorithm. Below is an example of a smart contract's source code written in solidity, a programming language used to compose smart contracts.
// Specifies the version of Solidity, using semantic versioning.// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragmapragmasolidity ^0.7.0;// Defines a contract named `HelloWorld`.// A contract is a collection of functions and data (its state). Once deployed, a contract resides at a specific address on the Ethereum blockchain. Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.htmlcontract HelloWorld {// Declares a state variable `message` of type `string`.// State variables are variables whose values are permanently stored in contract storage. The keyword `public` makes variables accessible from outside a contract and creates a function that other contracts or clients can call to access the value.stringpublic message;// Similar to many class-based object-oriented languages, a constructor is a special function that is only executed upon contract creation.// Constructors are used to initialize the contract's data. Learn more:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructorsconstructor(stringmemory initMessage) {// Accepts a string argument `initMessage` and sets the value into the contract's `message` storage variable). message = initMessage; }// A public function that accepts a string argument and updates the `message` storage variable.functionupdate(stringmemory newMessage) public { message = newMessage; }}