EcosystemNFTsDocs

Footer

Xchange

  • Swap
  • Liquidity
  • Loans
  • Fund
  • Vote

Tokens

  • X7R
  • X7DAO
  • X7D
  • X7101-X7105

Explore

  • Dashboard
  • Guides
  • Integration
  • Whitepaper
  • Breakdowns
  • Onchains
  • FAQs

Community

  • Telegram
  • Twitter
  • Discord
  • Warpcast
  • Blog
  • Links

Permissionless Trustless Decentralized Exchange

Launch your project on Xchange with 10-1000x the initial liquidity across multiple blockchains where anyone can Swap, Borrow and Lend!

X7 Finance·Trust No One. Trust Code. Long Live DeFi.
  • Telegram
  • Twitter
  • Discordś
  • Warpcast
  • YouTube
  • Reddit
  • GitHub
  • Pioneer 1488 avatar
    Guides
    View
  • Pioneer 1488 avatar
    Integration
    View
  • Pioneer 1488 avatar
    Whitepaper
    View
  • Pioneer 1488 avatar
    Breakdowns
    View
  • Pioneer 1488 avatar
    Onchains
    View
  • Pioneer 1488 avatar
    FAQ
    View
    • Intro

Lending Pool

Address

X7LendingPoolV1 is deployed at:

ChainAddress
Ethereum (Mainnet)0x740015c39da5d148fca25a467399d00bce10c001 view
Polygon0x740015c39da5d148fca25a467399d00bce10c001 view
Arbitrum0x740015c39da5d148fca25a467399d00bce10c001 view
Optimism0x740015c39da5d148fca25a467399d00bce10c001 view
Base0x740015c39da5d148fca25a467399d00bce10c001 view
Binance Smart Chain0x740015c39da5d148fca25a467399d00bce10c001 view

Contract Events

EcosystemRecipientSet

event EcosystemRecipientSet(address oldAddress, address newAddress);

Triggered when the ecosystem recipient address is changed.

RouterSet

event RouterSet(address oldAddress, address newAddress);

Fired when the router address is updated.

WETHSet

event WETHSet(address oldAddress, address newAddress);

Announces a change in the WETH address.

X7DSet

event X7DSet(address oldAddress, address newAddress);

Triggered when the X7D token address is updated.

LoanTermActiveStateSet

event LoanTermActiveStateSet(address indexed newAddress, bool isActive);

Reports the change in the active state of a loan term.

LiquidationRewardSet

event LiquidationRewardSet(uint256 oldReward, uint256 newReward);

Denotes a change in the liquidation reward amount.

OriginationSharesSet

event OriginationSharesSet( uint256 oldEcosystemSplitterOriginationShare, uint256 oldX7DAOOriginationShare, uint256 oldX7100OriginationShare, uint256 oldLendingPoolOriginationShare, uint256 newEcosystemSplitterOriginationShare, uint256 newX7DAOOriginationShare, uint256 newX7100OriginationShare, uint256 newLendingPoolOriginationShare );

Marks changes in the origination shares distribution across different entities.

PremiumSharesSet

event PremiumSharesSet( uint256 oldEcosystemSplitterOriginationShare, uint256 oldX7DAOOriginationShare, uint256 oldX7100OriginationShare, uint256 oldLendingPoolOriginationShare, uint256 newEcosystemSplitterOriginationShare, uint256 newX7DAOOriginationShare, uint256 newX7100OriginationShare, uint256 newLendingPoolOriginationShare );

Indicates updates to the premium shares distribution.

EcosystemSplitterSet

event EcosystemSplitterSet(address oldAddress, address newAddress);

Triggered when the ecosystem splitter address is updated.

X7100ReserveRecipientSet

event X7100ReserveRecipientSet(address oldAddress, address newAddress);

Signals a change in the X7100 reserve recipient address.

X7DAORewardRecipientSet

event X7DAORewardRecipientSet(address oldAddress, address newAddress);

Fired when the X7DAO reward recipient address is changed.

DiscountAuthoritySet

event DiscountAuthoritySet(address oldAddress, address newAddress);

Announces a change in the discount authority address.

RetainedFeeNumeratorSet

event RetainedFeeNumeratorSet(uint256 oldValue, uint256 newValue);

Indicates an update in the retained fee numerator value.

LendingPoolReserveSet

event LendingPoolReserveSet(address oldAddress, address newAddress);

Reports changes to the lending pool reserve address.

LendingHalted

event LendingHalted();

Notifies that lending operations have been halted.

LendingCommenced

event LendingCommenced();

Announces the resumption of lending operations.

AuthorizedCapitalManagerSet

event AuthorizedCapitalManagerSet(address managerAddress, bool isTrusted);

Signals the authorization state of a capital manager.

LoanBuyoutAllowed

event LoanBuyoutAllowed(bool isAllowed);

Reports the permission status for loan buyouts.

SyncSafeGasAmountSet

event SyncSafeGasAmountSet(uint256 oldValue, uint256 newValue);

Indicates a change in the sync safe gas amount.

LoanBoughtOut

event LoanBoughtOut(address indexed buyer, uint256 indexed loanID);

