Skip to main content

Testnet Guide

Get started with EdenVest on Asset Chain Testnet to explore the protocol risk-free before mainnet deployment. This guide walks you through setup, getting test tokens, and making your first investment.
This is a testnet environment. Do not send real funds to testnet addresses. All tokens are for testing purposes only and have no real value.

Network Configuration

Asset Chain Testnet Details

ParameterValue
Network NameAsset Chain Testnet
RPC URLhttps://enugu-rpc.assetchain.org/
Chain ID42421
Currency SymbolRWA
Block Explorerhttps://scan-testnet.assetchain.org

Network Configuration for Wallets

https://enugu-rpc.assetchain.org/

Wallet Setup

MetaMask Configuration

1

Open MetaMask

Click the MetaMask extension in your browser
2

Add Network

Click on the network dropdown → “Add Network” → “Add a network manually”
3

Enter Network Details

Fill in the Asset Chain testnet details from the table above
4

Save Network

Click “Save” to add the network to your MetaMask
5

Switch Network

Select “Asset Chain Testnet” from the network dropdown

Manual Network Addition

// Add Asset Chain Testnet programmatically
await window.ethereum.request({
  method: 'wallet_addEthereumChain',
  params: [{
    chainId: '0xa5c5', // 42421 in hex
    chainName: 'Asset Chain Testnet',
    nativeCurrency: {
      name: 'RWA',
      symbol: 'RWA',
      decimals: 18
    },
    rpcUrls: ['https://enugu-rpc.assetchain.org/'],
    blockExplorerUrls: ['https://scan-testnet.assetchain.org/']
  }]
});

Other Wallet Support

WalletConnect

  • Open your WalletConnect-compatible wallet
  • Scan QR code from dApp
  • Ensure Asset Chain Testnet is selected

Coinbase Wallet

  • Install Coinbase Wallet browser extension
  • Add Asset Chain Testnet network manually
  • Connect to EdenVest testnet dApp

Getting Test Tokens

1. RWA Testnet Tokens

You need RWA tokens to pay for gas fees on Asset Chain Testnet.
  • Asset Chain Faucet
URL: https://faucet.assetchain.org/Eden Faucet: https://faucet.edenfinance.org/Steps:
  1. Visit the official Asset Chain faucet
  2. Connect your wallet or enter wallet address
  3. Complete captcha verification (if required)
  4. Click “Request RWA” to receive test tokens
  5. Wait for transaction confirmation
Rate Limit: Once per 24 hours per address Amount: 0.01 RWA per request (estimated)

2. cNGN Test Tokens

cNGN is the primary investment token for EdenVest. Get test cNGN tokens from our custom faucet.
cNGN Test Token Address: 0xA4040DBBa36Afa7CD86B17Df80A81cD02A3483FaUSDT Test Token Address: 0x37607cA3C3B1dE0513AADD51709c3caCcc7f0F77

EdenVest cNGN Faucet

Faucet URL: https://faucet.edenfinance.org Eden Faucet: 0xf9a1c68Cb22BD77adb07185Ff50385F953b5F82eAmount: 10,000 cNGN per request
Rate Limit: Once per 6 hours per address
Requirements: Valid Ethereum wallet

Manual Token Addition to Wallet

// Add cNGN token to MetaMask
await window.ethereum.request({
  method: 'wallet_watchAsset',
  params: {
    type: 'ERC20',
    options: {
      address: '0xA4040DBBa36Afa7CD86B17Df80A81cD02A3483Fa', // cNGN testnet address
      symbol: 'cNGN',
      decimals: 6,
      image: 'https://assets.vest.edenfinance.org/tokens/cngn.png'
    }
  }
});

EdenVest Contract Addresses

Core Protocol Contracts

ContractAddress
EdenCore Proxy0xC2EdCE6C2282B367A1269Ff77FB95855067cdaaf
EdenAdmin0xE15e1aED46cE2D8A319E4885CE52177D0696722D
TaxCollector0x3BAb3110A2C4D986320F83Ac86Bab1229B3e7e4C
SwapRouter0x87A09E8048E06765A21742399018d684f2E690b3
PoolFactory0x4f703B2A060859a38DEFc9c34C8Ab02df160b15E
NFTPositionManager0x1824De8E500F92E5C08de4a152e74224548Daa83
All contracts are verified on Asset Chain Testnet Explorer. Click on any address to view the contract source code and interact with functions.

Making Your First Investment

Step 1: Connect to Testnet dApp

1

Visit Testnet dApp

2

Connect Wallet

Click “Connect Wallet” and select your preferred wallet (MetaMask, WalletConnect, etc.)
3

Verify Network

Ensure you’re connected to Asset Chain Testnet
4

Check Balance

Verify you have RWA for gas and cNGN for investing

Step 2: Browse Available Pools

Demo Pool 1

Lock Period: 7 days
APY: 8%
Min Investment: 100 cNGN
Status: Active

Demo Pool 2

Lock Period: 30 days
APY: 12%
Min Investment: 500 cNGN
Status: Active

Step 3: Make an Investment

  • Direct cNGN Investment
  • Swap + Investment
// Example investment transaction
const investmentAmount = ethers.utils.parseEther("1000"); // 1000 cNGN
const poolAddress = "0x..."; // Selected pool address
const title = "My Test Investment";
const deadline = Math.floor(Date.now() / 1000) + 300; // 5 minutes

  // approve spending cNGN/usdt/usdc tokens
