Welcome! In this guide we will help you navigate NEAR tech stack, so you can build Web3 applications from start to finish in no-time.
We’ll start from a simple auction contract and slowly build on top of it to create a full Web3 application to carry out on-chain auctions.
By the time you finish this tutorial, you will have learned several concepts and how to use many key primitives along the way:
- Creating a simple smart contract
- Writing tests for a contract
- Deploying a contract to testnet
- Locking a contract
- Creating a frontend to interact with the contract
- Using an indexing API to view historical bids
- Making cross-contract calls
- Using Non-Fungible Tokens
- Using Fungible Tokens
- Modifying a factory contract to deploy your own contracts
Prerequisites
Before starting, make sure to set up your development environment!
Working on Windows?
See our blog post [getting started on NEAR using Windows](/blog/getting-started-on-windows) for a step-by-step guide on how to setup WSL and your environment
“`bash
# Install Node.js using nvm (more option in: https://nodejs.org/en/download)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install latest
# Install the NEAR CLI to deploy and interact with the contract
curl –proto ‘=https’ –tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/latest/download/near-cli-rs-installer.sh | sh
“`
“`bash
# Install Rust: https://www.rust-lang.org/tools/install
curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh
# Contracts will be compiled to wasm, so we need to add the wasm target
rustup target add wasm32-unknown-unknown
# Install the NEAR CLI to deploy and interact with the contract
curl –proto ‘=https’ –tlsv1.2 -LsSf https://github.com/near/near-cli-rs/releases/latest/download/near-cli-rs-installer.sh | sh
# Install cargo near to help building the contract
curl –proto ‘=https’ –tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh
“`
We will be using NEAR CLI to interact with the blockchain through the terminal, and you can choose between JavaScript and Rust to write the contract.
Overview
This series will touch on different level of the NEAR tech stack. Each section will be independent of the previous one, so feel free to jump into the section that interests you the most.
1. Smart contracts 101
- The Auction Contract: We cover a simple auction smart contract
- Testing the Contract: Learn how to test your contract in a realistic environment
- Deploying the Contract: Deploy your contract to the NEAR blockchain
2. Frontends 101
- Creating the frontend: Lets learn how to connect a frontend with your smart contract
- indexing historical data: Use APIs to keep track of historical bids
3. Using Primitives
- Giving an NFT to the Winner: Give the highest bidder an NFT to signal their win
- Integrating Fungible Tokens: Allow people to use fungible tokens to bid (e.g. stable coins)
- Updating the frontend: Update the frontend to use the extended functionality of the contract.
3. Auction Factory
- Creating a factory: Allow users to easily deploy and initialize their own auction contracts
Next steps
Ready to start? Let’s jump to the The Auction Contract and begin your learning journey!
Versioning for this article
– near-cli: `0.12.0`
– rustc: `1.78.0`
– cargo: `1.80.1`
– cargo-near: `0.6.2`
– rustc: `1.78.0`
– node: `21.6.1`