Your guide to developing on the blockchain
Blockchain might be the next big thing - but how does it really work? What does it take to make a blockchain app and what tools will supercharge your development process?

We're bringing together all the most useful information about building on the blockchain into a single hub. You'll find tutorials to guide you through every step of the development process - deploying smart contracts, minting NFTs, and much more.

Our mission - to make it as simple and fast as possible to learn how to help build Web3 from the ground up, one brick at a time.

Let's get started.

What is Blockchain?

Even though the concepts around blockchain technology can be wildly complex, blockchains themselves are quite straightforward. In regular human-speak, a blockchain is just a public database. Blockchains store a history of transactions between parties on a forum that can be accessible by anybody.

Let's discuss the main differences between a regular database and the blockchain!

First, a blockchain is append-only. Once data has been written, it can't be changed (known as immutability). That information is locked on the blockchain forever.

Second, a blockchain takes the form of a linked-list instead of a table. That is, every set of transactions (known as a block) that is added to the blockchain must point to the previous block. That way, there's a linear history of every transaction that has ever occurred the blockchain.

Finally, blockchains are decentralized - they're not owned by any particular organization, and can't be taken down in the same way as a regular database. That's because a single blockchain is copied among over hundreds of different users who each run nodes, each containing an identical copy of the entire history of the blockchain. Since all of these nodes are communicating and agreeing on the state of the blockchain constantly, the only way to "hack" a blockchain is to perform a 51% attack: convincing the majority of nodes to agree on a new, different blockchain state.

What are cryptocurrencies?

There are two primary forms of data that are stored on the blockchain: cryptocurrencies and smart contracts.

Cryptocurrencies are basically digital currencies that can be exchanged online as a form of payment for goods and services. Typically, they're released as part of a new blockchain project and supported by a foundation that may have a role in governing the token direction.

Cryptocurrencies are oftentimes managed through governance protocols, where stakeholders vote on proposals for future decisions related to the token. Because tokens and the nodes that manage them are distributed among many parties, a cryptocurrency typically needs buy-in from a majority of token holders to make significant changes.

They differ from traditional digital payment methods in a variety of ways:

  • Permissionless: Instead of having to register on a financial platform, anyone in the world can access and transfer cryptocurrency directly. Users don't need to worry about their assets being frozen or controlled by a third party.
  • Anonymity: Financial platforms are regulated by governments, and require personal data to use their services as a result. Cryptocurrencies allow transferring ownership without necessitating proof of identity.
  • Volatility:  As a result, market value can vary wildly (with the exception of stablecoins) based on expectations for the project or blockchain tech as a whole.

Does this all sound familiar? We won't dive into the details of blockchain tech, but here's some resources to help you learn more about them:

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.

What are NFTs?

NFTs, otherwise known as non-fungible tokens, are an extension of blockchain technology enabling one-of-a-kind digital collectibles to be generated, traded, and sold on the blockchain. For instance, an NFT can represent a unique kitten avatar, a "digitally signed" original copy of an album, a physical piece of art, or membership in an exclusive community.

What does fungible mean?

A token or asset is fungible when its units can be interchangeably replaced with each other, such that they are essentially identical in functionality. For instance, any particular U.S. dollar, barrel of refined petroleum, or GA ticket to Burning Man can be exchanged for another with practically no impact on its utility. Bitcoin, Ethereum, and all "traditional" cryptocurrencies are fungible tokens.

Non-fungible assets, on the other hand, have intrinsic value based on the unique status of that asset. For instance, two Pokemon trading cards may have wildly different values, because one is a holographic first-edition Charizard worth $1 million and the other is your regular run-of-the-mill Pikachu.

From a technological perspective, NFTs are cryptographic tokens created via smart contracts by adhering to a specific set of standards governing the issuance of the tokens and enabling metadata. This metadata connects the NFT token to its associated content (e.g. an image, URL, or animation). In Ethereum, two standards currently exist: ERC-721 and EIP-1155.

NFTs have a number of unique properties that have helped them find a clear market niche and allowed them to mushroom into a multi-billion dollar industry:

  • Scarcity: Since the total quantity of items available in an NFT release can be arbitrarily limited, demand can be driven by availability based on the perceived value. Thanks to this demand, NFT avatar collections such as Cryptopunks have skyrocketed in value.
  • Public history and proof of ownership: Because all sales and ownership of NFTs are tracked on the blockchain, it's possible to see the entire journey of any NFT from conception to the current owner. Furthermore, it's quite easy for someone to prove that they own an NFT publicly - enabling a public ledger of the owners of a particular NFT collection.

Browse some of our articles below to get a better understanding of the novel use cases NFTs are involved in today and how to get started building NFTs and NFT collections from scratch!

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!