Registry

Binance Smart Chain Mainnet

Venus Lending Protocol
Fortube
DefiDollar
Venus Lending Protocol

https://venus.io

Contract Name

Contract Address

Some Functions Used

Group

0x41E95e88c0dCEaCe4159f4118217B67038aaE6F0

getGroupById

createGroup

Cycles (Cooperatives)

0x0884d96d51dDF544865af8eE3fF5a354e815CC32

getCycles

getCycleInfoById

Esusu Service

0x5a32A13770Db90Da7DEA78005Ce110BBBdA8Aac3

CreateEsusu

JoinEsusu

StartEsusuCycle

WithdrawCapitalFromEsusuCycle

WithdrawROIFromEsusuCycle

Esusu Storage

0x2603ba3426aA62d708dbEcf138E04B91e1548A74

GetEsusuCycles

GetEsusuCycle

Esusu Adapter

0xC1C39c7086D1FAFA8a2ffd49d0eA5ECBD37Bf3d1

GetGroupInformationById

Client Record

0x715Adf500E2a5d2a823eec12c9e34b6093Ea7272

getClientRecordByAddress

GetRecords

Xend Finance Individual (Personal Savings)

0x59C5778bda180A10d32a31f231a610ad679b51a9

FixedDeposit

deposit

withdraw

WithdrawFromFixedDeposit

Xend Finance Group (Cooperative Savings)

0xea1dbf66bac7e28f6238DB4B2DB01f5d1e1355f2

createGroup

createCycle

endCycle

joinCycle

activateCycle

withdrawFromCycle

withdrawFromCycleWhileItIsOngoing

BUSD Token

0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56

approve

Deprecated Contracts

Contract Name

Contract Address

Xend Finance Group (Cooperative Savings)

0x902b9E4eCa35A5f504401f713AE14448C948Ca7c 0xB7c715dca5133e88A29c086bEddb2A6075829BE3 0xe9306300b2a685151c03D5b966F8D5Ca143de7B8 0x82B03319887Cf1Ea980637A36b657Aac21620259 0x497899aBed0F5Bdb8A8Dfa15eCA102aEa1933172 0x03e86B21acF54A3d1abbFE600F78B60384C8211f

0x21d635b36F54E70b578eAd19448BFa2bB73F96E2

Xend Finance Individual (Personal Savings)

0xB44367EABfEf9b1BDbF38a56503E0E5E3105B1A4 0xaE8C4E2B9c4A88DfD2aBFEc55fC938Af1bda96d4

0x8776C093CE3a3E0ee6a7C1FE957F666B8084C448

0xe4AA46a344043bBA9cee7172ecc07f861ebe21B2

Fortube

https://for.tube

Contract Name

Address

Some Functions Used

Groups

0xa6566293CEC8023A5151D785b30695E4Aa58ec41

Cycles

0x405B46E2E9A339F8BBd4520AcD4254E02713E684

Esusu Service

0x181B0A426bf8c71bf0702324d58EB9Ce7314faB6

Esusu Storage

0xf1BF6F94170EEa855eB273F361D1B7A32C2Ea4f5

Esusu Adapter

0x68C9727d1B6df57a9C59901465f458f162E5C58E

Client Record

0xCF666D971E080412b1457846066422CB74De8d14

Individual (Personal Savings)

0xbcd6D856895Ce28E05B98EB496D4FD8e7FEDA1F0

Cooperative Savings

0x4ffe98A09691080A31eb71b8F82cAFBde13441bf

BUSD Token

0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56

Deprecated Contracts

Contract Name

Address

Individual (Personal Savings)

0x21eb8fcfAADDaa2eF664810a63A1720EaF6FD6B8

DefiDollar

https://dusd.finance/

Contract Name

Address

Groups

0x2d2cf772b00EEDF1A59549BF4D3C33B7Cf39866c

Cycles

0x3C984F5435f4EA69dCBC6D64cefF794E55916b2f

Esusu Service

0x48Cc703ce6CE9c061F5dC924fB2106953728006E

Esusu Storage

0xC732D07eeC622BAE85A4Fbbd2fac2f4375C21cA6

Esusu Adapter

0xF17f4587D414625Fe51e6543b3d103000e0Fff75

Client Record

0xaa2B817DAb535839AA83991421928599e7df6ffF

Individual (Personal Savings)

0x53bA300b24db88580384aE69C84d0Bf566a894D6

Cooperative Savings

0xDCC47fE454B17378ff09AA15DA0c6B9D90230fA0

BUSD Token

0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56

Deprecated Contracts

Contract Name

Address

Individual (Personal Savings)

0xE2130e88487Edf3a0fd1d715090fB8A8cFeD5F6D

Ethereum Mainnet

Yearn Finance
Yearn Finance

yearn.finance

Contract Name

Address

Groups

0x90d26bf93607666ff2beb99556dbf6a379ced9bf

Cycles

0x755322b498d9A007055587760BE2cC8465A3BC2A

Esusu Service

0xc0163F657b48Cd5058b256334c002e4D02Fdc3C4

Esusu Storage

0xD08eA81B20252228329D5EC8Ca1393c86894442c

Esusu Adapter

0x671D3B4cC56C29E3409736a913ba96B4473F15c5

Client Record

0x1c1f9af4d32562c3666930d3988c75ba6a4f9645

Individual (Personal Savings)

0x552260A8F6686430632a5BA6FeAcd066E34b33A2

Cooperative Savings

0xE519545539E35f2704D571a476464d037Bcd32cc

DAI Token

0x6b175474e89094c44da98b954eedeac495271d0f

Function Description

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.

Parameters

Description

amount

//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

Parameters

Description

amount

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.

Parameters

Description

amount

lockPeriod

//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

Parameters

Description

recordId

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

Parameters

Type

Description

name

string

every group has a unique name

symbol

string

await contract.methods.createGroup(name, symbol).send({from:clientAddress})

Get Group using ID

Retrieves the details of a group using its id.

Contract: Group

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

Parameters

Type

Description

groupId

depositAmount

the deposit amount should be a big number

payoutIntervalInSeconds

startTimeInSeconds

maxMembers

maximum number of addresses that would be able to join this cycle

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

Parameter

Type

Description

cycleId

await contract.methods.JoinEsusu(cycleId).send({from:clientAddress})

Start Esusu

Contract: Esusu Service

Parameters

Description

cycleId

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

Parameters

Description

cycleId

await contract.methods.WithdrawROIFromEsusuCycle(cycleId).send({from: clientAddress})

Withdraw Esusu Capital

Withdraw the deposit amount used to join the cycle.

Contract: Esusu Service

Parameters

Description

cycleId

await contract.methods.WithdrawROIFromEsusuCycle(cycleId).send({from: clientAddress})

Create Cooperative Cycle

Contract: Xend Finance Group (Cooperative Savings)

Parameters

Description

groupId

startTimeInSeconds

payoutIntervalInSeconds

maxMembers

hasMaximumSlots

boolean

stakeAmount

await contract.methods.createCycle(groupId, startTimeInSeconds, payoutIntervalInSeconds, maxMembers, hasMaximumSlots, stakeAmount).send({from: clientAddress})

Join Cooperative Cycle

Contract: Xend Finance Group (Cooperative Savings)

Parameters

Description

cycleId

numberOfStake

members can have one or more stakes in a cooperative cycle

await contract.methods.joinCycle(cycleId, numberOfStake).send({from: clientAddress})

Start Cycles

Contract: Xend Finance Group (Cooperative Savings)

Parameters

Description

cycleId

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)

Parameters

Description

cycleId

// 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})