Reports a loan buyout by a particular buyer.

Read-Only Functions

getDiscountedQuote

function getDiscountedQuote( address borrower, IX7InitialLiquidityLoanTerm loanTerm, uint256 loanAmount, uint256 loanDurationSeconds ) external view returns (uint256[7] memory)

Used to get a quote for a loan according to a specific borrower, loan term, amount, and duration.

canLiquidate

function canLiquidate(uint256 loanID) external view returns (uint256)

Used to see the amount of the loan that can be liquidated. If the amount is greater than 0 the loan is eligible for a liquidation event. For the initial loan terms, any past due payments make the entire loan eligible for liquidation.

State-Changing Functions

getInitialLiquidityLoan

function getInitialLiquidityLoan( address tokenAddress, uint256 amount, address loanTermContract, uint256 loanAmount, uint256 loanDurationSeconds, address liquidityReceiver, uint256 deadline ) external lock payable returns (uint256 loanID)

Used to originate the actual loan.

payLiability

function payLiability(uint256 loanID) external lock payable

Used to pay against any outstanding loan liability. See the loan term contract to understand how payment is applied.

liquidate

function liquidate(uint256 loanID) external lock

Used to liquidate the loan. If the loan term allows, this will only be a partial liquidation. The initial loan terms all liquidate in full.

buyoutLoanQuote

function buyoutLoanQuote(uint256 loanID) external view returns (uint256)

Used to check the cost to buyout the loan (this is the remaining principal due).

buyoutLoan

function buyoutLoan(uint256 loanID) external payable

Used to buy out the loan. Doing so will cause the loan term NFT to be transferred to the caller.

buyoutLoanTo

function buyoutLoanTo(uint256 loanID, address to) external payable

Used to buy out the loan to a specific address. This will cause the loan term NFT to be transferred to the specified address.

pragma solidity ^0.8.0 interface IX7LendingPoolV1 { // View functions function activeLoansByBorrower(address borrower) external view returns (uint256) function countOfActiveLoanTerms() external view returns (uint256) function availableCapital() external view returns (uint256) function getDiscountedQuote( address borrower, IX7InitialLiquidityLoanTerm loanTerm, uint256 loanAmount, uint256 loanDurationSeconds ) external view returns (uint256[7] memory) function canLiquidate(uint256 loanID) external view returns (uint256) function getPrincipalDue(uint256 loanID, uint256 asOf) external view returns (uint256) function getPremiumsDue(uint256 loanID, uint256 asOf) external view returns (uint256) function getTotalDue(uint256 loanID, uint256 asOf) external view returns (uint256); function getRemainingLiability(uint256 loanID) external view returns (uint256); function getPremiumPaymentSchedule(uint256 loanID) external view returns (uint256[] memory, uint256[] memory); function getPrincipalPaymentSchedule(uint256 loanID) external view returns (uint256[] memory, uint256[] memory); function getQuote( address borrower, IX7InitialLiquidityLoanTerm loanTerm, uint256 loanAmount, uint256 loanDurationSeconds ) external view returns (uint256[5]) function buyoutLoanQuote(uint256 loanID) external view returns (uint256); function getInitialLiquidityLoan( address tokenAddress, uint256 amount, address loanTermContract, uint256 loanAmount, uint256 loanDurationSeconds, address liquidityReceiver, uint256 deadline) external view returns (uint256); // External payable functions function payLiability(uint256 loanID) external payable; function liquidate(uint256 loanID) external; function buyoutLoan(uint256 loanID) external payable; function buyoutLoanTo(uint256 loanID, address to) external payable; function depositETH() external payable; function depositETHForRecipient(address recipient) external payable; function returnETHToLendingPoolReserve(uint256 amount) external; function returnETH() external payable; }
Next
Intro →

-

  • Pioneer 1488 avatar
    Guides
    View
  • Pioneer 1488 avatar
    Integration
    View
  • Pioneer 1488 avatar
    Whitepaper
    View
  • Pioneer 1488 avatar
    Breakdowns
    View
  • Pioneer 1488 avatar
    Onchains
    View
  • Pioneer 1488 avatar
    FAQ
    View

On this page

  1. Address

  2. Contract Events

    1. EcosystemRecipientSet
    2. RouterSet
    3. WETHSet
    4. X7DSet
    5. LoanTermActiveStateSet
    6. LiquidationRewardSet
    7. OriginationSharesSet
    8. PremiumSharesSet
    9. EcosystemSplitterSet
    10. X7100ReserveRecipientSet
    11. X7DAORewardRecipientSet
    12. DiscountAuthoritySet
    13. RetainedFeeNumeratorSet
    14. LendingPoolReserveSet
    15. LendingHalted
    16. LendingCommenced
    17. AuthorizedCapitalManagerSet
    18. LoanBuyoutAllowed
    19. SyncSafeGasAmountSet
    20. LoanBoughtOut
  3. Read-Only Functions

    1. getDiscountedQuote
    2. canLiquidate
  4. State-Changing Functions

    1. getInitialLiquidityLoan
    2. payLiability
    3. liquidate
    4. buyoutLoanQuote
    5. buyoutLoan
    6. buyoutLoanTo