The borrow function transfers an asset from the protocol to the user, and creates a borrow balance which begins accumulating interest based on the Borrow Rate for the asset. The amount borrowed must be less than the user's Account Liquidity and the market's available liquidity.

To borrow Ether, the borrower must be 'payable' (solidity).

SErc20 / SEther

function borrow(uint borrowAmount) returns (uint)
  • msg.sender: The account to which borrowed funds shall be transferred.

  • borrowAmount : The amount of the underlying asset to be borrowed.

  • RETURN: 0 on success, otherwise an Error code‚Äč


SErc20 sToken = SErc20(0x3FDA...);
require(sToken.borrow(100) == 0, "got collateral?");

Web3 1.0

const sToken =;
await sToken.methods.borrow(50).send({from: 0xMyAccount});