@silo-finance/address-book
v0.0.1
Published
Contract addresses and ABIs for Silo Finance protocol across all supported chains
Downloads
143
Readme
@silo-finance/address-book
Contract addresses and ABIs for Silo Finance protocol across all supported chains.
Installation
npm install @silo-finance/address-bookpnpm add @silo-finance/address-bookSupported Chains
| Chain | Key | Chain ID |
|-------|-----|----------|
| Ethereum | ethereum | 1 |
| Arbitrum | arbitrum | 42161 |
| Optimism | optimism | 10 |
| Base | base | 8453 |
| Sonic | sonic | 146 |
| Ink | ink | 57073 |
| Avalanche | avalanche | 43114 |
| XDC | xdc | 50 |
| Injective | injective | 2525 |
Usage
Import Everything
import { siloLensAddress, siloAbi, ChainKey } from "@silo-finance/address-book";Import Specific Modules
// Addresses only
import { siloLensAddress, siloRouterV2Address } from "@silo-finance/address-book/addresses";
// ABIs only
import { siloAbi, siloLensAbi } from "@silo-finance/address-book/abis";
// Chain utilities
import { chainKeys, chainIds, getChainKeyFromId } from "@silo-finance/address-book/chains";Addresses
Each address export is a Record<ChainKey, Address>:
import { siloLensAddress, siloRouterV2Address } from "@silo-finance/address-book";
// Access by chain key
const lens = siloLensAddress.arbitrum; // "0x8509b92145Bb2645F47c6847Bb61A46bE61AE3F2"
const router = siloRouterV2Address.sonic; // "0x21CfE326634c6ba3737F513ecaDCcCbB7500B59c"Available Addresses
Core Contracts
siloAddress- Silo implementationsiloLensAddress- SiloLens (view functions)siloRouterV2Address- Router for user interactions
Factory Contracts
siloFactoryAddress- SiloFactory v1siloFactoryV2Address- SiloFactory v2siloVaultsFactoryAddresses- SiloVaultsFactory (array per chain)
Interest Rate Models
interestRateModelV2Address- InterestRateModelV2 (PI model)dynamicKinkModelFactoryAddress- DynamicKinkModelFactory
Share Tokens
shareDebtTokenAddress- ShareDebtToken implementationshareProtectedCollateralTokenAddress- ShareProtectedCollateralToken
Incentives
siloIncentivesControllerFactoryAddresses- Incentives controllers (array per chain)
xSilo
xSiloAddress- xSilo staking contractsiloTokenAddress- SILO token
Leverage
leverageRouterAddress- Leverage router
Utilities
MULTICALL3_ADDRESS- Multicall3 (same on all chains)ADDRESS_ZERO- Zero address constant
Utility Functions
import {
getContractAddress,
hasContractDeployed,
ADDRESS_ZERO,
} from "@silo-finance/address-book";
// Get address, returns null if not deployed
const address = getContractAddress(siloLensAddress, "arbitrum");
// Check if deployed on chain
const isDeployed = hasContractDeployed(siloFactoryV2Address, "ethereum"); // true
const notDeployed = hasContractDeployed(siloFactoryV2Address, "base"); // falseABIs
TypeScript-typed ABIs for viem/wagmi compatibility:
import {
siloAbi,
siloLensAbi,
siloConfigAbi,
siloRouterAbi,
siloOracleAbi,
erc20Abi,
shareTokenAbi,
siloVaultAbi,
interestRateModelV2Abi,
dynamicKinkModelAbi,
xSiloAbi,
leverageRouterAbi,
siloIncentivesControllerAbi,
gaugeHookReceiverAbi,
} from "@silo-finance/address-book/abis";Usage with Viem
import { createPublicClient, http } from "viem";
import { arbitrum } from "viem/chains";
import { siloLensAddress } from "@silo-finance/address-book";
import { siloLensAbi } from "@silo-finance/address-book/abis";
const client = createPublicClient({ chain: arbitrum, transport: http() });
const result = await client.readContract({
address: siloLensAddress.arbitrum,
abi: siloLensAbi,
functionName: "someFunction",
args: [...],
});Chain Utilities
import {
ChainKey,
chainKeys,
chainIds,
chainConfigs,
isChainKey,
getChainKeyFromId,
getChainConfig,
DEFAULT_CHAIN,
} from "@silo-finance/address-book/chains";
// Type
const chain: ChainKey = "arbitrum";
// All supported chains
chainKeys; // ["ethereum", "arbitrum", "optimism", ...]
// Chain IDs
chainIds.arbitrum; // 42161
// Get chain key from ID
getChainKeyFromId(42161); // "arbitrum"
getChainKeyFromId(999); // null
// Type guard
if (isChainKey(userInput)) {
// userInput is ChainKey
}
// Full chain config
const config = getChainConfig("arbitrum");
// { key: "arbitrum", chainId: 42161, label: "Arbitrum", slug: "arbitrum" }
// Default chain
DEFAULT_CHAIN; // "arbitrum"