The Bitcoin Credit Stack
all rates APR, act/365 · as of 2026-10-01
Markets › Venues › Compound v2 (Ethereum)

Compound v2 (Ethereum)

compound_v2_ethereum · onchain_pooled · operated by Compound DAO · registered
Price
not served — no USD loan at this venue cleared the curve's gates and $250k floor in the last 30 days
Quality
not served — Per-borrower LTV on a pooled venue needs loan-level ingestion, which is parked (hole #3). A pool lends against its whole basket, so there is no bitcoin-specific debt to divide.
Composition
not served — no debt at this venue is observed against bitcoin or lent from a pool in the last 30 days

Hover a figure for its basis and read. The market and every class, family and venue carry these same three, chosen by the published definitions, as of 2026-10-01. What each one measures →

BTC collateral
289 BTC
$24m
Debt lent out
not readable
Aggregate LTV
not readable
Borrow rate
not readable
Lend rate
not readable
Liquidates at
not readable

Quantities are a contract-state read. No liquidation price is derived: no liquidation threshold (LLTV) is ingested for this venue. Its own documentation may publish one; this dataset does not read it, so no price is derived. That is a coverage gap in this estate, not a property of the venue. this venue pools borrowing across every collateral it accepts, so no BTC-specific debt exists to read — the contract-state rows carry debt_attribution 'unavailable' and no dollar figure. A market-wide borrow total would be a number about this venue, not about its bitcoin book, and it is not served as one.

Loan duration is not a venue figure on an on-chain pool: these markets are open-term, and a position runs until it is repaid or liquidated. A fixed term exists only where the venue writes one — the custodial desks (cefi_credit_rates.term_days) and Gavel's auction, which is fixed-rate and fixed-term by construction. Serving "duration: none" for a pool would read as a missing measurement rather than a property of the instrument.

10 of 10 criteria researched. What the criteria are →

Markets — as served, not a venue rate

One row per market, as the venue publishes them. These are market rates: combining them into a single venue rate is a weighting across this venue's markets, and choosing one here would be a methodology decision taken in a web page.

No BTC market rows are served for this venue. It runs contracts, so the absence is this dataset’s, not the venue’s.

Price

What does credit cost here, and how is the price formed?

Rate formationalgorithmic_utilisation
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — the interest rate models are functions of utilisation (borrows / (cash + borrows − reserves)): algorithmic_utilisation per v1 §8.2.
Term structureopen_ended
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — borrow()/repayBorrow() carry no maturity; a position persists until repaid or liquidated.
Rate certaintyvariable
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — each cToken's borrowRatePerBlock() comes from its interestRateModel (cWBTC 0xBAE04CbF96391086dC643e842b517734E214D698, cWBTC2 0xF2e5dB36B0682f2CD6bC805c3a4236194e01f4D5) evaluated on current utilisation; nothing is fixed at origination.

Quality

What stands behind a position, and what can change under the reader?

Oracle dependencymultiple
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — oracle() = 0x8CF42B08AD13761345531b839487aA4d113955d9, one price oracle contract serving a price for every listed market's underlying; a pooled venue's solvency depends on all of them.
Default & liquidationthreshold
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — liquidateBorrow() is permitted once an account's borrow exceeds its collateral weighted by each market's collateral factor (WBTC: 0.6 in the 2019 cWBTC, 0.69 in cWBTC2); a liquidator repays up to closeFactor 0.5 of the debt and seizes collateral at an incentive of 1.08.
Custody & backingprotocol_custodial
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — mint() transfers the underlying to the cToken contract itself; the depositor holds the cToken as a claim rather than the asset.
Recoursenon_recourse
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — liability is bounded by the account's collateral: liquidateBorrow() seizes collateral and no function pursues a borrower beyond it; a shortfall stays in the market as bad debt.
Track record86 months observed
source
Derived from credit_venues.first_date (2019-07-22), the first Monday on which this dataset's archive read finds bitcoin supplied at the venue (credit_collateral_history, migration 152) — read from its contracts at past blocks, so near the venue's own start rather than when we began observing. A lower bound on the venue's age. Not typed, and not a claim about its longevity.

Composition

Who and what makes up this market?

Collateral acceptedBTC markets (2): WBTC (cWBTC, 2019) and WBTC (cWBTC2, 2021)
source
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — getAllMarkets() lists two cWBTC markets, 0xC11b1268C1A384e55C48c2391d8d480264A3A7F4 (12.31 WBTC supplied) and 0xccF4429DB6322D5C611ee964527D42E5d685DD6a (276.30 WBTC). Both are wound down: mintGuardianPaused and borrowGuardianPaused are true for each, so no new WBTC can be supplied or borrowed; existing positions remain and can be liquidated. NOTE: the venue is POOLED and multi-collateral, so a BTC reserve's presence does not mean a given borrow is secured by it (v1 §6.4).
Book depth & concentrationunknown (no per-venue counterparty count exists in this registry or in the comparison payload, so depth and concentration cannot be established (OB2-F1). This is a gap in THIS DATASET, not in the venue, and is a different value from `undisclosed`, which would mean the venue does not publish it (criteria §0.6).)
Observability
price: none — Not observed: this venue's rates are not read. It is registered for its collateral history.
quantity: partial — Observed through the venue's own contracts: the supplied amount of its bitcoin reserve, read DAILY at a recorded block since migration 153 and WEEKLY at past blocks back to 2019-07-22 (migration 152). Collateral only — the venue's debt is not read.
composition: none — Not observed: composition is loan-level.

Backing chain

backing_chain (v1 §9.5, D29): the ordered claims standing between a creditor and the coins, each link derived from a sourced fact already held and carrying it in `derived_from` — the custody cell, the venue's borrow card, or wrapper_registry.yaml for who holds the bitcoin behind a token. A `representation` link has one branch per token the venue takes; branches are alternatives, not a sequence. A link nobody has established is shown with status `incomplete` and names what is missing — it is never dropped, because a missing link omitted makes a long chain look short. `undisclosed` means the party does not publish it; `incomplete` means this dataset has not established it. NEVER SCORED AND NEVER COUNTED: no length, link count or ranking is published, and none should be derived — chain length and link transparency are orthogonal (ETP-backed margin is the longest chain here and every link of it is regulated). `recourse` is what the creditor holds beyond the chain. ⚠ Tokens are identified BY SYMBOL: the wrapper registry is not keyed by chain or address, so every `representation` link carries a `deployment` step that is incomplete — whether a token is native to the chain of the venue or a bridge receipt (one more link) is not established — and a symbol the registry knows to name a different token on a venue is shown unresolved, not given that wrapper's holders.

  1. contract_escrow established — the protocol contract — the collateral is escrowed and neither the operator nor the borrower can move it
    source
    attribute · custody_model = protocol_custodial
    Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — mint() transfers the underlying to the cToken contract itself; the depositor holds the cToken as a claim rather than the asset.
  2. representation incomplete
    source
    wrapper_registry · wrapper_registry.yaml as of 2026-09-02
    deployment · chain 1 incomplete
    whether each token is issued natively on this chain or bridged to it — a further link when bridged — is not in wrapper_registry.yaml, which is keyed by symbol, not by chain or address
    • WBTC established · direct_wrapped · identified by symbol
      WBTC established · issuer BitGo · custodial · holders [BitGo]
      Reserves in 2-of-3 multisig with BitGo holding two keys. Since 2024 BitGo custodies jointly with BiT Global, a Hong Kong custodian part-owned by Justin Sun — a second name on the same bitcoin, recorded but not split because no share is published.
      source
      issuer_doc
      BitGo, 'Wrapped BTC Launches with BitGo Custody and Full Proof of Assets', blog.bitgo.com; proof-of-reserve at wbtc.network
Recourse: non_recourse
source
attribute · recourse
Compound v2 Comptroller 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B on Ethereum (chain 1), read at block 26096783 (registry/resolution/2026-10/historical_cells.json) — liability is bounded by the account's collateral: liquidateBorrow() seizes collateral and no function pursues a borrower beyond it; a shortfall stays in the market as bad debt.

The generic axis set

Identical for every venue, identically computed. An axis that cannot be computed here renders its reason — never silently omitted, because an omitted axis says it was not considered.

Collateral lockednot available — this venue has no market rows in the rates payload yet
Debt outstandingnot available — this venue has no market rows in the rates payload yet
Utilisationnot available — this venue has no market rows in the rates payload yet
Venue-level borrow APRnot available — this venue has no market rows in the rates payload yet
Venue-level lend APRnot available — this venue has no market rows in the rates payload yet
Intermediation marginnot available — this venue has no market rows in the rates payload yet
Trailing realised average (7/30/90d)not available — no per-venue time series is held, so a trailing figure would be a single reading dressed as an average
Rate volatility (30/90d)not available — no per-venue time series is held, so a trailing figure would be a single reading dressed as an average
Spread to the pair aggregatenot available — this venue has no market rows in the rates payload yet
Spread to matched Treasuriesnot available — this venue has no market rows in the rates payload yet
Origination flownot available — needs loan-level history, which is held for Morpho Blue only
Repayment flownot available — needs loan-level history, which is held for Morpho Blue only
Aggregate and distributional LTVnot available — needs loan-level history, which is held for Morpho Blue only
Residence distributionnot available — needs loan-level history, which is held for Morpho Blue only
Liquidation incidencenot available — needs loan-level history, which is held for Morpho Blue only
Top-10 concentration sharenot available — needs loan-level history, which is held for Morpho Blue only

There is no score on this page and none will be added. The criteria are published and versioned before any venue is measured against them, and this venue's row is produced by the same pipeline as every other.

Access routes

Not yet surveyed. No one has looked for an MCP server for this venue. That is not the same as having looked and found none, and this row will not say the second while meaning the first. The listing criteria are published.

Ask your own question about this venue
read-only MCP · zero write tools · no account

How this venue compares depends on what you'd borrow, for how long, against what. That's a question for your AI, with this data behind it.

Orientation · Compound v2 (Ethereum)Holder · Compound v2 (Ethereum)Treasurer · Compound v2 (Ethereum)Analyst · Compound v2 (Ethereum)Risk · Compound v2 (Ethereum)
Add to Claude ↗Connect in Cursor ↗Connect in VS Code ↗Add to ChatGPT ↗Add to Grok ↗or copy the MCP URLhttps://mcp.bitcoincreditstack.com/mcp