Liquidator
This BNB Chain Core Pool reference corresponds to the Liquidator source family in venus-protocol v10.3.0. It does not prove which implementation is behind a deployed proxy. Resolve the live implementation, immutable constructor addresses, owner, AccessControlManager, ProtocolShareReserve destination, treasury percentage, force-VAI settings, and per-borrower restrictions before encoding a call.
Access and routing summary
Section titled “Access and routing summary”| Entry points | Source-level access in v10.3.0 |
|---|---|
liquidateBorrow | Public, subject to live force-VAI and borrower-specific restriction/allowlist state |
restrictLiquidation, unrestrictLiquidation, addToAllowlist, removeFromAllowlist | Signature-specific AccessControlManager permission |
setTreasuryPercent, setMinLiquidatableVAI, setPendingRedeemChunkLength, pauseForceVAILiquidate, resumeForceVAILiquidate | Signature-specific AccessControlManager permission |
setProtocolShareReserve | Owner only |
reduceReserves | Public; transfers accrued reserves to the configured ProtocolShareReserve |
Permissions and configured destinations can change. Re-read them at the block where the transaction will execute.
Solidity API
Section titled “Solidity API”Address of vBNB contract.
contract IVBNB vBnbcomptroller
Section titled “comptroller”Address of Venus Unitroller contract.
contract IComptroller comptrollervaiController
Section titled “vaiController”Address of VAIUnitroller contract.
contract IVAIController vaiControllerAddress of wBNB contract
address wBNBconstructor
Section titled “constructor”Constructor for the implementation contract. Sets immutable variables.
constructor(address comptroller_, address payable vBnb_, address wBNB_) publicParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| comptroller_ | address | The address of the Comptroller contract |
| vBnb_ | address payable | The address of the VBNB |
| wBNB_ | address | The address of wBNB |
initialize
Section titled “initialize”Initializer for the implementation contract.
function initialize(uint256 treasuryPercentMantissa_, address accessControlManager_, address protocolShareReserve_) external virtualParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| treasuryPercentMantissa_ | uint256 | Treasury share, scaled by 1e18 (e.g. 0.2 * 1e18 for 20%) |
| accessControlManager_ | address | address of access control manager |
| protocolShareReserve_ | address | The address of the protocol share reserve contract |
restrictLiquidation
Section titled “restrictLiquidation”An admin function to restrict liquidations to allowed addresses only.
function restrictLiquidation(address borrower) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| borrower | address | The address of the borrower |
unrestrictLiquidation
Section titled “unrestrictLiquidation”An admin function to remove restrictions for liquidations.
function unrestrictLiquidation(address borrower) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| borrower | address | The address of the borrower |
addToAllowlist
Section titled “addToAllowlist”An admin function to add the liquidator to the allowedLiquidatorsByAccount mapping for a certain borrower. If the liquidations are restricted, only liquidators from the allowedLiquidatorsByAccount mapping can participate in liquidating the positions of this borrower.
function addToAllowlist(address borrower, address liquidator) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| borrower | address | The address of the borrower |
| liquidator | address |
removeFromAllowlist
Section titled “removeFromAllowlist”An admin function to remove the liquidator from the allowedLiquidatorsByAccount mapping of a certain borrower. If the liquidations are restricted, this liquidator will not be able to liquidate the positions of this borrower.
function removeFromAllowlist(address borrower, address liquidator) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| borrower | address | The address of the borrower |
| liquidator | address |
liquidateBorrow
Section titled “liquidateBorrow”Liquidates a borrow and splits the seized amount between protocol share reserve and liquidator. The liquidators should use this interface instead of calling vToken.liquidateBorrow(…) directly. Checks force VAI liquidation first; vToken should be address of vaiController if vaiDebt is greater than threshold For BNB borrows msg.value should be equal to repayAmount; otherwise msg.value should be zero.
function liquidateBorrow(address vToken, address borrower, uint256 repayAmount, contract IVToken vTokenCollateral) external payableParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| vToken | address | Borrowed vToken |
| borrower | address | The address of the borrower |
| repayAmount | uint256 | The amount to repay on behalf of the borrower |
| vTokenCollateral | contract IVToken | The collateral to seize |
setTreasuryPercent
Section titled “setTreasuryPercent”Sets the new percent of the seized amount that goes to treasury. Should be less than or equal to comptroller.liquidationIncentiveMantissa().sub(1e18).
function setTreasuryPercent(uint256 newTreasuryPercentMantissa) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| newTreasuryPercentMantissa | uint256 | New treasury percent (scaled by 10^18). |
setProtocolShareReserve
Section titled “setProtocolShareReserve”Sets protocol share reserve contract address
function setProtocolShareReserve(address payable protocolShareReserve_) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| protocolShareReserve_ | address payable | The address of the protocol share reserve contract |
reduceReserves
Section titled “reduceReserves”Reduce the reserves of the pending accumulated reserves
function reduceReserves() externalsetMinLiquidatableVAI
Section titled “setMinLiquidatableVAI”Sets the threshold for minimum amount of vaiLiquidate
function setMinLiquidatableVAI(uint256 minLiquidatableVAI_) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| minLiquidatableVAI_ | uint256 | New address for the access control |
setPendingRedeemChunkLength
Section titled “setPendingRedeemChunkLength”Length of the pendingRedeem array to be consider while redeeming in Liquidation transaction
function setPendingRedeemChunkLength(uint256 newLength_) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| newLength_ | uint256 | Length of the chunk |
pauseForceVAILiquidate
Section titled “pauseForceVAILiquidate”Pause Force Liquidation of VAI
function pauseForceVAILiquidate() externalresumeForceVAILiquidate
Section titled “resumeForceVAILiquidate”Resume Force Liquidation of VAI
function resumeForceVAILiquidate() external