const cNGNContract = new ethers.Contract(
  CNGN_ADDRESS,
  ['function approve(address spender, uint256 amount)'],
  this.contract.provider
);
const tx = await cNGNContract.approve(EDEN_CORE_ADDRESS, investmentAmount);
return await tx.wait(2);


const tx = await edenCore.invest(
  poolAddress,
  investmentAmount, 
  title,
  deadline
);

const receipt = await tx.wait();
console.log("Investment successful!", receipt);

Step 4: Track Your Investment

After successful investment, you’ll receive:
  1. NFT Position: Unique token representing your investment
  2. LP Tokens: Shares in the investment pool
  3. Investment ID: Reference number for tracking
Your investment NFT will display:
  • Investment amount and expected returns
  • Time remaining until maturity
  • Beautiful animated progress bars
  • Pool information and APY rate

Testing Scenarios

1. Investment Flow Testing

Scenario: Test direct cNGN investmentSteps:
  1. Get 1,000 cNGN from faucet
  2. Select 7-day pool
  3. Invest 500 cNGN
  4. Verify NFT minting
  5. Check LP token balance
Scenario: Test token swap + investmentSteps:
  1. Get USDC from Aave faucet
  2. Approve USDC spending
  3. Use investWithSwap function
  4. Verify slippage protection
  5. Confirm final cNGN investment
Scenario: Test multiple positionsSteps:
  1. Make investments in different pools
  2. Verify separate NFTs are minted
  3. Check LP token balances per pool
  4. Test position tracking

2. Withdrawal Testing

Scenario: Test successful withdrawalSteps:
  1. Wait for investment to mature (or use 7-day pool)
  2. Call withdraw function
  3. Verify NFT is burned
  4. Check received amount (principal + returns)
  5. Confirm LP token burn
Scenario: Test validation (should fail)Steps:
  1. Attempt withdrawal before maturity
  2. Verify transaction reverts
  3. Check error message: “Not matured”
  4. Confirm NFT and LP tokens remain

3. Error Handling

Test: Try investing more than wallet balance Expected: Transaction reverts with insufficient balance error
Test: Try investing in non-existent pool address Expected: Transaction reverts with “Invalid pool” error
Test: Try investing below pool minimum Expected: Transaction reverts with “Below minimum” error

Testnet Limitations

Be aware of these testnet limitations:
  • No Real Value: All tokens are worthless test tokens
  • Network Stability: Asset Chain Testnet may experience occasional downtime
  • Reset Possible: Testnet may be reset during development
  • Rate Limits: Faucets have strict rate limiting
  • Gas Variations: Gas prices may differ from mainnet
  • Limited DEX Liquidity: Swap functionality may have limited test token pairs
  • New Network: Being a newer blockchain, some wallet integrations may need manual setup

Troubleshooting

Common Issues

Causes:
  • RPC endpoint is down
  • Network congestion
  • Incorrect network configuration
Solutions:
  • Switch to alternative RPC URL
  • Wait and retry transaction
  • Verify network settings in wallet
Causes:
  • Low RWA balance
  • Gas limit too low
  • Network congestion
Solutions:
  • Get more RWA from faucet
  • Increase gas limit manually
  • Wait for network to clear
Causes:
  • Token not added to wallet
  • Incorrect contract address
  • Network mismatch
Solutions:
  • Manually add token contract address
  • Verify you’re on Asset Chain Testnet
  • Check transaction was successful
Causes:
  • Pool is paused or inactive
  • Wrong pool address
  • Pool reached capacity
Solutions:
  • Check pool status on dashboard
  • Verify pool address is correct
  • Try different pool

Getting Help

Telegram Channel

Join our Telegram for real-time support and community discussionsURL: https://t.me/eden_finance

GitHub Issues

Report bugs and technical issues on our GitHub repositoryRepository: edenfinance/vest
Label: testnet-bug

Advanced Testing

Contract Interaction via Asset Chain Explorer

1

Navigate to Contract

Go to Asset Chain Testnet Explorer and enter contract address
2

Connect Wallet

Click “Connect to Web3” and connect your wallet (ensure Asset Chain Testnet is selected)
3

Read Functions

Use “Read Contract” tab to query pool information and user data
4

Write Functions

Use “Write Contract” tab to execute transactions directly

Useful Read Functions

// Get all active pools
function getActivePools() external view returns (address[] memory)

// Check pool information
function poolInfo(address pool) external view returns (PoolInfo memory)

// Get user investments in a pool
function getUserInvestments(address user) external view returns (uint256[] memory)

// Check if investment is withdrawable
function isWithdrawable(uint256 tokenId) external view returns (bool)

Testing with Scripts

// Test script example for Asset Chain
const { ethers } = require('ethers');

async function testInvestmentFlow() {
  // Setup provider and wallet for Asset Chain
  const provider = new ethers.providers.JsonRpcProvider(
    'https://enugu-rpc.assetchain.org/'
  );
  const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);
  
  // Contract instances
  const edenCore = new ethers.Contract(EDEN_CORE_ADDRESS, ABI, wallet);
  
  // Test investment
  const tx = await edenCore.invest(
    poolAddress,
    ethers.utils.parseEther('100'),
    'Test Investment',
    Math.floor(Date.now() / 1000) + 300
  );
  
  console.log('Transaction hash:', tx.hash);
  console.log('View on explorer:', `https://scan-testnet.assetchain.org/tx/${tx.hash}`);
  
  const receipt = await tx.wait();
  console.log('Investment successful!', receipt);
}

Next Steps

Once you’ve successfully tested on testnet: