Skip to content

EquitoX - Boost your crypto earnings by lending and borrowing against your collateral

Notifications You must be signed in to change notification settings

rajeebkm/EquitoX

Repository files navigation

EquitoX - Boost your crypto earnings by lending and borrowing against your collateral

Overview

EquitoX is a decentralized Web3 protocol for lending, borrowing, token swaps, staking, and yield farming. Built to leverage blockchain technology, EquitoX allows users to earn interest, borrow assets with collateral, swap tokens, and participate in staking and yield farming opportunities, all without intermediaries.

equitoXBackground

Features

  1. Lending & Borrowing:

    • Lend your assets and earn interest.
    • Borrow assets by providing collateral.
    • Algorithmic interest rates based on market supply and demand.
    • Multi-collateralized asset support.
  2. Swap:

    • Instant token swaps with minimal fees.
    • Powered by internal liquidity pools for efficient trading.
    • Support for major token standards like ERC-20.
  3. Staking:

    • Stake supported tokens to earn staking rewards.
    • Lock tokens for specified durations to maximize returns.
    • Multiple staking tiers based on the lock-up period.
  4. Yield Farming:

    • Provide liquidity and earn yield farming rewards.
    • Liquidity mining program to reward LP token holders.
    • Stake LP tokens to boost earnings.

Table of Contents

Installation

Prerequisites

  • Node.js >= v16
  • Yarn or npm
  • Hardhat or Truffle for smart contract development
  • Solidity >= 0.8.x

Setup

  1. Clone the repository:

    git clone https://github.com/rajeebkm/EquitoX.git
    cd EquitoX
  2. Install dependencies:

    yarn install
  3. Compile the smart contracts:

    npx hardhat compile
  4. Deploy to local or test network:

    npx hardhat run deploy/deploy.ts --network <network_name>
  5. To Run the client:

    cd frontend
    npm install
    npm run dev

Lending & Borrowing

Lend Assets

To lend an asset:

  1. Deposit tokens into the protocol.
  2. Receive interest-bearing tokens representing your deposit.

Example:

await equitoXCore.supplyCollateral();

Borrow Assets

To borrow an asset:

  1. Provide supported collateral.
  2. Borrow up to your collateral limit.

Example:

await equitoXCore.borrow(amount, destinationChainSelector, destinationChainToken);

Repay Loans

To repay your borrowed assets:

await equitoXCore.repay(sourceChainSelectorOfLoan, token));

Interest Rates

Interest rates are dynamic, adjusting based on the utilization of each asset in the lending pool.

Swap [Coming Soon]

EquitoX includes a token swap feature, enabling users to exchange tokens efficiently within the protocol.

How to Swap Tokens

  1. Approve the tokens for swapping.
  2. Use the swap function to exchange tokens.

Example:

await swapContract.swap(inputTokenAddress, outputTokenAddress, amount);

Staking [Coming Soon]

Users can stake tokens in the staking pool to earn rewards.

Staking Process

  1. Deposit tokens to the staking contract.
  2. Earn staking rewards over time.

Example:

await stakingContract.stake(stakingTokenAddress, amount);

Rewards can be claimed or left to accumulate.

Yield Farming [Coming Soon]

Yield farming allows users to provide liquidity and earn rewards.

Steps to Participate in Yield Farming

  1. Add liquidity to the supported pool.
  2. Stake your LP tokens in the yield farming contract.
  3. Earn yield farming rewards over time.

Example:

await farmingContract.stakeLP(lpTokenAddress, amount);

Contract Architecture

  • LendingContract: Manages the lending, borrowing, and collateral mechanics.
  • SwapContract: Provides token swapping functionality.
  • StakingContract: Manages staking deposits and reward distribution.
  • FarmingContract: Handles yield farming and liquidity rewards.

How to Contribute

We welcome community contributions to EquitoX! To get involved:

  1. Fork the repository and create a new branch:

    git checkout -b feature-branch
  2. Make your changes and commit them:

    git commit -m "Add new feature"
  3. Push to your branch:

    git push origin feature-branch
  4. Open a pull request on GitHub, and we’ll review your changes!

License

This project is licensed under the MIT License. See the LICENSE file for more details.