Follow me on X.

Bloktzein.

Day #001: Hello World Contract

Cover Image for Day #001: Hello World Contract
Dimitris Kasabalis
Dimitris Kasabalis

Welcome to the #100daysofSolidity challenge! This is the first day, and we're going to start by creating a simple "Hello World" contract. This will be a great introduction to Solidity syntax and how to write smart contracts on the Ethereum blockchain.

What is Solidity?

Solidity is a programming language specifically designed for developing smart contracts on the Ethereum blockchain. Smart contracts are self-executing contracts that can be used to automate a variety of tasks, such as managing money, ownership of digital assets, and voting.

Setting up your development environment

Before you start coding, you'll need to set up your development environment. This includes installing the following tools:

  • Node.js: This is the JavaScript runtime environment that Solidity depends on. You can download it from https://nodejs.org/en/download.
  • Solidity compiler: This is the tool that compiles your Solidity code into bytecode, which can be deployed to the Ethereum blockchain. You can install the Solidity compiler using npm:

npm install -g solc

Creating a new Solidity project

Create a new directory for your project and initialize it as a Git repository:

mkdir my-solidity-project

cd my-solidity-project

git init

Create a new file called contracts/HelloWorld.sol and open it in your text editor. This is where you'll write your Solidity code.

Writing the Hello World contract

Here is the code for our Hello World contract:

pragma solidity ^0.8.0;

contract HelloWorld {
string public greeting;

constructor() {
greeting = "Hello, World!";
}
}

This contract defines a single variable called greeting of type string. The constructor initializes greeting to the value "Hello, World!".

Compiling and deploying the contract

To compile the contract, save the code and run the following command in your terminal:

solc --abi --bin contracts/HelloWorld.sol

This will create two files: contracts/HelloWorld.abi and contracts/HelloWorld.bin. The abi file contains the ABI (Application Binary Interface) of the contract, which is a JSON representation of the contract's functions and events. The bin file contains the bytecode of the contract, which is the machine-readable code that will be executed on the Ethereum blockchain.

To deploy the contract to the Ethereum blockchain, you'll need to create a wallet and connect it to an Ethereum node. You can use a web3 provider such as Infura: https://www.infura.io/ to connect to a public Ethereum node.

Once you have a wallet and a web3 provider, you can deploy the contract using the following command:

const Web3 = require('web3');

const web3 = new Web3('https://rinkeby.infura.io/v3/YOUR_INFURA_PROJECT_ID');

const HelloWorld = new web3.eth.Contract(JSON.parse(fs.readFileSync('contracts/HelloWorld.abi', 'utf8')), 'YOUR_CONTRACT_ADDRESS');

HelloWorld.deploy({ data: HelloWorld.bytecode }).then((contract) => { console.log('Contract deployed to address:', contract.address); });

Replace YOUR_INFURA_PROJECT_ID with your Infura project ID and YOUR_CONTRACT_ADDRESS with the address of your contract.

Congratulations!

You have successfully deployed your first Solidity contract to the Ethereum blockchain. Now you can interact with your contract using the ABI and bytecode.



More Stories

Cover Image for  Day #003 Exploring Data Types in Solidity

Day #003 Exploring Data Types in Solidity

Welcome to Day 003 of the #100DaysOfSolidity challenge! Today, we're delving into the foundational aspect of Solidity programming: data types. Whether you're a beginner or an experienced developer, understanding data types is crucial for writing efficient and secure smart contracts on the Ethereum blockchain.

Dimitris Kasabalis
Dimitris Kasabalis
Cover Image for Day #002 Your First Application with Solidity: A Step-by-Step Guide Using Remix

Day #002 Your First Application with Solidity: A Step-by-Step Guide Using Remix

Welcome back to the #100daysofsolidity challenge! On day 001, we discussed the basics of Solidity and set up our development environment. Today, we're diving deeper into Solidity by creating our first application using Remix - a powerful online IDE for Ethereum smart contract development. So, let's get started with this step-by-step guide!

Dimitris Kasabalis
Dimitris Kasabalis