Skip to main content
Permissionless lending protocol with isolated risk markets (Silos). Each Silo is a pair of two assets with independent risk parameters, preventing cross-market contagion.

Notes

  • Each Silo is an isolated two-asset market — risk from one market cannot spread to others
  • collateralOnly = true gives higher LTV but your deposit cannot be lent out to borrowers
  • Use SiloRepository.getSilo(assetAddress) to find the Silo contract for any asset
  • The SiloRepository address differs on Ethereum and Arbitrum
  • All deposit/repay operations require ERC-20 approval

Its names in a program

On Ethereum, Silo is a namespace: its contracts need no import.

Deployments

ABI

SiloABI

import SiloABI from "./protocols/silo/SiloABI.json";
  • deposit(address asset, uint256 amount, bool collateralOnly) returns (uint256 collateralAmount, uint256 collateralShare)
  • withdraw(address asset, uint256 amount, bool collateralOnly) returns (uint256 withdrawnAmount, uint256 withdrawnShare)
  • borrow(address asset, uint256 amount) returns (uint256 debtAmount, uint256 debtShare)
  • repay(address asset, uint256 amount) returns (uint256 repaidAmount, uint256 repaidShare)

SiloRepositoryABI

import SiloRepositoryABI from "./protocols/silo/SiloRepositoryABI.json"; Speaks for: siloRepository.
  • getSilo(address asset) view returns (address silo)

Next steps