DEV Community

Dhruv Patel
Dhruv Patel

Posted on

Getting Started with Aptos: A Workshop Guide for Beginners

Aptos is a Layer 1 blockchain that brings scalability, security, and flexibility to decentralized application development. In this workshop, you'll learn how to set up your Aptos development environment, write and deploy a smart contract using Move, and troubleshoot common errors. Let’s dive in!

  1. Introduction to Aptos

Aptos is built using the Move programming language, originally developed by Facebook for their Diem project. It stands out for its modular architecture, high throughput, and advanced security features.

If you’re new to blockchain development or curious about how Aptos compares to other platforms, you’re in the right place!

  1. Prerequisites

Before we begin, ensure you have the following:

A computer with Windows, macOS, or Linux.

Basic understanding of blockchain and smart contracts.

Installed tools: Python, Git, Cargo (details in the next section).

  1. Installing Required Tools

Step 1: Install Python

Download Python:

Visit the official Python website: https://www.python.org/downloads/.

Download the latest version suitable for your operating system.

Install Python:

Run the installer.

During installation, check the box for "Add Python to PATH."

Proceed with the installation by selecting the default settings.

Verify the Installation:
Open a terminal or command prompt and type:

python --version
Enter fullscreen mode Exit fullscreen mode

You should see the installed Python version.

Manually Add Python to PATH (if needed):

Open Environment Variables in your system settings.

Add the path to Python (e.g., C:\Python39) and the Scripts folder (e.g., C:\Python39\Scripts) to the PATH variable.

Step 2: Install Git

Git is essential for version control and fetching repositories.

Download Git:

Visit https://git-scm.com/ and download the installer for your OS.

Install Git:

Run the installer and choose default options.

During setup, ensure "Git Bash Here" is selected.

Verify the Installation:
Open a terminal or command prompt and type:

git --version
Enter fullscreen mode Exit fullscreen mode

You should see the installed Git version.

Step 3: Install Cargo (Rust Package Manager)

Cargo is required for installing the Aptos CLI.

Install Rust (Cargo comes bundled with Rust):

Open a terminal and run:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Enter fullscreen mode Exit fullscreen mode

Follow the instructions to install Rust.

Configure Cargo in PATH:

If Cargo is not automatically added to your PATH, manually add it:

Open Environment Variables in your system settings.

Add the following to the PATH variable:Windows: C:\Users<YourUsername>.cargo\binLinux/Mac: ~/.cargo/bin

Verify the Installation:
Open a terminal and type:

cargo --version
Enter fullscreen mode Exit fullscreen mode

You should see the installed Cargo version.

  1. Installing the Aptos CLI

The Aptos CLI is a command-line tool that simplifies interacting with the Aptos blockchain.

Steps to Install

Install the Aptos CLI:

cargo install aptos
Enter fullscreen mode Exit fullscreen mode

Verify the Installation:

aptos --version
Enter fullscreen mode Exit fullscreen mode

Configure Aptos CLI:
Initialize the Aptos CLI:

aptos init
Enter fullscreen mode Exit fullscreen mode

Follow the prompts to set up your account.

Generate a New Account:
Use the following command to generate a local Aptos account:

aptos account generate
Enter fullscreen mode Exit fullscreen mode
  1. Writing and Deploying a Smart Contract

Aptos uses the Move language for its smart contracts. Let's write a simple contract to store a number on the blockchain.

Step 1: Create a Move Project

Initialize your project folder:

aptos move init --name my_project
Enter fullscreen mode Exit fullscreen mode

Navigate to the folder:

cd my_project
Enter fullscreen mode Exit fullscreen mode

Open Move.toml and configure the module name. It should match your project’s folder name.

Step 2: Write Your First Contract

Create a file named main.move inside the sources folder. Add the following code:

module my_project::SimpleStore {
    use std::signer;

    resource struct Store {
        value: u64,
    }

    public entry fun initialize(account: &signer) {
        let store = Store { value: 0 };
        move_to(account, store);
    }

    public entry fun update(account: &signer, value: u64) {
        let store = borrow_global_mut<Store>(signer::address_of(account));
        store.value = value;
    }

    public fun get(address: address): u64 {
        let store = borrow_global<Store>(address);
        store.value
    }
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Build and Test Your Contract

Build the Contract:

aptos move compile
Enter fullscreen mode Exit fullscreen mode

Run Tests:

aptos move test
Enter fullscreen mode Exit fullscreen mode

Step 4: Deploy Your Contract

Deploy the smart contract:

aptos move publish --private-key <PRIVATE_KEY> --url <NODE_URL>
Enter fullscreen mode Exit fullscreen mode

Replace with your wallet's private key and with a testnet or local node URL.

Verify the deployment:

aptos account resource --account <ACCOUNT_ADDRESS>
Enter fullscreen mode Exit fullscreen mode
  1. Troubleshooting Errors

Error: Private key mismatchSolution: Ensure you’re using the correct private key that matches your public address.

Error: Insufficient balanceSolution: Fund your test account using the Aptos testnet faucet:

aptos account fund-with-faucet --account <ACCOUNT_ADDRESS>
Enter fullscreen mode Exit fullscreen mode

Error: Invalid Move codeSolution: Ensure you’re using the latest Aptos CLI version:

cargo install --git https://github.com/aptos-labs/aptos-core.git aptos
Enter fullscreen mode Exit fullscreen mode
  1. Resources

Aptos Documentation

Move Programming Language

Aptos GitHub Repository

  1. Conclusion

Congratulations! You've successfully set up your Aptos environment, written a Move smart contract, and deployed it. Aptos is a cutting-edge blockchain platform that makes it easy to build secure and scalable dApps. Keep experimenting, and you’ll be a blockchain pro in no time!

Top comments (0)