Project: Hello World Smart Contract

Incidunt nesciunt ipsum autem minima.

Veniam provident sint exercitationem. Laborum sed labore consequatur sunt est fugit. Dolorem vel est quia qui natus. Qui dolorem ut quia enim et non. Voluptatem tenetur rem.

Possimus rerum dolorem.

Et quia aut quos. Non quas laudantium reprehenderit assumenda odit in rem. Alias occaecati cum animi tempore molestiae quaerat quo omnis qui. Consequatur enim harum pariatur sit consectetur facere molestiae laboriosam.

Quidem repellat autem vel suscipit quibusdam repellendus voluptatibus ut. A error sint unde earum. Aperiam tempore similique.

Voluptas ut voluptatum voluptas magnam nobis. Ab dolore qui. Qui recusandae nostrum voluptatem recusandae facilis eos cumque doloremque esse. Eos facere rerum. Ipsum delectus corrupti esse.

Quam enim illo repudiandae eos molestias architecto esse.

Nobis molestias aspernatur dolorum aut ab magnam. Maxime molestiae quis dolore assumenda vel. Voluptatum aut aut nisi autem quod sit qui assumenda.

Voluptatem et architecto.

Beatae eaque quaerat voluptas. Eligendi similique at quia quidem voluptatem iure vitae aspernatur. Molestias enim illo et facilis. Quae ut debitis ipsum vel voluptas quos qui.

Nemo rerum dolore dolorem ea laudantium provident. Asperiores asperiores officiis ullam tenetur voluptatem mollitia fugiat quisquam. Omnis et et laborum ut et. Doloribus odio aspernatur iusto nihil. Optio quasi ea velit recusandae sapiente aut sit culpa.

Tempore exercitationem suscipit similique. Quam vel provident veniam. Placeat voluptatem maxime. Ut est sequi dolores qui reprehenderit inventore quis. Incidunt eos velit exercitationem. Quo natus veritatis consequuntur perferendis culpa expedita culpa voluptas.

What are Smart Contracts?

Though this overview is largely about Ethereum, practically all the concepts apply to smart-contract enabled blockchains!

Smart contracts are the primary reason that the field of blockchain development exists.

Ethereum's core innovation in 2013 was to allow developers to write small chunks of code, known as smart contracts, that could be deployed to the Ethereum network to run independently of their creators. In Ethereum, smart contracts are written in Solidity, a high-level programming language designed to run on the Ethereum Virtual Machine.

A smart contract is a self-contained program that defines a public agreement, or "contract" that automatically executes the terms of the agreement when called by a user on the blockchain.

Unlike traditional programming languages, smart contracts have the following properties:

  • Transparency: Smart contracts are published to the blockchain, and can be read and written by anyone who has access to the blockchain.
  • Simplicity: Because smart contracts are expensive to deploy onto the blockchain and contain sensitive logic dictating the flow of financial transactions, they tend to be much smaller and simpler than most codebases.
  • Immutability: Once a smart contract has been deployed, it (typically) can't be modified and is guaranteed to function identically no matter when its called! This allows smart contracts to operate as reliable, trusted third parties - because no individual controls the smart contract, it can act as a financial intermediary, a trustworthy automated market maker, or much more by guaranteeing impartiality.

Once deployed, these smart contracts behave as independent actors that are fully transparent but can contain complex logic. Therefore, instead of only human users owning accounts on Ethereum, there are two types of accounts:

  • Externally Owned Accounts (EOAs) managed by a human user.
  • Contract Accounts which are managed by their underlying smart contract code.

What's the difference between EOAs and Contract Accounts?

Impressively enough, these two types of accounts can do basically the same things! Both of these account types can:

  • Receive or send fungible tokens (Ether) to any account
  • Receive or send non-fungible tokens (a CryptoKitty) to any account
  • Trigger another contract account - allowing a smart contract to run other smart contracts.
  • Generate new smart contracts - allowing a smart contract to act as a contract factory!

However, there are a few limitations of contract accounts:

  • Contract accounts can't instantiate actions on their own - they can only respond to transactions they receive (typically from EOAs).
  • Contract accounts are controlled entirely by their code, whereas EOAs are controlled by their associated private keys.

Where To Next?

If you've made it to this point, it's time for a self-congratulatory pat on the back! This might be the end of our introductory web3 course, but it's just the beginning of your blockchain development journey. From DeFi to DAOs to novel blockchains with new technologies, there's so much still to build it's staggering.

There's plenty more useful content out there, both on this website and across the entire internet, and we're here to guide you towards the highest-quality, best-curated tools in the entire ecosystem! We've left a few links below with resources that might pique your interest.

And if you want to get in touch, feel free to join the Discord and give us feedback on anything about Web3 University! Happy BUIDLing!