I want to learn how to write and use Ethereum smart contracts. I have geth installed on my computer. I have experience with SQL and write some JavaScript and HTML. Other than that I know nothing about it. I need book or an organized set of tutorials to lead me through this. Are there any tutorials out there that start from the beginning and move to the advanced?

Thanks, John

closed as off-topic by Waqar Lim Jul 23 '16 at 9:09

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Waqar Lim
If this question can be reworded to fit the rules in the help center, please edit the question.


I would suggest starting with the official tutorials on the Ethereum.org website. Follow the links in order: download the wallet, then click "Issue your token" for the first tutorial, etc.

After that, if you want a more in-depth explanation of Solidity, the official documentation has an "Introduction to Smart Contracts"

If you get through that, you should have a pretty good idea of how writing smart contracts works. At that point there will be two more things to learn. The first is the more practical side of actually doing day-to-day dapp development - using simulated blockchains for automated testing, deploying to the main chain, etc. For that, I recommend using a good framework. My favorite is Truffle, which has excellent documentation, but there are others including Embark and Dapple.

The last thing to learn is how to build a web-based frontend for your contracts. For that, I'm unfortunately not aware of any good tutorials, but the official documentation of web3.js is pretty comprehensive.


The Ethereum version of Hello World! is the greeter smart contract which helps new developers to get introduced to smart contracts and distributed applications. It's hosted at ethereum.org/greeter and basicly creates a contract on the blockchain which greets you back if you did it right:

contract mortal {
    /* Define variable owner of the type address*/
    address owner;

    /* this function is executed at initialization and sets the owner of the contract */
    function mortal() { owner = msg.sender; }

    /* Function to recover the funds on the contract */
    function kill() { if (msg.sender == owner) suicide(owner); }

contract greeter is mortal {
    /* define variable greeting of the type string */
    string greeting;

    /* this runs when the contract is executed */
    function greeter(string _greeting) public {
        greeting = _greeting;

    /* main function */
    function greet() constant returns (string) {
        return greeting;

The fastest way to test and deploy it, is using the online solidity compiler.


Eris Industries has a great multi-part tutorial on writing solidity contracts starting from simple to relatively advanced: https://docs.erisindustries.com/tutorials/solidity/

I wrote up an in-depth guide for a low-level understanding of the EVM: https://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md

Not the answer you're looking for? Browse other questions tagged or ask your own question.