Loading...

Getting Started with DeFi – A Step-by-Step Guide to Building a Simple Staking DApp

Afzal Khan

19 August, 2025

DeFi Logo


Decentralized Finance (DeFi) has revolutionized how people interact with money by removing intermediaries like banks. In this guide, we’ll build a simple staking DApp where users can stake tokens and earn rewards—one of the core mechanisms of DeFi.

Why Learn DeFi?

DeFi allows developers to create open financial systems where users have full control over their assets. By learning how to build a staking smart contract, you’ll understand a core concept used in yield farming, liquidity mining, and decentralized savings applications.

Step-by-Step Guide to Building a Simple Staking DApp

1. Set Up the Project

Start by creating a project and installing the required dependencies:

mkdir my-staking-dapp
cd my-staking-dapp
npm init -y
npm install --save-dev hardhat @openzeppelin/contracts

Initialize Hardhat:

npx hardhat

and select “Create a basic sample project”.

2. Write the Staking Smart Contract

Inside the contracts folder, create Staking.sol:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract Staking {
    IERC20 public token;
    mapping(address => uint256) public balances;
    mapping(address => uint256) public reward;

    uint256 public rewardRate = 10; // 10% reward

    constructor(address _token) {
        token = IERC20(_token);
    }

    function stake(uint256 amount) public {
        require(amount > 0, "Cannot stake 0");
        token.transferFrom(msg.sender, address(this), amount);
        balances[msg.sender] += amount;
        reward[msg.sender] += (amount * rewardRate) / 100;
    }

    function withdraw() public {
        uint256 amount = balances[msg.sender];
        uint256 rewards = reward[msg.sender];
        require(amount > 0, "Nothing to withdraw");
        
        balances[msg.sender] = 0;
        reward[msg.sender] = 0;
        
        token.transfer(msg.sender, amount + rewards);
    }
}

This smart contract lets users stake ERC-20 tokens and earn simple rewards.

3. Compile and Deploy

Compile the contract:

npx hardhat compile

Deploy it by updating scripts/deploy.js:

async function main() {
  const [deployer] = await ethers.getSigners();

  const Token = await ethers.getContractFactory("Token"); // Your ERC20 token
  const token = await Token.deploy();
  await token.deployed();

  const Staking = await ethers.getContractFactory("Staking");
  const staking = await Staking.deploy(token.address);
  await staking.deployed();

  console.log("Token deployed at:", token.address);
  console.log("Staking contract deployed at:", staking.address);
}
 
main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

4. Stake and Earn Rewards

Once deployed, you can interact with the contract in the Hardhat console:

npx hardhat console --network localhost

Inside the console:

const staking = await ethers.getContractAt("Staking", "STAKING_CONTRACT_ADDRESS");
await token.approve(staking.address, 1000);
await staking.stake(1000);
await staking.withdraw();

You’ll see rewards credited when withdrawing your tokens.

How This Helps You

By building this simple staking contract, you’ve learned how token staking and rewards work—a key component of DeFi. With these basics, you can extend your DApp to support liquidity pools, governance tokens, and complex reward mechanisms like those used in popular protocols.

Conclusion

DeFi is reshaping finance, and staking is one of its most fundamental building blocks. In just a few steps, you created a staking contract where users can lock tokens and earn rewards. This foundation prepares you to build advanced DeFi protocols like yield farming, lending platforms, and decentralized exchanges. The future of finance is decentralized—your journey starts here.

RECENT POSTS

How AI is Revolutionizing Mobile App Development

How AI is Revolutionizing Mobile App Development By BD Team August, 2025 At Speqto, I, Chirag Verma, have seen firsthand how Artificial Intelligence (AI) is transforming the way mobile apps are designed, developed, and experienced. What was once limited to simple, static features has now evolved into smart, adaptive, and highly personalized applications. In 2025, […]

Web Scraping with Python

Web Scraping with Python By Sumit Pandey 08 August, 2025 Web scraping is the process of extracting data from websites automatically. It is widely used for data mining, competitive analysis, price monitoring, and research. Python is one of the best languages for web scraping due to its simplicity and powerful libraries like BeautifulSoup and Scrapy. […]

API Security Testing: Shoring Up the Digital Perimeter

API Security Testing: Shoring Up the Digital Perimeter Megha Srivastava 19 August, 2025 “APIs have become the backbone of modern applications, handling everything from user authentication to payment processing. Yet these same interfaces represent the largest attack surface for cybercriminals—OWASP data shows API-related breaches jumped 681% in 2024 alone. Unlike traditional web security, API vulnerabilities […]

Low-Code Test Automation: Democratizing QA in 2025

Low-Code Test Automation: Democratizing QA in 2025 Shakir Khan 19 August, 2025 Shipping quality software at startup speed takes more than devoted testers—it needs every stakeholder writing and running checks. Low-code test-automation platforms answer that call, letting product owners, designers, and junior devs create robust suites with drag-and-drop flows and AI-generated steps. In 2025 these […]

AI-Powered Regression Testing: Faster Releases in 2025

AI-Powered Regression Testing: Faster Releases in 2025 Megha Srivastava 19 August, 2025 Release cycles keep shrinking—weekly, daily, even hourly in some teams—yet every new commit risks breaking core flows. Manual regression suites cannot keep up, and traditional scripted tests crumble when UIs shift. Enter AI-powered regression testing: self-healing, intent-based tests that learn your application, spot […]

POPULAR TAG

POPULAR CATEGORIES