Skip to main content

Quick Start Guide

Get up and running with KagePool in minutes. This guide will walk you through the basic setup and first interactions with the contract system.

TLDR​

# Clone and install
git clone https://github.com/your-org/kage-stake-cs.git
cd kage-stake-cs
yarn install

# Configure
cp .env.example .env
# Edit .env with your settings

# Deploy
yarn hardhat deploy --network <your-network>

Step-by-Step Guide​

1. Installation​

First, ensure you have the prerequisites installed:

  • Node.js ≥ 20.0.0
  • Yarn ≥ 1.22.15

Then clone and set up the project:

git clone https://github.com/your-org/kage-stake-cs.git
cd kage-stake-cs
yarn install

2. Configuration​

Copy the example environment file:

cp .env.example .env

Edit .env with your settings:

# Required: Network Configuration
INFURA_API_KEY=your_infura_key
ETHERSCAN_API_KEY=your_etherscan_key

# Required: Deployment Account
PRIVATE_KEY=your_private_key

# Optional: Contract Configuration
TREASURY_ADDRESS=0x...
REWARD_DISTRIBUTOR_ADDRESS=0x...

3. Compile Contracts​

yarn compile

4. Run Tests​

yarn test

5. Deploy​

Deploy to your chosen network:

yarn hardhat deploy --network <network-name>

First Steps with KagePool​

Create a Staking Pool​

const kagePool = await ethers.getContract("KagePool");

// Create a 30-day staking pool with 10% APY
await kagePool.kageAddPool(
ethers.utils.parseEther("1000000"), // 1M tokens cap
ethers.utils.parseEther("100"), // 100 tokens minimum
30 days, // 30 day lock
Math.floor(Date.now() / 1000), // Start now
Math.floor(Date.now() / 1000) + 90 days, // End in 90 days
1000 // 10% APY (basis points)
);

Stake Tokens​

// First approve tokens
const token = await ethers.getContract("YourToken");
await token.approve(kagePool.address, amount);

// Then stake
await kagePool.kageDeposit(0, amount);

Check Rewards​

const rewards = await kagePool.kageCalculateCurrentRewards(0, userAddress);
console.log(`Current rewards: ${ethers.utils.formatEther(rewards)}`);

Common Operations​

Early Withdrawal​

await kagePool.kageEarlyWithdrawAll(0);

Regular Withdrawal​

await kagePool.kageWithdraw(0, amount);

Allocate Revenue​

await kagePool.kageAllocateRevenue(
[0, 1], // Pool IDs
[amount1, amount2], // Amounts
true, // Accumulative
);

Next Steps​

Troubleshooting​

Compilation Errors​

If you encounter compilation errors:

  1. Clean the cache: yarn clean
  2. Reinstall dependencies: yarn install
  3. Try compiling again: yarn compile

Deployment Failures​

Common deployment issues:

  1. Insufficient funds
  2. Incorrect network configuration
  3. Invalid private key

Support​

Need help? Check out our: