Binance Smart Chain Mainnet
xVault (High Yield) xAuto (High Yield) Venus Lending Protocol Fortube DefiDollar
Contract Name
Contract Address V2 (Recommended)
Contract Addresses V1
Some Functions Used
deposit,
withdraw,
totalAssets (TVL)
pricePerShare
deposit,
withdraw,
totalAssets (TVL)
pricePerShare
deposit,
withdraw,
totalAssets (TVL)
pricePerShare
StrategyUgoHawkVenusUSDTFarm
StrategyUgoHawkVenusUSDCFarm
StrategyUgoHawkVenusBUSDFarm
Contract Name
Contract Address V2 (Recommended)
Contract Addresses V1
Some Functions Used
approve, deposit, withdraw, getPricePerFullShare
deposit, withdraw, getPricePerFullShare
approve, deposit, withdraw
0x655ca90baa0936A056eFC5E389Baf97026DfFdA3
0xd99d68d7d01Af99F3089d0EFBB12C1A02658d436
0x41E95e88c0dCEaCe4159f4118217B67038aaE6F0
0x0884d96d51dDF544865af8eE3fF5a354e815CC32
getCycles
getCycleInfoById
0x5a32A13770Db90Da7DEA78005Ce110BBBdA8Aac3
CreateEsusu
JoinEsusu
StartEsusuCycle
WithdrawCapitalFromEsusuCycle
WithdrawROIFromEsusuCycle
0x2603ba3426aA62d708dbEcf138E04B91e1548A74
GetEsusuCycles
GetEsusuCycle
0xC1C39c7086D1FAFA8a2ffd49d0eA5ECBD37Bf3d1
0x715Adf500E2a5d2a823eec12c9e34b6093Ea7272
getClientRecordByAddress
GetRecords
Xend Finance Individual (Personal Savings)
0x1349236eFfA145CbE2Ad80A20fFee192e35131fa
FixedDeposit
deposit
withdraw
WithdrawFromFixedDeposit
Xend Finance Group (Cooperative Savings)
0x52e343f0E797717195df7858CE8A1080504c4B6d
createGroup
createCycle
endCycle
joinCycle
activateCycle
withdrawFromCycle
withdrawFromCycleWhileItIsOngoing
0x4a080377f83D669D7bB83B3184a8A5E61B500608
0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56
Deprecated Contracts
Xend Finance Group (Cooperative Savings)
0x902b9E4eCa35A5f504401f713AE14448C948Ca7c
0xB7c715dca5133e88A29c086bEddb2A6075829BE3
0xe9306300b2a685151c03D5b966F8D5Ca143de7B8
0x82B03319887Cf1Ea980637A36b657Aac21620259 0x497899aBed0F5Bdb8A8Dfa15eCA102aEa1933172
0x03e86B21acF54A3d1abbFE600F78B60384C8211f
0x21d635b36F54E70b578eAd19448BFa2bB73F96E2
Xend Finance Individual (Personal Savings)
0xB44367EABfEf9b1BDbF38a56503E0E5E3105B1A4
0xaE8C4E2B9c4A88DfD2aBFEc55fC938Af1bda96d4
0x8776C093CE3a3E0ee6a7C1FE957F666B8084C448
0xe4AA46a344043bBA9cee7172ecc07f861ebe21B2
0x5F82328648b4c5dd0fe895CaC650e9bfCcC07844
0x84801368510d1cfc2A194E118d1FA74e1B8C1472
0xa6566293CEC8023A5151D785b30695E4Aa58ec41
0x405B46E2E9A339F8BBd4520AcD4254E02713E684
0x181B0A426bf8c71bf0702324d58EB9Ce7314faB6
0xf1BF6F94170EEa855eB273F361D1B7A32C2Ea4f5
0x68C9727d1B6df57a9C59901465f458f162E5C58E
0xCF666D971E080412b1457846066422CB74De8d14
Individual (Personal Savings)
0x1E24e573bce2A6b6d74231327f20dF511225B931
0xe9B087aA3A4AFA1d7f56BC2d6f59D51155479dcd
0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56
Deprecated Contracts
Individual (Personal Savings)
0x21eb8fcfAADDaa2eF664810a63A1720EaF6FD6B8
0xa455edD32a72Ae1A1dc0699C2ED45C25a568d3c0
0x02a08332Efce731590AbF03e0bC93B39f007a043
0x2d2cf772b00EEDF1A59549BF4D3C33B7Cf39866c
0x3C984F5435f4EA69dCBC6D64cefF794E55916b2f
0x48Cc703ce6CE9c061F5dC924fB2106953728006E
0xC732D07eeC622BAE85A4Fbbd2fac2f4375C21cA6
0xF17f4587D414625Fe51e6543b3d103000e0Fff75
0xaa2B817DAb535839AA83991421928599e7df6ffF
Individual (Personal Savings)
0x53bA300b24db88580384aE69C84d0Bf566a894D6
0x538e522ea3d8017a4aBDeC3f3091bD0fB1B3d92c
0xDCC47fE454B17378ff09AA15DA0c6B9D90230fA0
0xeB3177D9b320639D4b09BAd71795103b5ad3D426
0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56
Deprecated Contracts
Individual (Personal Savings)
0xE2130e88487Edf3a0fd1d715090fB8A8cFeD5F6D
Polygon Mainnet
xAuto (High Yield)
Contract Name
Contract Address V2 (Recommended)
Contract Addresses V1
Some Functions Used
deposit
withdraw
balance
getPricePerFullShare
deposit
withdraw
balance
getPricePerFullShare
deposit
withdraw
balance
getPricePerFullShare
deposit
withdraw
balance
getPricePerFullShare
Ethereum Mainnet
Yearn Finance
0x083313c94D2ff5756E7c49E8516d813E19bB04B0
0x90d26bf93607666ff2beb99556dbf6a379ced9bf
0x755322b498d9A007055587760BE2cC8465A3BC2A
0xc0163F657b48Cd5058b256334c002e4D02Fdc3C4
0xD08eA81B20252228329D5EC8Ca1393c86894442c
0x671D3B4cC56C29E3409736a913ba96B4473F15c5
0x1c1f9af4d32562c3666930d3988c75ba6a4f9645
Individual (Personal Savings)
0x552260A8F6686430632a5BA6FeAcd066E34b33A2
0xE519545539E35f2704D571a476464d037Bcd32cc
0x6b175474e89094c44da98b954eedeac495271d0f
Function Description
Deposit in xAuto or xVault
To deposit in the xAuto or xVault Protocol, Call the deposit function from the Xend Finance xAuto or xVault Protocols(Layer 2 Aggregator ) contracts.
Copy const { Personal, xAuto, xVault } = await setupSdk(privateKey, chainId, protocolName);
if (protocolName === 'xAuto') {
const receipt = await xAuto.deposit("BUSD", String(amount))
if (receipt.status) {
return {
block: receipt.blockNumber,
gasUsed: receipt.gasUsed,
tnxHash: receipt.transactionHash
}
}
throw 'failed'
}
else if (protocolName === 'xVault') {
const receipt = await xVault.deposit("BUSD", String(amount))
if (receipt.status) {
return {
block: receipt.blockNumber,
gasUsed: receipt.gasUsed,
tnxHash: receipt.transactionHash
}
}
throw 'failed'
}
Withdraw in xAuto or xVault
To withdraw in the xAuto or xVault Protocol, Call the withdraw function from the Xend Finance xAuto or xVault Protocols(Layer 2 Aggregator ) contracts.
Copy const { Personal, xAuto, xVault } = await setupSdk(privateKey, chainId, protocolName);
if (protocolName === 'xAuto') {
const receipt = await xAuto.withdraw("BUSD", totalBUSDAdmount)
if (receipt.status) {
return {
block: receipt.blockNumber,
gasUsed: receipt.gasUsed,
tnxHash: receipt.transactionHash
}
}
}
if (protocolName === 'xVault') {
const receipt = await xVault.withdraw("BUSD", totalBUSDAdmount)
if (receipt.status) {
return {
block: receipt.blockNumber,
gasUsed: receipt.gasUsed,
tnxHash: receipt.transactionHash
}
}
}
Deposit in Flexible Personal Savings
To deposit in the flexible savings, we'll first call the approve function to allow the Xend Finance contract to take the approved amount. Call the approve function from the BUSD Token contract, and the deposit function from the Xend Finance Individual (Personal Savings) contract.
Copy //1. first approve contract to spend amount
await contract.methods.approve(conractAddress, amount).send({from: clientAddress})
//2. call deposit
await contract.methods.deposit().send({from: clientAddress})
Withdraw from Flexible Personal Savings
Call withdraw function from Xend Finance Individual (Personal Savings) contract
Copy await contract.methods.withdraw(amount).send({from: clientAddress})
Deposit in Fixed Personal Savings
To deposit in the flexible savings, we'll first call the approve function to allow the Xend Finance contract to take the approved amount. Call the approve function from the BUSD Token contract, and the FixedDeposit function from the Xend Finance Individual (Personal Savings) contract.
Copy //1. first approve contract to spend amount
await contract.methods.approve(conractAddress, amount).send({from: clientAddress})
// 2. call FixedDeposit with lock period
await contract.methods.FixedDeposit(lockPeriod).send({from: clientAddress})
Withdraw from Fixed Personal Savings
Call the WithdrawFromFixedDeposit function from Xend Finance Individual (Personal Savings) contract
Copy await contract.methods.WithdrawFromFixedDeposit(recordId).send({from: clientAddress})
Create a Group
A group needs to be created to be able to create an Esusu or Cooperative cycle.
Contract: Group
every group has a unique name
Copy await contract.methods.createGroup(name, symbol).send({from:clientAddress})
Get Group using ID
Retrieves the details of a group using its id.
Contract: Group
Copy await contract.methods.getGroupById(groupId).call()
Create Esusu Cycle
Create an Esusu cycle to enable potential members to join and start saving.
Contract: Esusu Service
the deposit amount should be a big number
maximum number of addresses that would be able to join this cycle
Copy await contract.methods.CreateEsusu(groupId, depositAmount, payoutIntervalInSeconds, startTimeInSeconds, maxMembers).send({from:clientAddress})
Join Esusu Cycle
Adds an address as a member of an Esusu cycle if the address has sufficient balance.
Contract: Esusu Service
Copy await contract.methods.JoinEsusu(cycleId).send({from:clientAddress})
Start Esusu
Contract: Esusu Service
Copy await contract.methods.StartEsusuCycle(cycleId).send({from: clientAddress})
Withdraw Esusu ROI
Call this function to withdraw gained ROI from being part of an Esusu cycle.
Contract: Esusu Service
Copy await contract.methods.WithdrawROIFromEsusuCycle(cycleId).send({from: clientAddress})
Withdraw Esusu Capital
Withdraw the deposit amount used to join the cycle.
Contract: Esusu Service
Copy await contract.methods.WithdrawROIFromEsusuCycle(cycleId).send({from: clientAddress})
Create Cooperative Cycle
Contract: Xend Finance Group (Cooperative Savings)
Copy await contract.methods.createCycle(groupId, startTimeInSeconds, payoutIntervalInSeconds, maxMembers, hasMaximumSlots, stakeAmount).send({from: clientAddress})
Join Cooperative Cycle
Contract: Xend Finance Group (Cooperative Savings)
members can have one or more stakes in a cooperative cycle
Copy await contract.methods.joinCycle(cycleId, numberOfStake).send({from: clientAddress})
Start Cycles
Contract: Xend Finance Group (Cooperative Savings)
Copy await contract.methods.activateCycle(cycleId).send({from: clientAddress})
Withdraw From Cooperative Cycle
In the cooperative cycles, there's a provision to withdraw from the cycle before the end date and time and also to withdraw when the cycle duration ends. Withdrawing while the cycle is ongoing incurs a severance fee on the member that withdraws.
Contract: Xend Finance Group (Cooperative Savings)
Copy // withdrawing while cycle is ongoing
await contracts.methods.withdrawFromCycleWhileItIsOngoing(cycleId).send({from: clientAddress})
// withdrawing after cycle is completed
await contracts.methods.withdrawFromCycle(cycleId).send({from: clientAddress})