Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Siloed Borrowing

This feature allows assets with potentially manipulatable oracles (for example illiquid Uni V3 pairs) to be listed on SparkLend as single borrow asset i.e. if user borrows siloed asset, they cannot borrow any other asset. This helps mitigating the risk associated with such assets from impacting the overall solvency of the protocol.

Supply Siloed Assets

A user can supply a Siloed Asset just like any other asset using supply() method in pool.sol. Note that siloed assets are typically listed without collateral usage (LTV 0) — this is configured separately from the siloed borrowing flag — in which case the supplied amount will not add to the total collateral balance of the user.

Borrow Siloed Assets

User can borrow Siloed Assets using borrow() method in pool.sol , only if:

  • It is the first borrow for the onBehalfOf address

OR

  • Existing user debt is of the same siloed asset.

To check if user is in Siloed Borrowing state, you can see if underlying asset borrowed by user is siloed using getSiloedBorrowing() method on AaveProtocolDataProvider.sol.

Check if Reserved for Siloed Borrowing

// Resolve the data provider from the PoolAddressesProvider, then read the flag.
IAaveProtocolDataProvider dataProvider = IAaveProtocolDataProvider(provider.getPoolDataProvider());
// address of the underlying asset
address asset = "0x...";
 
dataProvider.getSiloedBorrowing(asset);

FAQ

How can user enter siloed borrowing state?

User automatically enters siloed borrowing state on their first successful borrow of siloed asset.

How does user exit siloed borrowing state?

User must repay all their debt to exit the siloed borrowing state.