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.
-
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.
-
Swap:
- Instant token swaps with minimal fees.
- Powered by internal liquidity pools for efficient trading.
- Support for major token standards like ERC-20.
-
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.
-
Yield Farming:
- Provide liquidity and earn yield farming rewards.
- Liquidity mining program to reward LP token holders.
- Stake LP tokens to boost earnings.
- Installation
- Lending & Borrowing
- Swap
- Staking
- Yield Farming
- Contract Architecture
- How to Contribute
- License
- Node.js >= v16
- Yarn or npm
- Hardhat or Truffle for smart contract development
- Solidity >= 0.8.x
-
Clone the repository:
git clone https://github.com/rajeebkm/EquitoX.git cd EquitoX
-
Install dependencies:
yarn install
-
Compile the smart contracts:
npx hardhat compile
-
Deploy to local or test network:
npx hardhat run deploy/deploy.ts --network <network_name>
-
To Run the client:
cd frontend npm install npm run dev
To lend an asset:
- Deposit tokens into the protocol.
- Receive interest-bearing tokens representing your deposit.
Example:
await equitoXCore.supplyCollateral();
To borrow an asset:
- Provide supported collateral.
- Borrow up to your collateral limit.
Example:
await equitoXCore.borrow(amount, destinationChainSelector, destinationChainToken);
To repay your borrowed assets:
await equitoXCore.repay(sourceChainSelectorOfLoan, token));
Interest rates are dynamic, adjusting based on the utilization of each asset in the lending pool.
EquitoX includes a token swap feature, enabling users to exchange tokens efficiently within the protocol.
- Approve the tokens for swapping.
- Use the
swap
function to exchange tokens.
Example:
await swapContract.swap(inputTokenAddress, outputTokenAddress, amount);
Users can stake tokens in the staking pool to earn rewards.
- Deposit tokens to the staking contract.
- Earn staking rewards over time.
Example:
await stakingContract.stake(stakingTokenAddress, amount);
Rewards can be claimed or left to accumulate.
Yield farming allows users to provide liquidity and earn rewards.
- Add liquidity to the supported pool.
- Stake your LP tokens in the yield farming contract.
- Earn yield farming rewards over time.
Example:
await farmingContract.stakeLP(lpTokenAddress, amount);
- 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.
We welcome community contributions to EquitoX! To get involved:
-
Fork the repository and create a new branch:
git checkout -b feature-branch
-
Make your changes and commit them:
git commit -m "Add new feature"
-
Push to your branch:
git push origin feature-branch
-
Open a pull request on GitHub, and we’ll review your changes!
This project is licensed under the MIT License. See the LICENSE file for more details.