Skip to main content
Lending and borrowing protocol on BNB Chain. Fork of Compound V2 with additional features including VAI stablecoin minting.

Notes

  • Same interface as Compound V2 (forked codebase)
  • Must call enterMarkets on Comptroller before borrowing against any market
  • Also supports VAI stablecoin minting (separate contract)
  • Return values: 0 = success, non-zero = error code
  • BSC-only deployment
  • vBNB (vBNB) takes native BNB, so its mint and repayBorrow take no amount: the BNB sent with the call is the amount.

Its names in a program

On BNB Chain, Venus is a namespace: its contracts need no import.

Deployments

ABI

VBNBABI

import VBNBABI from "./protocols/venus/VBNBABI.json"; Speaks for: vBNB.
  • mint() payable
  • redeem(uint256 redeemTokens) returns (uint256)
  • redeemUnderlying(uint256 redeemAmount) returns (uint256)
  • borrow(uint256 borrowAmount) returns (uint256)
  • repayBorrow() payable
  • balanceOfUnderlying(address owner) returns (uint256)

VTokenABI

import VTokenABI from "./protocols/venus/VTokenABI.json";
  • mint(uint256 mintAmount) returns (uint256)
  • redeem(uint256 redeemTokens) returns (uint256)
  • redeemUnderlying(uint256 redeemAmount) returns (uint256)
  • borrow(uint256 borrowAmount) returns (uint256)
  • repayBorrow(uint256 repayAmount) returns (uint256)
  • balanceOfUnderlying(address owner) returns (uint256)

VenusComptrollerABI

import VenusComptrollerABI from "./protocols/venus/VenusComptrollerABI.json"; Speaks for: comptroller.
  • enterMarkets(address[] vTokens) returns (uint256[])
  • exitMarket(address vToken) returns (uint256)

Next steps