{"id":22892,"date":"2021-05-22T16:02:29","date_gmt":"2021-05-22T20:02:29","guid":{"rendered":"https:\/\/101blockchains.com\/?p=22892"},"modified":"2025-03-17T01:10:03","modified_gmt":"2025-03-17T05:10:03","slug":"solidity-tutorial","status":"publish","type":"post","link":"https:\/\/101blockchains.com\/solidity-tutorial\/","title":{"rendered":"Solidity Tutorial &#8211; A Detailed Introduction"},"content":{"rendered":"<p class=\"p1\" style=\"text-align: justify;\">Have you heard of <a href=\"https:\/\/101blockchains.com\/what-is-a-smart-contract\/\" target=\"_blank\" rel=\"noopener\">smart contracts<\/a>? There are many potential instances in blockchain technology where you can come across the mention of smart contracts. The arrival of <a href=\"https:\/\/101blockchains.com\/ultimate-blockchain-technology-guide\/\" target=\"_blank\" rel=\"noopener\">blockchain technology<\/a> has created substantial popularity for smart contracts. So, the demand for a good solidity tutorial is increasing considerably as it is an important and commonly preferred language for developing smart contracts.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">Now, any individual who is new to the domain of blockchain i.e. <a href=\"https:\/\/101blockchains.com\/blockchain-for-beginners\/\" target=\"_blank\" rel=\"noopener\">blockchain beginners<\/a> should learn solidity as an alternative for developing the skills required to build smart contracts and <a href=\"https:\/\/101blockchains.com\/what-is-dapp\/\" target=\"_blank\" rel=\"noopener\">decentralized apps<\/a>. It is important to know how Solidity is suitable for smart contract development with a detailed overview of different components.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">With a better impression of the components in the architecture and working of solidity, learners should also reflect on examples. At the same time, a detailed reflection on different ways of using solidity could be helpful for understanding its significance. Furthermore, many students also ask, \u2018is solidity easy to learn?\u2019 and it is important to know that it is easier to learn about solidity with the proper tutorial.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The following discussion offers a detailed overview of solidity and other related aspects such as types, functions, events, and inheritance. In addition, the discussion also offers promising levels of flexibility in learning through reflection on solidity examples.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p>Learn the process of creating and deploying smart contracts on the Ethereum blockchain with the\u00a0<a href=\"https:\/\/101blockchains.com\/course\/solidity-fundamentals\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Solidity Fundamentals Course<\/a>.<\/p><\/blockquote>\n<h3><strong>Table of Contents <\/strong><\/h3>\n<ul>\n<li><a href=\"#1\">Getting Started with Solidity Tutorial: What is Solidity?<\/a><\/li>\n<li><a href=\"#2\">Concepts You Should Know to Understand Solidity<\/a><\/li>\n<li><a href=\"#3\">Decoding the Components of a Smart Contract<\/a><\/li>\n<li><a href=\"#4\">Solidity Compiler Installation<\/a><\/li>\n<li><a href=\"#5\">Understanding\u00a0 the Solidity Syntax<\/a><\/li>\n<li><a href=\"#6\">Learn the Working of Solidity\u00a0<\/a><\/li>\n<li><a href=\"#7\">Variable Types in Solidity<\/a><\/li>\n<li><a href=\"#8\">Understanding Variables in Solidity<\/a><\/li>\n<li><a href=\"#9\">Variable Name Rules<\/a><\/li>\n<li><a href=\"#10\">Understanding Common Solidity Use Cases<\/a><\/li>\n<li><a href=\"#11\">Solidity Tutorial: Bottom Line<\/a><\/li>\n<\/ul>\n<h2 id=\"1\">Getting Started with Solidity Tutorial: What is Solidity?<\/h2>\n<p class=\"p1\" style=\"text-align: justify;\">The first important thing in any solidity tutorial would refer to its definition. It is a high-level programming language focused on designing and implementing smart contracts. The primary influences on Solidity include C++, JavaScript, and Python with a specific orientation for targeting the <a href=\"https:\/\/101blockchains.com\/ethereum-virtual-machine\/\" target=\"_blank\" rel=\"noopener\">Ethereum Virtual Machine<\/a>.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-logo.png.webp 333w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-logo-300x136.png.webp 300w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-logo.png\" height=\"151\" width=\"333\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-logo.png 333w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-logo-300x136.png 300w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" class=\"size-full wp-image-22899 aligncenter sp-no-webp\" alt=\"solidity logo\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">You can use solidity for <a href=\"https:\/\/101blockchains.com\/dapp-development\/\" target=\"_blank\" rel=\"noopener\">developing decentralized applications or dApps<\/a> on the <a href=\"https:\/\/101blockchains.com\/ultimate-ethereum-guide\/\" target=\"_blank\" rel=\"noopener\">Ethereum<\/a> blockchain. <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.8.4\/\" target=\"_blank\" rel=\"noopener\">Solidity<\/a> came forward in 2015 under the leadership of Christian Reitwiessner. The key highlighted features of solidity are important aspects that showcase the power of solidity in an abridged version. Here are the notable features you would find when you learn solidity.<\/p>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">Solidity is a statically-type language tailored for the implementation of smart contracts. It leverages the object-oriented or contract-oriented foundation for building and deploying smart contracts.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">Solidity is a suitable programming language for the creation of contracts that deal with blind auctions, multi-signature wallets, voting, crowdfunding, and other applications.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">Solidity offers comprehensive support for complicated approaches in user-defined programming alongside inheritance and libraries.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<\/ul>\n<p><strong>Watch This Video To Know About Fundamentals of Solidity Right Now!<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"The Fundamentals of Solidity - 101 Blockchains\" width=\"702\" height=\"395\" src=\"https:\/\/www.youtube.com\/embed\/chQh8GIjTPA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h3 id=\"2\">Concepts You Should Know to Understand Solidity<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">The most important detail that you would uncover in a solidity tutorial refers to the fact that it is the primary language tailored for platforms running blockchains.<span class=\"Apple-converted-space\"> First, you need to get yourself familiar with the important aspects that are essential for understanding solidity.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial.png\"><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial.png.webp 3500w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-276x300.png.webp 276w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-943x1024.png.webp 943w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-1415x1536.png 1415w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-1886x2048.png 1886w,https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-600x651.png.webp 600w\" sizes=\"auto, (max-width: 3500px) 100vw, 3500px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial.png\" height=\"3800\" width=\"3500\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial.png 3500w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-276x300.png 276w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-943x1024.png 943w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-1415x1536.png 1415w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-1886x2048.png 1886w, https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial-600x651.png 600w\" sizes=\"auto, (max-width: 3500px) 100vw, 3500px\" class=\"aligncenter wp-image-23399 size-full sp-no-webp\" alt=\"solidity tutorial\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/a><\/p>\n<pre>Please include attribution to 101blockchains.com with this graphic. &lt;a href='https:\/\/101blockchains.com\/blockchain-infographics\/'&gt; &lt;img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/solidity-tutorial.png\" alt=\"solidity tutorial\" border='0' \/&gt; &lt;\/a&gt;\r\n<\/pre>\n<h4 style=\"text-align: justify;\">Ethereum<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">The importance of <a href=\"https:\/\/101blockchains.com\/ultimate-ethereum-guide\/\" target=\"_blank\" rel=\"noopener\">Ethereum<\/a> in the journey to learn solidity is quite obvious in its definitions. Solidity is targeted at the Ethereum Virtual Machine, thereby calling for the attention of learners towards Ethereum. Basically, Ethereum is an open-source, decentralized platform that is based on the blockchain model and helps in execution of smart contracts. In the simplest terms, it is an open software platform that leverages blockchain for helping developers in building and deploying decentralized applications. The Ethereum blockchain is primarily focused on executing code for decentralized applications.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">One of the most important highlights in a solidity tutorial also refers to the work of miners in earning <a href=\"https:\/\/101blockchains.com\/ether-eth\/\" target=\"_blank\" rel=\"noopener\">Ether<\/a>, <a href=\"https:\/\/101blockchains.com\/crypto-token\/\" target=\"_blank\" rel=\"noopener\">crypto token<\/a> fuelling the Ethereum network. Ether also serves as something more than a tradable <a href=\"https:\/\/101blockchains.com\/what-is-cryptocurrency\/\" target=\"_blank\" rel=\"noopener\">cryptocurrency<\/a>, with application developers relying on ether for making payments for transaction services and fees on the Ethereum network.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The Ethereum blockchain also leverages another token variant for paying fees to miners for inclusion of transactions in specific blocks. The other token on the Ethereum blockchain refers to a gas, which is crucial for all transactions that involve the execution of smart contracts. <a href=\"https:\/\/101blockchains.com\/what-is-ethereum-gas\/\" target=\"_blank\" rel=\"noopener\">Ethereum Gas<\/a> is one of the most important requirements for enticing miners for planting the execution of a smart contract in the blockchain.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p>Curious about the Ethereum Technology ? Enroll now: <a href=\"https:\/\/101blockchains.com\/course\/ethereum-technology-course\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Ethereum Technology Course<\/a><\/p><\/blockquote>\n<h4 style=\"text-align: justify;\">Ethereum Virtual Machine<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">The next important aspect in <a href=\"https:\/\/101blockchains.com\/enterprise-ethereum\/\" target=\"_blank\" rel=\"noopener\">Ethereum blockchain<\/a> that is essential in understanding solidity for beginners is the Ethereum Virtual Machine. Also referred to as EVM, the Ethereum Virtual Machine basically facilitates a runtime environment for the execution of smart contracts in Ethereum. EVM is essential for offering the desired security and facility for executing untrusted code through an international network comprising of public nodes.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The significance of EVM is also evident in the effectiveness of preventing Denial-of-Service or DOS attacks. In addition, EVM is also responsible for ensuring that a specific program does not have access to the states of each other. Furthermore, the functionality of EVM also points out establishing communication without any relevant interference.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4 style=\"text-align: justify;\">Smart Contracts<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">When you start with a solidity tutorial, you are most likely to come across smart contracts at one point. Smart contracts are basically the storehouses of all the business logic that people need in their application lives. <a href=\"https:\/\/101blockchains.com\/ethereum-smart-contracts\/\" target=\"_blank\" rel=\"noopener\">Ethereum Smart contracts<\/a> feature all the functions and variables belonging to the contract alongside serving as the initial point for all projects. So, it is important to start learning about Solidity immediately with a basic example of smart contracts.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p2\" style=\"text-align: justify;\">Even if you might face certain doubts in understanding examples of solisdity smart contracts, there is always an easier way. The following smart contract example written with solidity focuses on setting the value of a variable. In addition, it can also help in exposing the value of a variable for opening up access to other contracts.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">\/\/ SPDX-License-Identifier: GPL-3.0\r\n\r\npragma solidity &gt;=0.4.16 &lt;0.9.0;\r\n\r\ncontract SimpleStorage {\r\n\r\nuintstoredData;\r\n\r\nfunction set(uint x) public {\r\n\r\nstoredData = x;\r\n\r\n}\r\n\r\nfunction get() public view returns (uint) {\r\n\r\nreturn storedData;\r\n\r\n}\r\n\r\n}<\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">The first line in the example smart contract in solidity for beginners shows the licensing of the source code. You can notice that the licensing of the source code follows the GPL version 3.0. It is important to focus on machine-readable license specifiers in an environment that allows the default publication of source code.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The following line in the smart contract shows that the source code is compatible with Solidity version 0.4.16 or newer versions of the language. You can also notice that it clearly mentions that the language supported for the smart contract could not include version 0.9.0. The concerns of the version primarily focus on ensuring that the contract could be compiled with a new or breaking compiler version.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">In comparison to previously estimated deviant behavior, the contract could be easily compiled with a new compiler version. Smart contracts use pragmas as common instructions to help compilers in understanding the ideal approaches for treating the source code.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p>Curious to understand the complete smart contract development lifecycle? Enroll in\u00a0<a href=\"https:\/\/101blockchains.com\/course\/smart-contracts-development\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Smart Contracts Development<\/a>\u00a0Course\u00a0Now!<\/p><\/blockquote>\n<h3 id=\"3\">Decoding the Components of a Smart Contract<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">The importance of a smart contract is one of the formidable aspects of a solidity tutorial. The perception of a contract with respect to Solidity basically points out an assortment of code with its functionality and the data in its relevant state. The contract is located at a specific address on the Ethereum blockchain. A closer look at the smart contract example code written in solidity also showcases other functions in the <a href=\"https:\/\/101blockchains.com\/what-is-a-smart-contract\/\" target=\"_blank\" rel=\"noopener\">smart contract<\/a>.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">uintstoredData helps in declaring a state variable known as storedData, which is of the type uint or unsigned integer measuring 256 bits.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">People can rightly assume that it is a single slot in the database that you can query and modify by calling functions of the code responsible for database management. The example also showcases <a href=\"https:\/\/101blockchains.com\/smart-contract-best-practices\/\" target=\"_blank\" rel=\"noopener\">solidity best practices<\/a> of defining the functions of getting and set. Both the functions could help in the modification or retrieval of the value of the variable. Furthermore, solidity offers the advantage of avoiding the prefix \u2018this\u2019 that is quite common in other languages.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The basic function of the smart contract example could only allow an individual to store a single number, accessible to any individual in the world, without a suitable approach for preventing users from publishing the number. Although any other individual can call a set function and assign a different number, it will always stay in the blockchain history. In addition, you can also impose access restrictions for ensuring that only you have the capabilities for modifying the number.<\/p>\n<blockquote><p>Start your journey to become a smart contract developer or architect with an in-depth overview of smart contract fundamentals, Enroll Now in\u00a0<a href=\"https:\/\/101blockchains.com\/skill\/smart-contracts\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Smart Contracts Skill Path<\/a><\/p><\/blockquote>\n<h3 id=\"4\">Solidity Compiler Installation<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">The importance of solidity for smart contracts might have become clear by now. However, it is important to set up the environment for solidity in any solidity tutorial. The common methods for installation of solidity compiler can provide a detailed impression of its working. Here are the different methods for setting up the Solidity environment with their unique functionalities.<\/p>\n<h4>Versioning<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">One of the first examples of solidity blockchain setup refers to versioning and, most importantly, semantic versioning. The different versions of solidity abide by semantic versioning with the facility of nightly development builds for associated releases. The nightly development builds could not guarantee the functionality and could include undocumented and potentially broken modifications. Furthermore, solidity best practices also imply the use of the latest release versions.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>Remix<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\"><a href=\"https:\/\/remix.ethereum.org\/\" target=\"_blank\" rel=\"noopener\">Remix<\/a> is one of the recommended tools in almost every solidity tutorial for learning quickly about smart contracts and solidity. It offers an online integrated development environment or IDE for writing Solidity smart contracts, followed by deploying and running them.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p4\" style=\"text-align: justify;\">You may access Remix IDE online without the need for any additional installations. Furthermore, it also allows offline usage with the convenience of options for evaluating nightly builds without the installation of various Solidity versions. Interestingly, users can also opt for command line Solidity compiler software when they need additional compilation options or have to work on a larger contract.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>Node.js\/ npm<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">The easiest approach to set up an environment for working with Solidity is \u2018<a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener\">npm<\/a>.\u2019 You can just depend on npm for better convenience and flexibility for installation of a Solidity compiler named solc-js. The solc-js program also presents comparatively limited functionalities in comparison to the ways for accessing the compiler. Users can access the documentation for using <a href=\"https:\/\/www.npmjs.com\/package\/solc-js\" target=\"_blank\" rel=\"noopener\">solc-js<\/a> in its own repository for flexible learning.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p4\" style=\"text-align: justify;\">The important highlight of this method of setting up the compiler in a solidity tutorial is the fact that solc-js compiler is based on C++solc. The solc-js project utilizes Emscripten and ensures that both are utilizing similar compiler source code. It could serve useful for JavaScript projects based on Remix directly. The solc-js repository provides the documentation required for using it.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>Docker Image<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">The next flexible approach for setting up a solidity blockchain environment refers to the use of Docker images. Users could opt for pulling a Docker image followed by starting its use for Solidity programming. The best thing about using Docker image to set up a Solidity environment is the simplicity of steps. The first step involves the application of command for pulling a <a href=\"https:\/\/hub.docker.com\/r\/ethereum\/solc\/\" target=\"_blank\" rel=\"noopener\">Docker image of Solidity<\/a>. The command is,<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">$docker pull ethereum\/solc:stable<\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">The second step in the solidity examples with Docker refers to verification of the Docker image after it is downloaded. The following command could help you install a Solidity compiler and environment with Docker images.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">$docker run ethereum\/solc:stable-version\r\n\r\nBy completing these two steps, you can find the following output as the printout,\r\n\r\n$ docker run ethereum\/solc:stable -version\r\n\r\nsolc, the solidity compiler commandlineinterfaceVersion: 0.5.2+commit.1df8f40c.Linux.g++<\/pre>\n<h4>Binary Packages<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">Students are also likely to come across <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.4.21\/installing-solidity.html\" target=\"_blank\" rel=\"noopener\">binary packages<\/a> as a preferred method for setting up Solidity. In addition, it is important to note in a solidity tutorial that you can find them easily on the official Solidity website. The official website of Solidity also features PPAs for Ubuntu and helps in obtaining the latest stable version.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p4\" style=\"text-align: justify;\">Solidity also offers a <a href=\"https:\/\/docs.soliditylang.org\/en\/v0.8.0\/installing-solidity.html\" target=\"_blank\" rel=\"noopener\">snap package for Solidity installation<\/a> of all the compatible Linux distributions. The snap packages enable strict restrictions, thereby enabling a highly secure environment for snap packages, albeit with limitations. The limitations are focused only on accessing the files in \/media and \/home directories.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p><span lang=\"EN-US\">Want to learn blockchain technology in detail? Enroll Now in\u00a0<a href=\"https:\/\/101blockchains.com\/certification\/blockchain-expert-certification\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Certified Enterprise Blockchain Professional (CEBP)<\/a>\u00a0Course<\/span><\/p><\/blockquote>\n<h3 id=\"5\">Understanding\u00a0 the Solidity Syntax<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">When you think of \u2018Is solidity easy to learn?\u2019 there are many questions that will pop up subsequently. However, the syntax of solidity for writing a smart contract, as highlighted earlier in the discussion, provides a better understanding. The code for Solidity program that sets up a basic smart contract serves as the soul of any solidity tutorial.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>Pragma<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">The first line in the code for a Solidity smart contract is the pragma directive. Solidity examples like the one highlighted here feature the pragma directive informing the writing of source code for Solidity version 0.4.16. In addition, it also specifies the support of the smart contract for Solidity versions above the specified version. The pragma directive in the smart contract also restricts the use of Solidity to version 0.9.0.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p4\" style=\"text-align: justify;\">In most cases, the pragma directive is always local in nature to a source file. Therefore, importing another file does not suggest that the pragma of the file will apply automatically to the importing file. So, users can write a pragma for a file that will not work on versions earlier than 0.4.0 and also on compiler version starting from 0.5.0 by using the following command,<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">pragma solidity ^0.4.0;<\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">The ^, in this case, is useful for adding the second condition.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>Contract<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">You might have found already about the uintstoredData component in the example outlined in this Solidity tutorial. It is nothing but the Solidity contract and is basically the collection of code and data located on a particular address on the Ethereum blockchain. The different components of the contract help in declaring a state variable alongside configuring functions for modification or retrieval of variable values.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4>File Importing<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">Beginners would also likely come across the need for importing files when they learn solidity syntax. Now, you might be searching for the import statement in the example considered for this discussion. However, Solidity provides support for import statements that present favorable similarities with the import statements evident in JavaScript. You can find the following statement as an example in the solidity tutorial for importing global symbols from xyz.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">import \u201cxyz\u201d;<\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">In addition, the following statement could also serve as a promising example for creating a new global symbol. The new global symbol with the title \u2018symbolName\u2019 has global symbols from \u2018xyz\u2019 as its members.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">import * as symbolName from \u201cxyz\u201d;<span class=\"Apple-converted-space\">\u00a0<\/span><\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">When you want to import a file termed \u2018x\u2019 from the same directory in which the current file is present, you can use,<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">import \u201c.\/x\u201d as x<\/pre>\n<p class=\"p1\" style=\"text-align: justify;\">In addition, using import \u201cx\u201d as x could help in referencing a different file in a global \u201cinclude directory.\u201d<\/p>\n<h4>Reserved Keywords<\/h4>\n<p class=\"p4\" style=\"text-align: justify;\">The most important aspect in understanding syntax in a Solidity tutorial also refers to reserved keywords. The reserved keywords in solidity are important requirements to use the <a href=\"https:\/\/101blockchains.com\/smart-contract-programming-languages\/\" target=\"_blank\" rel=\"noopener\">programming language<\/a>. The knowledge of keywords is essential to help in a better understanding of solidity for beginners as they can identify correctly. Users could depend on their knowledge of reserved keywords for developing the logic for application code easily. Here is an outline of some of the reserved keywords you can find in Solidity,<\/p>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">Abstract<\/li>\n<li class=\"li1\">Auto<\/li>\n<li class=\"li1\">Alias<\/li>\n<li class=\"li1\">Default<\/li>\n<li class=\"li1\">Override<\/li>\n<li class=\"li1\">Sizeof<\/li>\n<li class=\"li1\">Unchecked<\/li>\n<li class=\"li1\">Typedef<\/li>\n<li class=\"li1\">Inline<\/li>\n<li class=\"li1\">Copyof<\/li>\n<li class=\"li1\">Apply<\/li>\n<li class=\"li1\">Reference<\/li>\n<li class=\"li1\">Try<\/li>\n<li class=\"li1\">Static<\/li>\n<li class=\"li1\">Define<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">After<\/li>\n<li class=\"li1\">Switch<\/li>\n<li class=\"li1\">Case<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">Immutable<\/li>\n<li class=\"li1\">Typeof<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">In addition, you can find many other keywords in solidity blockchain examples for improving knowledge of basic solidity syntax.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p>Build your identity as a certified blockchain expert with 101 Blockchains\u2019\u00a0<a href=\"https:\/\/101blockchains.com\/certifications\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Blockchain Certifications<\/a>\u00a0designed to provide enhanced career prospects.<\/p><\/blockquote>\n<h3 id=\"6\">Learn the Working of Solidity<span class=\"Apple-converted-space\">\u00a0<\/span><\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">Now that you have a clear impression of different components in the syntax of solidity alongside how they related to smart contract functionalities, it is important to dive into the working of Solidity. Let us take one of the most common solidity examples to understand the working.<\/p>\n<p class=\"p1\" style=\"text-align: justify;\">In the following example, the chosen compiler for the Solidity environment is &#8211; <a href=\"https:\/\/101blockchains.com\/remix-ide-tutorials\/\" target=\"_blank\" rel=\"noopener\">Remix IDE<\/a>. It also helps in running the Solidity Codebase. Here are some of the important steps that you can follow for getting started with the basic working of solidity. Now, you should take the assumption of the following code in this solidity tutorial for explaining how it works.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">pragma solidity ^0.5.0;\r\n\r\ncontract SolidityTest {\r\n\r\nconstructor() public{\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>}\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>function getResult() public view returns(uint){\r\n\r\nuint a = 1;\r\n\r\nuint b = 2;\r\n\r\nuint result = a + b;\r\n\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>return result;\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>}\r\n\r\n}<\/pre>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">In the first step of the basic example of working blockchain for beginners, you have to copy the specific code in the Remix IDE Code Section.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">Now, you have to select the \u2018Compile\u2019 tab, and then you can click on the \u2018Start to Compile\u2019 button.<\/li>\n<li class=\"li1\">Subsequently, you have to move your attention towards the \u2018Run\u2019 tab, where you have to click on the \u2018Deploy\u2019 button.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">In the next step, users are still on the \u2018Run\u2019 tab, and you have to open the drop-down for selecting \u2018Solidity Test at 0x\u2019 option.<\/li>\n<li class=\"li1\">Finally, users can click on the get Result button to display the output of the code written in Solidity language.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">After completing all the steps of writing a code and compiling it in Solidity, you would find the following output.<\/p>\n<p class=\"p1\" style=\"text-align: justify;\">0: uint256: 3<\/p>\n<h4 class=\"p1\" style=\"text-align: justify;\">Importance of Comments<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">The <a href=\"https:\/\/101blockchains.com\/comments-in-solidity\/\" target=\"_blank\" rel=\"noopener\">importance of comments<\/a> in any solidity tutorial is unquestionable, and Solidity offers profound support for C-type and C++-type comments. Therefore, any type of text between the characters \u2018\/*\u2019 and \u2018*\/\u2019 is referred to as a comment which could span multiple lines. In addition, any type of text found between the \u2018\/\/\u2019 and the end of a line is referred to as a comment, and most importantly, the Solidity compiler ignores the text. Here is an example that can outline the ideal use of comments.<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">function getResult() public view returns(uint){\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>\/\/ This is a comment. It is similar to comments in C++\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>\/*\r\n\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>* This is a multi-line comment in solidity\r\n\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>* It is very similar to comments in C Programming\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>*\/\r\n\r\nuint a = 1;\r\n\r\nuint b = 2;\r\n\r\nuint result = a + b;\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>return result;\r\n\r\n}<\/pre>\n<blockquote><p>Excited to learn about the key elements of Solidity? Check the presentation Now on\u00a0<a href=\"https:\/\/101blockchains.com\/presentations\/introduction-to-solidity\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Introduction To Solidity<\/a><\/p><\/blockquote>\n<h3 id=\"7\">Variable Types in Solidity<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">Undoubtedly, variables are an important requirement for writing programs in any programming language. So, you would also need variables in a Solidity tutorial to understand how they can help in storing different information. It is essential to observe that variables are just reserved memory locations for storing values. Therefore, you could inherently reserve a certain amount of space in memory with the creation of a variable.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The sheer variety of variables required in Solidity might create doubts such as \u2018is solidity easy to learn?\u2019 although without confusion. Users could store information related to different data types such as character, floating-point, double floating-point, wide character, Boolean, integers, and others. The operating system ensures memory allocation and selection of entities to store in reserved memory according to the variable\u2019s data type. <span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<h4 class=\"p1\" style=\"text-align: justify;\">Value Types<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">A detailed overview of any tutorial on solidity blockchain programming language would help you find different data types. Solidity enables a formidable assortment of in-built and user-defined data types. Here are important data types that you could find in solidity,<\/p>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">Boolean<\/li>\n<li class=\"li1\">Signed and unsigned integers<\/li>\n<li class=\"li1\">Signed integer from 8 bits to 256 bits<\/li>\n<li class=\"li1\">Unsigned integer from 8 bits to 256 bits<\/li>\n<li class=\"li1\">Signed and unsigned fixed-point numbers varying in sizes<\/li>\n<li class=\"li1\">Signed fixed-point number, represented by fixedMxN, with M representing number of bits accounted by type with N representing decimal points. M must be divisible by 8 while ranging from 8 to 256. On the other hand, N could vary from 0 to 80. The value of fixed is similar to fixed128x18.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<li class=\"li1\">Unsigned fixed-point number, represented by ufixedMxN with M and N representing the same as above. The value of ufixed also remains similar to ufixed128x18.<\/li>\n<\/ul>\n<h4 class=\"p1\" style=\"text-align: justify;\">Address<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">The \u2018address\u2019 element in the solidity tutorial refers to the 20-byte value, which represents the size of the Ethereum address. An address could basically help in getting the balance by using the method of \u2018.balance.\u2019 The method could help in transferring the balance to other addresses through the \u2018.transfer\u2019 method.<span class=\"Apple-converted-space\">\u00a0 <\/span>Here is an example of the use of the address in Solidity.<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">address x = 0x212;\r\n\r\naddress myAddress = this;\r\n\r\nif (x.balance&lt; 10 &amp;&amp;myAddress.balance&gt;= 10) x.transfer(10);<\/pre>\n<h3 id=\"8\">Understanding Variables in Solidity<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">The perception of variables is also one of the crucial requirements to learn solidity. You can find support for three variable types such as state variables, local variables, and global variables in Solidity. State variables are the ones that have their values stored permanently in contract storage. The local variables are the ones that have their value present for the course of execution of a function.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p class=\"p1\" style=\"text-align: justify;\">On the other hand, global variables are special variables that are present in the global namespace and help in obtaining information regarding blockchain. It is important to verify that as a statically typed language, Solidity requires a specification for state or local variable type at the time of declaration. All the declared variables are associated with a default value according to its type without any concept of \u201cnull\u201d or \u201cundefined.\u201d Let\u2019s reflect a bit more on the types of variables in Solidity.<\/p>\n<h4>State Variable<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">You can find state variables where the values are stored permanently in contract storage. The example of a state variable is clearly evident in the following example,<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">pragma solidity ^0.5.0;\r\n\r\ncontract SolidityTest {\r\n\r\nuintstoredData;<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\/\/ State variable\r\n\r\nconstructor() public {\r\n\r\nstoredData = 10; <span class=\"Apple-converted-space\">\u00a0 <\/span>\/\/ Using State variable\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>}\r\n\r\n}<\/pre>\n<h4>Local Variable<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">The value of local variables is accessible only within the function that has been used for defining it. It is also important to note that function parameters are local in nature to the concerned function as in the following example.<\/p>\n<pre class=\"p1\" style=\"text-align: justify;\">pragma solidity ^0.5.0;\r\n\r\ncontract SolidityTest {\r\n\r\nuintstoredData; \/\/ State variable\r\n\r\nconstructor() public {\r\n\r\nstoredData = 10;<span class=\"Apple-converted-space\">\u00a0 \u00a0<\/span>\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>}\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>function getResult() public view returns(uint){\r\n\r\nuint a = 1; \/\/ local variable\r\n\r\nuint b = 2;\r\n\r\nuint result = a + b;\r\n\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>return result; \/\/access the local variable\r\n\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0 <\/span>}\r\n\r\n}<\/pre>\n<h4>Global Variables<\/h4>\n<p class=\"p1\" style=\"text-align: justify;\">Global variables are quite unique when it comes to a solidity tutorial. They are ideal for obtaining information regarding blockchain and associated transaction properties. Here is an outline of the global variables in Solidity, along with their functions.<\/p>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">blockhash(uintblockNumber) returns (bytes32): Represents hash of the concerned block and works only for the 256 latest blocks while ignoring current blocks.<\/li>\n<li class=\"li1\">block.coinbase (address payable): Shows the address of current block miner.<\/li>\n<li class=\"li1\">block.difficulty (uint): Points out the difficulty of a block.<\/li>\n<li class=\"li1\">block.gaslimit (uint): Shows the gaslimit of current block.<\/li>\n<li class=\"li1\">block.number (uint): Shows the current block number.<\/li>\n<li class=\"li1\">block.timestamp (uint): Displays the timestamp of current block in terms of the seconds passed since the unix epoch.<\/li>\n<li class=\"li1\">msg.sig (bytes4): Can find out the first four bytes of the function identifier or calldata.<\/li>\n<li class=\"li1\">msg.data (bytes calldata): Shows the complete calldata.<\/li>\n<li class=\"li1\">now (uint): You can find the information of the current block timestamp.<\/li>\n<\/ul>\n<h3 id=\"9\">Variable Name Rules<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">You should also search for the ideal practices to name variables in a solidity tutorial. It is important to abide by the following rules thoroughly for naming variables in the <a href=\"https:\/\/101blockchains.com\/solidity-programming-in-ethereum\/\" target=\"_blank\" rel=\"noopener\">Solidity programming language<\/a>.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<ul class=\"ul1\" style=\"text-align: justify;\">\n<li class=\"li1\">The foremost condition for naming variables in Solidity is that you cannot begin the name with numerals. So, you could not use any numeral between 0 and 9 to start the variable name in Solidity. It is mandatory to start the variable name with a letter or an underscore character. Therefore, 023Freedom is not a valid variable name, while Freedom023 or _023Freedom are valid choices.<\/li>\n<li class=\"li1\">The solidity best practices for naming variables also point out towards case-sensitivity of solidity variable names. For example, freedom and Freedom are considered as two different variables.<\/li>\n<li class=\"li1\">The next most important practice in creating the suitable variable name refers to staying away from using reserved keywords. Reserved keywords such as Boolean or break variables names are not eligible for Solidity variable names.<span class=\"Apple-converted-space\">\u00a0<\/span><\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">The final aspect in understanding the use of variables for starting the applications of Solidity is variable scope. The variable scope is important in the solidity tutorial as it differs for local variables and state variables. Local variables are restricted only to the function where they are defined.<\/p>\n<p class=\"p1\" style=\"text-align: justify;\">On the other hand, state variables in a solidity tutorial would refer to public, private, and internal scope. It is possible to access public state variables internally and through messages. Private state variables are open for access internally only from the current contract. Internal state variables allow for internal access only through the current contract.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p><a href=\"https:\/\/101blockchains.com\/advanced-solidity-development-course-launched\/\" target=\"_blank\" rel=\"noopener\">Announcement \u2013 Advanced Solidity Development Course Launched<\/a>, Explore to learn the best practices for Solidity Smart Contract Development.<\/p><\/blockquote>\n<h3 id=\"10\">Understanding Common Solidity Use Cases<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">Solidity is undoubtedly the preferred alternative when it comes to developing smart contracts on the <a href=\"https:\/\/101blockchains.com\/ultimate-ethereum-guide\/\" target=\"_blank\" rel=\"noopener\">Ethereum blockchain<\/a>. The simple programming language can let users create and deploy their smart contracts on the Ethereum blockchain for different use cases. Smart contracts developed with Solidity have the potential for revolutionizing different platforms with faster and transparent transactions, with every party involved in the transactions being held accountable for their actions. Let us take a look at the top use cases of Solidity for developing <a href=\"https:\/\/101blockchains.com\/ethereum-smart-contracts\/\" target=\"_blank\" rel=\"noopener\">smart contracts<\/a> for different sectors.<\/p>\n<ul>\n<li class=\"p1\">\n<h4>Banking and Financial Services<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">Solidity can serve as a helpful instrument for creating smart contracts that could increase the speed of banking transactions. You could easily find the use cases of Solidity for the banking and financial services sector in any solidity tutorial. Users can ensure that solidity smart contracts reduce possibilities of errors in financial transactions while maintaining the transparency of the transaction.<span class=\"Apple-converted-space\">\u00a0 <\/span>Furthermore, smart contracts based on Solidity could serve distinct purposes for mortgages, insurance claims, cross-border payments, national bonds, and other banking services.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<blockquote><p>Learn the basic and advanced concepts of Blockchain in Finance and get expertise in the finance sector. Enroll now in the <a href=\"https:\/\/academy.101blockchains.com\/courses\/blockchain-in-finance\" target=\"_blank\" rel=\"noopener\">Blockchain in Finance masterclass<\/a>.<\/p><\/blockquote>\n<ul>\n<li class=\"p1\">\n<h4>Upgradeable Contracts<\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">One of the most noticeable use cases of Solidity that you would come across when you learn Solidity is the facility for creating upgradeable contracts. Solidity provides many approaches for enabling smart contracts to interact with other contracts. Since blockchain is immutable, it is practically impossible to modify the code of a smart operational contract after it starts. However, the use of a method of assigning calls supported with a proxy designed through pointing to another contract containing the actual business logic can help in improving the functions of a contract. It can help in providing different target addresses to the proxy contract.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<ul>\n<li class=\"p1\">\n<h4>Trade Finance<\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">A solidity is also a vital tool for designing smart contracts to cater to the domain of <a href=\"https:\/\/101blockchains.com\/trade-finance-blockchain\/\" target=\"_blank\" rel=\"noopener\">trade finance<\/a>. Generally, the process of issuing a Letter of Credit in trade finance emphasizes the need for substantial coordination and paperwork. In such cases, the load of physical documentation could cause delays in receipt of shipments. Therefore, Solidity-based smart contracts could help in reducing risks while ensuring faster execution of transactions. At the same time, limited manual intervention could also preset possibilities of better process efficiency.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<ul>\n<li class=\"p1\">\n<h4>Data Storage<\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\">The next important mention among use cases in a Solidity tutorial refers to the creation of smart contracts that can serve as data stores. Solidity can help in separating logic and data in various smart contracts. It is important to note that substitute contracts could help in developing or modifying the logic of a contract. Subsequently, the substitute contracts also maintain all the related conditions for data in the concerned contract. Therefore, Solidity can help users in calling and creating contracts by using a smart base contract.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<ul>\n<li class=\"p1\">\n<h4>Digital Identity<span class=\"Apple-converted-space\">\u00a0<\/span><\/h4>\n<\/li>\n<\/ul>\n<p class=\"p1\" style=\"text-align: justify;\"><a href=\"https:\/\/101blockchains.com\/digital-identity\/\" target=\"_blank\" rel=\"noopener\">Digital identity<\/a> will always remain a top priority for use cases of Solidity. Smart contracts designed with Solidity can resolve problems of data monopoly and identity theft. The increasing cases of identity theft and related losses call for secure identity management solutions. Solidity-based smart contracts could help in resolving such concerns and also allow for secure storage of credentials. As a result, you can ensure the safety of your personal information while also enjoying seamless access to all services with your digital identity. <span class=\"Apple-converted-space\">\u00a0 <\/span><\/p>\n<blockquote><p>Start learning Blockchain with World\u2019s first\u00a0<a href=\"https:\/\/101blockchains.com\/skill\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Blockchain Skill Paths<\/a> with quality resources tailored by industry experts Now!<span style=\"text-align: justify;\">\u00a0\u00a0<\/span><\/p><\/blockquote>\n<h3 id=\"11\">Solidity Tutorial: Bottom Line<\/h3>\n<p class=\"p1\" style=\"text-align: justify;\">On a final note, it is quite clear that Solidity programming language is a flexible and easy-to-understand language. It can help in developing smart contracts, and the basic Solidity syntax for creating a smart contract proves the same. A detailed reflection on the foundations of Solidity is important to start with a Solidity tutorial.<\/p>\n<p class=\"p1\" style=\"text-align: justify;\">As the preferred programming language for blockchain development, primarily targeted towards Ethereum, Solidity delivers comprehensive simplicity. With inspiration from C, C++, and JavaScript, learners will face limited difficulties in familiarizing themselves with Solidity.<\/p>\n<p class=\"p1\" style=\"text-align: justify;\">The body of literature associated with Solidity and its functionalities is quite extensive. Explore the world of Solidity further in more detail to master it right now. However, we recommend you start with the <a href=\"https:\/\/academy.101blockchains.com\/courses\/ethereum-development-fundamentals\" target=\"_blank\" rel=\"noopener\">Ethereum Development Fundamentals course<\/a> to learn the basics of Solidity and Ethereum!<\/p>\n<p><a href=\"https:\/\/101blockchains.com\/pricing\/\" target=\"_blank\" rel=\"noopener\"><picture><source srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1.webp 1200w,https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-300x25.webp 300w,https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-1024x85.webp 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-768x64.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" type=\"image\/webp\"><img src=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1.png\" height=\"100\" width=\"1200\" srcset=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1.png 1200w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-300x25.png 300w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-1024x85.png 1024w, https:\/\/101blockchains.com\/wp-content\/uploads\/2023\/05\/Unlock-your-career-with-101-Blockchains-Learning-Programs-1-768x64.png 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" class=\"aligncenter wp-image-43612 size-full sp-no-webp\" alt=\"Unlock your career with 101 Blockchains&#039; Learning Programs\" loading=\"lazy\" decoding=\"async\"  > <\/picture><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you heard of smart contracts? There are many potential instances in blockchain technology where you can come across the mention of smart contracts. The arrival of blockchain technology has created substantial popularity for smart contracts. So, the demand for a good solidity tutorial is increasing considerably as it is an important and commonly preferred<\/p>\n<div class=\"read-more\"><a href=\"https:\/\/101blockchains.com\/solidity-tutorial\/\" title=\"Read More\">Read More<\/a><\/div>\n","protected":false},"author":55,"featured_media":23075,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1881],"tags":[],"class_list":{"0":"post-22892","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-solidity-smart-contracts"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Solidity Tutorial - A Detailed Introduction - 101 Blockchains<\/title>\n<meta name=\"description\" content=\"Solidity is the most-used language for Ethereum smart contracts and decentralized applications. Learn more in this Solidity tutorial.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/101blockchains.com\/solidity-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solidity Tutorial - A Detailed Introduction\" \/>\n<meta property=\"og:description\" content=\"Have you heard of smart contracts? There are many potential instances in blockchain technology where you can come across the mention of smart contracts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/101blockchains.com\/solidity-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"101 Blockchains\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/101Blockchains\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-22T20:02:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-17T05:10:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"580\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Diego Geroni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@101Blockchains\" \/>\n<meta name=\"twitter:site\" content=\"@101Blockchains\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diego Geroni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/\"},\"author\":{\"name\":\"Diego Geroni\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/person\\\/eba08e00b52a04882593969990baf66b\"},\"headline\":\"Solidity Tutorial &#8211; A Detailed Introduction\",\"datePublished\":\"2021-05-22T20:02:29+00:00\",\"dateModified\":\"2025-03-17T05:10:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/\"},\"wordCount\":4684,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/introduction-to-solidity-e1622439170137.png\",\"articleSection\":[\"Solidity &amp; Smart Contracts\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/\",\"name\":\"Solidity Tutorial - A Detailed Introduction - 101 Blockchains\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/introduction-to-solidity-e1622439170137.png\",\"datePublished\":\"2021-05-22T20:02:29+00:00\",\"dateModified\":\"2025-03-17T05:10:03+00:00\",\"description\":\"Solidity is the most-used language for Ethereum smart contracts and decentralized applications. Learn more in this Solidity tutorial.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#primaryimage\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/introduction-to-solidity-e1622439170137.png\",\"contentUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/introduction-to-solidity-e1622439170137.png\",\"width\":1200,\"height\":580,\"caption\":\"solidity tutorial\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/solidity-tutorial\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/101blockchains.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solidity Tutorial &#8211; A Detailed Introduction\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#website\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/\",\"name\":\"101 Blockchains\",\"description\":\"Your guide to the Blockchain World\",\"publisher\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/101blockchains.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#organization\",\"name\":\"101 Blockchains\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/image_2021_02_25T10_04_45_211Z.png\",\"contentUrl\":\"https:\\\/\\\/101blockchains.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/image_2021_02_25T10_04_45_211Z.png\",\"width\":183,\"height\":175,\"caption\":\"101 Blockchains\"},\"image\":{\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/101Blockchains\",\"https:\\\/\\\/x.com\\\/101Blockchains\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/101blockchains\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/101blockchains.com\\\/#\\\/schema\\\/person\\\/eba08e00b52a04882593969990baf66b\",\"name\":\"Diego Geroni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g\",\"caption\":\"Diego Geroni\"},\"description\":\"Diego, a blockchain enthusiast, who is willing to share all his learning and knowledge about blockchain technology with the public. He is also known as an \\\"Innovation evangelist for blockchain technologies\\\" due to his expertise in the industry.\",\"sameAs\":[\"www.linkedin.com\\\/in\\\/diego-geroni-590b45106\"],\"url\":\"https:\\\/\\\/101blockchains.com\\\/author\\\/diegog\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Solidity Tutorial - A Detailed Introduction - 101 Blockchains","description":"Solidity is the most-used language for Ethereum smart contracts and decentralized applications. Learn more in this Solidity tutorial.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/101blockchains.com\/solidity-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Solidity Tutorial - A Detailed Introduction","og_description":"Have you heard of smart contracts? There are many potential instances in blockchain technology where you can come across the mention of smart contracts.","og_url":"https:\/\/101blockchains.com\/solidity-tutorial\/","og_site_name":"101 Blockchains","article_publisher":"https:\/\/www.facebook.com\/101Blockchains","article_published_time":"2021-05-22T20:02:29+00:00","article_modified_time":"2025-03-17T05:10:03+00:00","og_image":[{"width":1200,"height":580,"url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png","type":"image\/png"}],"author":"Diego Geroni","twitter_card":"summary_large_image","twitter_creator":"@101Blockchains","twitter_site":"@101Blockchains","twitter_misc":{"Written by":"Diego Geroni","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#article","isPartOf":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/"},"author":{"name":"Diego Geroni","@id":"https:\/\/101blockchains.com\/#\/schema\/person\/eba08e00b52a04882593969990baf66b"},"headline":"Solidity Tutorial &#8211; A Detailed Introduction","datePublished":"2021-05-22T20:02:29+00:00","dateModified":"2025-03-17T05:10:03+00:00","mainEntityOfPage":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/"},"wordCount":4684,"commentCount":0,"publisher":{"@id":"https:\/\/101blockchains.com\/#organization"},"image":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png","articleSection":["Solidity &amp; Smart Contracts"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/101blockchains.com\/solidity-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/101blockchains.com\/solidity-tutorial\/","url":"https:\/\/101blockchains.com\/solidity-tutorial\/","name":"Solidity Tutorial - A Detailed Introduction - 101 Blockchains","isPartOf":{"@id":"https:\/\/101blockchains.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png","datePublished":"2021-05-22T20:02:29+00:00","dateModified":"2025-03-17T05:10:03+00:00","description":"Solidity is the most-used language for Ethereum smart contracts and decentralized applications. Learn more in this Solidity tutorial.","breadcrumb":{"@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/101blockchains.com\/solidity-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#primaryimage","url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png","contentUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/05\/introduction-to-solidity-e1622439170137.png","width":1200,"height":580,"caption":"solidity tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/101blockchains.com\/solidity-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/101blockchains.com\/"},{"@type":"ListItem","position":2,"name":"Solidity Tutorial &#8211; A Detailed Introduction"}]},{"@type":"WebSite","@id":"https:\/\/101blockchains.com\/#website","url":"https:\/\/101blockchains.com\/","name":"101 Blockchains","description":"Your guide to the Blockchain World","publisher":{"@id":"https:\/\/101blockchains.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/101blockchains.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/101blockchains.com\/#organization","name":"101 Blockchains","url":"https:\/\/101blockchains.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/101blockchains.com\/#\/schema\/logo\/image\/","url":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/03\/image_2021_02_25T10_04_45_211Z.png","contentUrl":"https:\/\/101blockchains.com\/wp-content\/uploads\/2021\/03\/image_2021_02_25T10_04_45_211Z.png","width":183,"height":175,"caption":"101 Blockchains"},"image":{"@id":"https:\/\/101blockchains.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/101Blockchains","https:\/\/x.com\/101Blockchains","https:\/\/www.linkedin.com\/company\/101blockchains\/"]},{"@type":"Person","@id":"https:\/\/101blockchains.com\/#\/schema\/person\/eba08e00b52a04882593969990baf66b","name":"Diego Geroni","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef4142e23d66092c565ed8a12e63559b568969eb686387954f86d42bd0de5a72?s=96&d=mm&r=g","caption":"Diego Geroni"},"description":"Diego, a blockchain enthusiast, who is willing to share all his learning and knowledge about blockchain technology with the public. He is also known as an \"Innovation evangelist for blockchain technologies\" due to his expertise in the industry.","sameAs":["www.linkedin.com\/in\/diego-geroni-590b45106"],"url":"https:\/\/101blockchains.com\/author\/diegog\/"}]}},"_links":{"self":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/22892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/comments?post=22892"}],"version-history":[{"count":10,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/22892\/revisions"}],"predecessor-version":[{"id":53321,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/posts\/22892\/revisions\/53321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/media\/23075"}],"wp:attachment":[{"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/media?parent=22892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/categories?post=22892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/101blockchains.com\/wp-json\/wp\/v2\/tags?post=22892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}