Liquity v1 (Ethereum)
Takes as collateral: ether
What the ether is: 100.0% ether itself (ETH, WETH) · 0.0% staking tokens (wstETH, rETH, cbETH…) · 0.0% restaking tokens (weETH, ezETH…). Staking tokens count at their own contract rate; the market price is published beside it.
Credit secured by ether is never added to credit secured by bitcoin. An account holding both is shown as a bound in each view and added to neither.
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 | administeredsourceLiquity v1 TroveManager 0xA39739EF8b0231DbFA0DcdA07d7e29faAbCf4bb2 on Ethereum (chain 1) — the one-off fee is 0.5% plus a base rate that rises with redemptions (redeemed fraction of LUSD supply divided by BETA 2, per the published source) and decays with time (MINUTE_DECAY_FACTOR 0.999037758833783, about a 12-hour half-life; baseRate 0.0000000000000052% before decay, read 2026-10-06 at block 26133615; last fee operation 2026-10-03), bounded at 5%. It is set by that formula: the TroveManager has no owner (owner() is the zero address) and no setter. The registry's value for this venue is administered, as for the fork Threshold USD; the formula, not an administrator, sets the fee. |
|---|---|
| Term structure | open_endedsourceLiquity v1 on Ethereum (chain 1) — a trove has no expiry (published source; TroveManager.Troves(address) returns debt, coll, stake, status and arrayIndex, and no maturity); it persists until repaid, liquidated or redeemed against. Read 2026-10-06. |
| Rate certainty | fixed_at_originationsourceLiquity v1 on Ethereum (chain 1) — no interest accrues: the only charge is a one-off fee taken when the debt is drawn (getBorrowingRateWithDecay() 0.5%, BORROWING_FEE_FLOOR 0.5%, MAX_BORROWING_FEE 5%, read 2026-10-06 at block 26133615). CHECKED on chain: of the 70 troves, 69 have stored debts identical to the wei at block 26083215, 50400 blocks earlier; the 70th (0x54Bc1c2C0fCaEdcC2e68C97774F4F873C1d24d08) fell from 298,584.30 to 239,006.19 LUSD while its collateral fell by exactly 140 ETH — a borrower's repayment and withdrawal (a redemption would have taken about 22 ETH for that much debt at 2,714), not accrual, which could only raise it. No trove has a pending redistribution. The cost of a loan is therefore known in full at origination. This dataset publishes no annual rate for the venue, because a one-off fee is not one. |
Quality
What stands behind a position, and what can change under the reader?
| Oracle dependency | multiplesourceLiquity v1 PriceFeed 0x4c517D4e2C851CA76d7eC94B805269Df0f2201De on Ethereum (chain 1) (TroveManager.priceFeed()), read 2026-10-06 at block 26133615 — a primary and a fallback: priceAggregator() = Chainlink 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 ("ETH / USD", 8 decimals, answer 2,712.74, updated 13:12 UTC) and tellorCaller() = 0xAd430500ECDa11E38C9bCB08a702274b94641112 (whose tellor() is 0x88dF592F8eb5D7Bd38bFeF7dEb0fBc02cf3778a0), asked for request id 1 (ETHUSD_TELLOR_REQ_ID); it returned 2,714.20 at 12:50 UTC, so the fallback is still being reported. status() = 0 = chainlinkWorking (enum in the published PriceFeed.sol); lastGoodPrice() 2,714.2865. The feed times out after 4 hours (TIMEOUT 14400), rejects a Chainlink move of more than 50% between rounds, and tolerates 5% between the two. The PriceFeed's owner() is the zero address: the oracle choice can never be changed. ⚠ Who reports to the Tellor contract, and whether it is Tellor's current system or a legacy one kept for Liquity, was not read. |
|---|---|
| Default & liquidation | thresholdsourceLiquity v1 TroveManager 0xA39739EF8b0231DbFA0DcdA07d7e29faAbCf4bb2 on Ethereum (chain 1) — read 2026-10-06 at block 26133615: MCR 110%, CCR 150%; a trove under the MCR can be liquidated, and in recovery mode (system ratio under the CCR; not the case now — checkRecoveryMode() false, getTCR() 751% at lastGoodPrice) so can troves under the system ratio. StabilityPool 0x66017D22b0f8556afDd19FC67041899Eb65a21bb holds 7,568,593 LUSD (29.0% of the debt) and 591.65 ETH of past liquidation gains. Per the published source anyone may liquidate; the stability pool absorbs the debt first and the rest is redistributed to other troves (DefaultPool 0x896a3F03176f05CFbb4f006BfCd8723F2B0D741C holds 0 ETH and 0 LUSD now: nothing is pending redistribution). ⚠ A healthy trove can also lose collateral to REDEMPTION: LUSD is exchanged at face value for ETH from the lowest-ratio troves (getRedemptionRateWithDecay() 0.5%, read). |
| Custody & backing | protocol_custodialsourceLiquity v1 on Ethereum (chain 1) — read 2026-10-06 at block 26133615: the ETH sits in the ActivePool 0xDf9Eb223bAFBE5c5271415C75aeCD68C21fE3D7F (its native balance, 72,251.2195 ETH, equals the pool's own account getETH() to the wei). The TroveManager, BorrowerOperations, ActivePool, DefaultPool, StabilityPool, CollSurplusPool, SortedTroves and PriceFeed all read owner() = the zero address, and none of them, nor LUSD 0x5f98805A4E8be255a32880FDeC7F6728C6568bA0, has an EIP-1967 implementation slot set; LUSD has no owner() function. Per the published source nothing can upgrade, pause or redirect them, and no key can move the collateral. ⚠ Proxy patterns other than EIP-1967 were not checked, and deployed bytecode was not compared with the published source. |
| Recourse | non_recoursesourceLiquity v1 on Ethereum (chain 1) — per the published source (no view function states it) liability is bounded by the trove's collateral; a shortfall is absorbed by the stability pool or redistributed to other troves, and nothing pursues the borrower. A borrower who is liquidated in recovery mode above 110%, or fully redeemed, keeps the surplus as a claim in CollSurplusPool 0x3D32e8b97Ed5881324241Cf03b2DA5E2EBcE5521 (1,622.80 ETH unclaimed, read 2026-10-06). |
| Track record | 66 months observedsourceLiquity v1 TroveManager 0xA39739EF8b0231DbFA0DcdA07d7e29faAbCf4bb2 on Ethereum (chain 1) — its code first appears at block 12178557, 2021-04-05 (binary search of eth_getCode, archive node), matching the published deploymentDate 1617611590000 (2021-04-05) in the deployments file; 66 whole months to 2026-10-06. The contracts are not upgradable, so the code observed then is the code read now. ⚠ The date of the first trove was not read (eth_getLogs over 2021 blocks was refused by every public RPC tried); a 14-day bootstrap period barred redemptions at launch (BOOTSTRAP_PERIOD, published source). |
Composition
Who and what makes up this market?
| Collateral accepted | ETH (1): ETHsourceLiquity v1 TroveManager 0xA39739EF8b0231DbFA0DcdA07d7e29faAbCf4bb2 on Ethereum (chain 1) — getEntireSystemColl()/getEntireSystemDebt() and each trove through MultiTroveGetter 0xFc92d0E9Fa35df17E3A6d9F40716ca2cE749922B (root: github.com/liquity/dev packages/lib-ethers/deployments/default/mainnet.json). Read 2026-10-06 at block 26133615: 72,251.2195 native ETH (no token; 18 decimals) against 26,101,419.74 LUSD in 70 troves; the largest trove owes 27.49% of it and the largest five 59.80%; lowest collateral ratio 642%, median 721% (at lastGoodPrice 2,714.2865). Native ether is the only collateral the contracts accept (BorrowerOperations.openTrove is payable in ETH, per the published source); no bitcoin. LUSD's totalSupply equals getEntireSystemDebt() to the wei: every LUSD is backed by a trove, and 14,000 of it is the 200-per-trove gas compensation held by the GasPool. |
|---|---|
| Book depth & concentration | disclosedsourceLiquity v1 on Ethereum (chain 1) — every trove is readable on chain: SortedTroves 0x8FdD3fbFEb32b28fb73555518f8b361bCeA741A6 getSize() 70 = TroveManager getTroveOwnersCount() 70, and MultiTroveGetter.getMultipleSortedTroves plus TroveManager.getEntireDebtAndColl(address) give each one's debt and collateral; their sums equal getEntireSystemDebt() and getEntireSystemColl() to the wei. Read 2026-10-06 at block 26133615. |
| Observability | price: none — Not yet observed: registered 2026-10-06; the venue's own direct read is not built yet. As of 2026-10-06. quantity: none — Not yet observed: registered 2026-10-06; the venue's own direct read is not built yet. As of 2026-10-06. composition: none — Not yet observed: registered 2026-10-06; the venue's own direct read is not built yet. As of 2026-10-06. |
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_custodialLiquity v1 on Ethereum (chain 1) — read 2026-10-06 at block 26133615: the ETH sits in the ActivePool 0xDf9Eb223bAFBE5c5271415C75aeCD68C21fE3D7F (its native balance, 72,251.2195 ETH, equals the pool's own account getETH() to the wei). The TroveManager, BorrowerOperations, ActivePool, DefaultPool, StabilityPool, CollSurplusPool, SortedTroves and PriceFeed all read owner() = the zero address, and none of them, nor LUSD 0x5f98805A4E8be255a32880FDeC7F6728C6568bA0, has an EIP-1967 implementation slot set; LUSD has no owner() function. Per the published source nothing can upgrade, pause or redirect them, and no key can move the collateral. ⚠ Proxy patterns other than EIP-1967 were not checked, and deployed bytecode was not compared with the published source. - representation incompleteno curated BTC representation is held for this venue (markets / metadata / collateral_asset)
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) | unknown (this venue has no market rows in the rates payload yet) |
|---|---|
| Intermediation margin | unknown (this venue has no market rows in the rates payload yet) |
| Trailing realised average (7/30/90d) | unknown (no per-venue time series is held, so a trailing figure would be a single reading dressed as an average) |
| Rate volatility (30/90d) | unknown (no per-venue time series is held, so a trailing figure would be a single reading dressed as an average) |
| Spread to the pair aggregate | unknown (this venue has no market rows in the rates payload yet) |
| Spread to matched Treasuries | unknown (this venue has no market rows in the rates payload yet) |
| Origination flow | unknown (needs loan-level history, which is held for Morpho Blue only) |
| Repayment flow | unknown (needs loan-level history, which is held for Morpho Blue only) |
| Aggregate and distributional LTV | unknown (needs loan-level history, which is held for Morpho Blue only) |
| Residence distribution | unknown (needs loan-level history, which is held for Morpho Blue only) |
| Liquidation incidence | unknown (needs loan-level history, which is held for Morpho Blue only) |
| Top-10 concentration share | unknown (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
Unknown (not surveyed yet). 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 for this by machine
| REST | GET https://api.bitcoincreditstack.com/v1/market/venues/liquity_v1_ethereum |
|---|---|
| MCP | get_venue({ venue_id: "liquity_v1_ethereum", collateral: "eth" }) |
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