Skip to content

Isolated Pools

This section documents the PoolRegistry → Comptroller → VToken architecture from the isolated-pools repository. Despite the historical directory name, this architecture is not deprecated: it powers the Core Pool on every supported mainnet except the legacy BNB Chain Core Pool.

Do not confuse these two lifecycle decisions:

  • the old, separately promoted Isolated Pools product on BNB Chain, Ethereum, and Arbitrum is retired; use the exit guide for positions that still need to be closed;
  • the lending market engine remains active for modern Core Pools and for any retired pool that still has balances, debt, rewards, or recovery duties.

BNB Chain’s legacy Core Pool uses the Unitroller/Diamond Comptroller and legacy VTokens, not the contracts in this section.

PoolRegistry transparent proxy
└─ registered Comptroller beacon proxies (one per pool)
└─ VToken beacon proxies (one per market)
└─ an interest-rate-model contract per market

PoolLens is a separate read helper. It is not a proxy, and old Lens deployments can coexist with newer ones. Resolve the exact address and tuple ABI before decoding its output.

The following proxy and beacon state was read directly from each chain on August 27, 2026. Addresses in a deployment artifact are not a substitute for these indirections: governance can upgrade a proxy or beacon without changing the user-facing proxy address.

NetworkChecked blockPoolRegistry proxyImplementation
BNB Chain1183657410x9F7b01A536aFA00EF10310A162877fd792cD06660xc4953e157D057941A9a71273B0aF4d4477ED2770
Ethereum258458890x61CAff113CCaf05FFc6540302c37adcf077C51790x08A2577611Ae63d1ba40188035eD6Ad21F8502A9
Arbitrum One4988851260x382238f07Bc4Fe4aA99e561adE8A4164b5f815DA0xc9A9594e774F9454e4665126C72Eb62643253aB0
Optimism1561134330x147780799840d541C1d7c998F0cbA996d11D62bb0x6a166fcd39BA9c4ACc1b98eC45Adcdc4926E7967
Base505181480xeef902918DdeCD773D4B422aa1C6e1673EB9136F0x88eF9Fd7004f81c1B1CA59375178425C97A7eE68
opBNB1788348500x345a030Ad22e2317ac52811AC41C1A63cfa13aEe0xc5A64235ff4aad92b71eC69a925224b60aede1aa
zkSync Era717382700xFD96B926298034aed9bBe0Cca4b651E41eB87Bc40x204Dfdbb0F066dAfaD8C7fc07B04751A973ADCFb
Unichain570772850x0C52403E16BcB8007C1e54887E1dFC1eC9765D7C0xBAb8c229B6C19c443b942F228B076Ca0d4f2260E
NetworkComptroller beacon → implementationVToken beacon → implementationVToken clock
BNB Chain0x38B4Efab9ea1bAcD19dC81f19c4D1C2F9DeAe1B2 → 0x7B586Aed00C85d7E32B463DCE094B1faCA7e7e7c0x2b8A1C539ABaC89CbF7E2Bc6987A0A38A5e660D4 → 0x228Ea224d62D14a2e2cb9B43083aE43954C39B67block, 42,048,000/year
Ethereum0xAE2C3F21896c02510aA187BdA0791cDA77083708 → 0xC910F2B196C516253e88b2097ba5D7d5fC9fa84e0xfc08aADC7a1A93857f6296C3fb78aBA1d286533a → 0x33bE30B31f07c8a2bfb705FBcE55E983c47ba864block, 2,628,000/year
Arbitrum One0x8b6c2E8672504523Ca3a29a5527EcF47fC7d43FC → 0x4b256a7836415e09DabA40541eE78602Bc6B24bF0xE9381D8CA7006c12Ae9eB97890575E705996fa66 → 0x1986Fb53535953711265d5fD329cd7A690411669second, 31,536,000/year
Optimism0x64f9306496ccF7b7369d02d68D6abcA2Edfb871d → 0x4D3f690A33A365Fc131777ea6e0f5B8821eb755b0xd550Bdfa9402e215De0BabCb99F7294BE0268367 → 0xBEB9eE824a0096c0FB606b070c028cB55b6f21e7second, 31,536,000/year
Base0x1b6dE1C670db291bcbF793320a42dbBD858E67aC → 0x93177BFDBc5dAf7B0fF4A09478eF90FF6e28E04A0x87a6476510368c4Bfb70d04A3B0e5a881eC7f0d1 → 0x107bA74c87e75b6cc291510D3A85D0c8EAa73e82second, 31,536,000/year
opBNB0x11C3e19236ce17729FC66b74B537de00C54d44e7 → 0xD3b2431c186A2bDEB61b86D9B042B75C954004F60xfeD1d3a13597c5aBc893Af41ED5cb17e64c847c7 → 0x7AA7EB7553DE5f221C06595f3b4021363279e9Feblock, 126,144,000/year
zkSync Era0x0221415aF47FD261dD39B72018423dADe5d937c5 → 0xB2B58B15667e39dc09A0e29f1863eee7FD4955410x53523537aa330640B80400EB8B309fF5896E7eb5 → 0x3e9cf1eBe018610585D0B519A9956C950E079591second, 31,536,000/year
Unichain0xE57824ffF03fB19D7f93139A017a7E70f6F25166 → 0xDa42d85AE7625eBDD3b5967F44c263565BD8fA400x42c1Efb9Dd9424c5ac8e6EcEa4eb03940c4a15Fc → 0x256E61f4056EC9eaB8c56E3aFa217a12c33b8893second, 31,536,000/year

One important exception to the v4.4.0 deployment artifacts is BNB Chain: its VToken beacon currently points to the implementation installed by VIP-524, not to the BNB artifact committed in the repository release.

  • Treat a registry entry as discovery data, not proof that a pool is open for new use.
  • Resolve the current proxy or beacon implementation at the block used by your integration.
  • Use “slot” for rate and accrual units until isTimeBased() establishes whether a slot is a block or a second.
  • Use the deployed markets registry for market addresses, then confirm listing, pause, caps, balances, and debt onchain.
  • Use compiler build information for storage-layout review. A list of public getters is not a safe upgrade layout.

The stable API descriptions in this section are aligned with the isolated-pools v4.4.0 source. Pages call out deployment exceptions where the live implementation differs.