Dolomite (Ethereum)
Takes as collateral: bitcoin and ether
One of 3 deployments of Dolomite · also on Arbitrum, Berachain
Dollar loans only: other currencies are separate books, never added in
Debt and rates count loans made in US dollars and dollar stablecoins. Loans in euros, francs, yen, ether or bitcoin itself are separate books, shown by currency on each venue, never added in.
- BTC collateral — the supplied amount of the venue's pegged-bitcoin reserves as each pool reports it — what is deposited, not what is pledged against a loan.
- Dollar debt against bitcoin — the whole pool's lending against every collateral it takes (bitcoin is 0.1% of the pool's collateral) — not debt against bitcoin, and no dollar of it is assigned to bitcoin without an account-level read.
- Liquidation threshold — the loan-to-value at which the venue liquidates a bitcoin position, not a price: no bitcoin book is read at this venue to turn it into one (a pool's debt has no collateral of its own until its accounts are read).
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.
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 formation | algorithmic_utilisationsourceDolomite IInterestSetter.getInterestRate(token, borrowWei, supplyWei) (github.com/dolomite-exchange/dolomite-margin, contracts/protocol/interfaces) on Ethereum (chain 1) — the rate is a function of the market's borrowed and supplied totals: algorithmic_utilisation. The curve each setter implements was not read. |
|---|---|
| Term structure | open_endedsourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — a borrow is a negative balance in a market and carries no maturity in the core contract. NOT READ: whether a separate expiry module sets one on a position. |
| Rate certainty | variablesourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — getMarketInterestSetter(i): each market names an interest setter (2 distinct contract(s), read 2026-09-30) whose getInterestRate(token, borrowWei, supplyWei) is evaluated on the market's current totals; nothing is fixed at origination. |
Quality
What stands behind a position, and what can change under the reader?
| Oracle dependency | multiplesourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — getMarketPriceOracle(i): every market names a price oracle contract; read 2026-09-30, 23 markets naming 1 distinct oracle contract(s), which the owner can replace per market. An account is cross-margined, so its solvency depends on the feeds of every market it holds. |
|---|---|
| Default & liquidation | thresholdsourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — liquidate() is permitted once an account is no longer collateralised (LiquidateOrVaporizeImpl: !isCollateralized). getMarginRatio() read 2026-09-30 requires supply of 117.65% of borrow, each side adjusted per market by getMarketMarginPremium; the liquidator takes collateral at a 5% spread (getLiquidationSpread). |
| Custody & backing | protocol_custodialsourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — a single contract holds every market's tokens; a depositor holds a balance in its accounting, not the asset. |
| Recourse | non_recoursesourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — liability is bounded by the account's collateral. An account left with debt and no collateral is closed by vaporize() against the protocol's excess tokens (LiquidateOrVaporizeImpl), not pursued. |
| Track record | 14 months observedsourceDerived from the first aggregator observation this dataset holds for the venue (defi_rates_llama, 2025-07-02; the registry holds no first_date for it). This is a LOWER BOUND on the venue's age, not the age itself: a venue trading long before the aggregator began listing it reads short here. The observer is the aggregator, not the venue's own contracts. Not typed, and not a claim about the venue's longevity. |
Composition
Who and what makes up this market?
| Collateral accepted | BTC markets (2): WBTC, cbBTCsourceDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — getMarketTokenAddress(i) and getMarketTotalPar(i) (registry/resolution/2026-09/dolomite.json). 23 markets, read 2026-09-30. Bitcoin markets holding 0.01 BTC or more: WBTC 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 (8 decimals) — 7.08 supplied, 0.668 borrowed, margin premium 2%; cbBTC 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf (8 decimals) — 0.335 supplied, 0.0601 borrowed, margin premium 8.97%. Listed and holding under 0.01 BTC: SolvBTC. NOTE: Dolomite is cross-margined, so a bitcoin market's presence does not mean a given borrow is secured by it. |
|---|---|
| Book depth & concentration | unknown (no per-venue counterparty count exists in this registry or in the comparison payload, so depth and concentration cannot be established. 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.) |
| Observability | price: partial — Observed through the aggregator (DefiLlama). The aggregator's rows are each pool's published borrow and supply rates as it reports them — not a read of the venue's own contracts, and not checked against one. As of 2026-10-01. quantity: partial — Observed through the aggregator (DefiLlama): bitcoin collateral is the supplied amount of each pegged-bitcoin reserve, converted at the day's bitcoin reference, and debt is the borrowed amount per pool or vault. Neither is a read of the venue's own contracts. As of 2026-10-01. composition: none — Not obtainable from an aggregator — composition is loan-level and requires event ingestion, which is not planned for this venue. |
What the loans are denominated in
Not yet established for this venue — which is not the same as dollars.
Backing chain
Each link from what this venue takes as collateral down to the bitcoin it rests on, in order, with how each link was established.
How a chain is read, and what it does not claim
backing_chain: 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.
- 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_custodialDolomiteMargin 0x003Ca23Fd5F0ca87D01F6eC6CD14A8AE60c2b97D on Ethereum (chain 1) — a single contract holds every market's tokens; a depositor holds a balance in its accounting, not the asset. - representation incomplete
source
wrapper_registry · wrapper_registry.yaml as of 2026-09-02deployment · chain 1 incompletewhether 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- cbBTC established · direct_wrapped · identified by symbolCBBTC established · issuer Coinbase · custodial · holders [Coinbase]
source
issuer_doccoinbase.com/cbbtc — 'backed 1:1 and held in custody by Coinbase', cold storage - SolvBTC established · yield_bearing · identified by symbolSOLVBTC undisclosed · issuer Solv Protocol · consortium · holders [] · holder_unknown_share partialWAS custodian 'Solv', layer 1. Both wrong. The reserve is "native BTC, BTCB (Binance's wrapped Bitcoin), and cbBTC" — so an unpublished fraction of this is bitcoin ALREADY counted under Binance and Coinbase, and counting Solv as its own holder double-counts it. Native mainnet BTC is held under FROST threshold signatures plus partner regulated custodians, unnamed. No published split, so the whole row is unresolved rather than apportioned.
source
issuer_docdocs.solv.finance/key-products/solvbtc and.../reservesBTCB established · issuer Binance · custodial · holders [Binance]Reserve address published (3LYJfcfHPXYJreMsASk2jkn69LWEYKzexb); multi-sig cold storage.source
issuer_docbinance.com 'Introducing Bitcoin-pegged Token on BNB Chain'; binance.com/en/proof-of-reservesCBBTC established · issuer Coinbase · custodial · holders [Coinbase]source
issuer_doccoinbase.com/cbbtc — 'backed 1:1 and held in custody by Coinbase', cold storage - WBTC established · direct_wrapped · identified by symbolWBTC 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_docBitGo, 'Wrapped BTC Launches with BitGo Custody and Full Proof of Assets', blog.bitgo.com; proof-of-reserve at wbtc.network
- cbBTC established · direct_wrapped · identified by symbol
source
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. A figure that covers only part of what the axis asks is marked, with what it leaves out beneath it. Collateral, debt and the borrow and lend rates are the tiles at the top of this page.
| Utilisation (venue roll-up) | 74.2% the pool's dollar reserves: borrowed over supplied across 3 reserve(s), latest day — the whole pool, not its bitcoin book defi_rates_llama, quantity-gated |
|---|---|
| Intermediation margin | +1.97 pts · derived the pool's borrow rate minus its supply rate on the same dollar reserves — what the venue keeps, plus the cost of idle supply borrow rate minus lend rate, both as above |
| Trailing realised average (7/30/90d) | 7d 4.84% · 30d 4.75% · 90d 4.49% dollar loans, debt-weighted over the days observed (7 / 30 / 90 of 7 / 30 / 90); continuously compounded defi_rates_llama — the 30-day window's rows, gates and floor (098) |
| Rate volatility (30/90d) | 30d 0.09 pts · 90d 0.25 pts the standard deviation of the daily debt-weighted borrow rate, in percentage points — not annualised the daily rate above |
| Spread to the pair aggregate | −0.15 pts vs Algorithmic · derived this venue's borrow rate minus its class's (4.90%), both as served on the spine /v1/market/tree — the venue's and its class's borrow rates |
| Spread to matched Treasuries | +0.61 pts vs the 1-month bill (4.13%) · derived the venue's borrow rate minus the 1-month bill, both continuously compounded. An open-term loan has no maturity of its own, so the bill stands for a 30-day window macro_rates — the 1-month Treasury bill, 2026-10-08 (Federal Reserve H.15) |
| Origination flow | collecting (not read yet) — loan events are read for Morpho Blue (Ethereum, Base) and the six Aave v3 chains only |
| Repayment flow | collecting (not read yet) — loan events are read for Morpho Blue (Ethereum, Base) and the six Aave v3 chains only |
| Aggregate and distributional LTV | collecting (not read yet) — a pool's debt has no collateral of its own; the LTV of its bitcoin-only borrowers needs an account-level read, which this venue does not have yet |
| Residence distribution | collecting (not read yet) — how long positions stay open needs each loan's history; it is held for Morpho Blue and the Aave v3 chains and not yet computed |
| Liquidation incidence | collecting (not read yet) — liquidations are read from events for Morpho Blue and the Aave v3 chains, and as positions past threshold where a pool is read account by account |
| Top-10 concentration share | collecting (not read yet) — borrower concentration is read where a pool is read account by account (21 venues) |
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
Surveyed — no listable route. Probed for a first-party MCP endpoint; none answered. surveyed 2026-08-30
Ask for this by machine
| REST | GET https://api.bitcoincreditstack.com/v1/market/venues/dolomite_ethereum |
|---|---|
| MCP | get_venue({ venue_id: "dolomite_ethereum" }) get_venue({ venue_id: "dolomite_ethereum", include: ["axes", "headline"] }) |
The same figures, the same names and dates. Connect your AI →
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.
https://mcp.bitcoincreditstack.com/mcp