Programming With Ethereum

Stage: Implementing

8 hour workshop


Level III - Implementing Blockchain



Recommended Background

Programming experience required


Capacitate programmers within the organization, with fundamental Ethereum development knowledge which will allow them to build decentralized applications using smart contracts.


Your organization has been through our Blockchain Development Decision workshops and you have understood that a permissionless blockchain is the best solution for your business. You have also decided that the Ethereum protocol is the one that best fits your needs.

It’s now time to get down to business and go through all of the steps required to program smart contracts with Solidity in order to build decentralized applications supported by IPFS for data file storage.



Carlos Faria

blockbird Ventures Co-Founder | Blockchain Development

Since an early age, Carlos has been curious and obsessed with new technologies that empower people. His most recent crush is on distributed ledger technology. Carlos has experience building decentralized applications over Ethereum and Hyperledger Fabric and has previously developed a multi-signature Bitcoin wallet. He also performs academic research on the underlying blockchain protocols at INESC-ID where he is currently building a first-of-its-kind Blockchain Simulator. He founded Bitcoin Portugal in 2010, the first Portuguese website about Bitcoin technology.


Session I: Ethereum Overview

  • History and formation
  • Compared to Bitcoin

Session II: Core components

  • Externally Owned Accounts and Contracts
  • Wallets, keys & addresses
  • Transactions
  • Network

Session III: Ethereum Setup & Experiment

  • Setup a development environment
  • Setup a node
  • Setup a private network

Session IV: Smart Contracts Development

  • What is a Smart contract?
  • Lifecycle of a smart contract
  • Building a smart contract with Solidity
  • Ethereum contract Application Binary Interface (ABI)
  • Ethereum Virtual Machine

Session V: Programming with Solidity

  • Types, variables and mappings
  • Predefined global variables and functions
  • Functions
  • Modifiers, structs and enums
  • Contract definition and constructor
  • Inheritance & Interfaces
  • Events
  • Calling other contract
  • Error handling

Session VI: Deploying Smart Contracts

  • Gas considerations
  • Security considerations and best practices
  • Deploying smart contracts
  • Testing smart contracts

Session VII: Hands-on DApp Development

  • Introduction, considerations and architecture
  • Front-end development
  • Data storage (IPFS and SWARM)
  • Inter-DApp communications protocol (Whisper)
  • DApp frameworks
  • Creating an ERC20 Token
  • Oracles