Notice: Editorial analysis of on-chain readings from Sky, Grove, and Spark contracts. The window measured in this article —from September 3 to 19, 2026— was read across Ethereum blocks 25,895,643 to 26,012,184; the current state was re-read on September 27, 2026, at block 26,069,555 (15:01 UTC), with DefiLlama series re-downloaded and the published window re-measured that day. Transfers and burns of JTRSY and BUIDL-I are sourced from Blockscout records. Core figures are derived from the chain; the aggregator only provides context. This does not constitute financial advice. CleanSky receives no commissions or referral payments from any of the protocols or funds mentioned.
Between September 3 and 19, 2026, Grove's debt to Sky dropped from 2,585.8 to 1,688.5 million USDS: 897.3 million repaid in 16 days, while Spark's debt to the same Sky protocol rose by 663.6 million. Sky (the protocol that issues the USDS dollar, formerly MakerDAO) finances its credit agents —Grove, Spark, and two others with debt: Osero and Obex— with USDS lines recorded in the Vat (the accounting contract where every system debt resides). Grove (Grove Labs, the Sky Prime Agent that places USDS into tokenized funds) redeemed 425.68 million shares of JTRSY (the Treasury bill fund from Janus Henderson and Anemoy, issued as a token via the Centrifuge platform) and 474.21 million of class I (BUIDL-I) from the BlackRock money market fund on Ethereum, using the cash to pay down its debt. Spark, the agent managing the SparkLend lending market, took on new USDS as credit lent on SparkLend grew by 690 million dollars. Neither move was decided by a specific Sky vote: the executive vote on September 10 increased the lines for two small vaults and made no mention of Grove's, which decreased automatically via the DC-IAM module. In the September 27 re-reading, the tally reached 999.3 million dollars redeemed, and Grove's new vault is pinned to its 100 million ceiling—which Sky approved to raise to 500 on September 26 but has not yet executed. This article tracks Grove's tokens through to the JTRSY burn that appeared on September 18 as a "300 million drop for Anemoy" and covers what Grove Labs has stated regarding these moves.
How does Sky lend USDS to Grove and Spark through allocator vaults?
An allocator vault is a USDS credit line that Sky governance opens to a Prime Agent (the satellite protocols Sky finances). Each line is an entry in the Vat —an ilk, in contract jargon— identified by a name, such as ALLOCATOR-BLOOM-A or ALLOCATOR-SPARK-A, with three key figures: outstanding debt (the product of the Art and rate fields), the ceiling (line), and the on-chain interest rate, set by another contract called Jug. The agent issues USDS against its vault up to the ceiling and returns it by burning it. As of September 19, 2026, the Jug showed 0% on the eight allocator vaults in the Sky chainlog (five with debt; Nova, Interval, and Pattern at zero): the cost of capital is settled in the Monthly Settlement Cycle (MSC #12, Sky forum, September 3: 9.57 million USDS in new debt for BLOOM-A and 6.36 for SPARK-A for August).
The ceiling is not manually adjusted every day. The DC-IAM (Debt Ceiling Instant Access Module, in production since 2021 under the MIP27 specification) recalculates each vault's line based on three voted parameters: the maximum (line), the buffer above debt (gap), and the minimum time between increases (ttl). If the agent repays debt, the ceiling drops to the debt level plus the buffer; if debt approaches the ceiling, it rises after the ttl expires, without a new vote. In ALLOCATOR-BLOOM-A, Grove's original vault, the buffer remained between 500 and 694 million throughout the fortnight while debt fell by 897 million: the ceiling followed the debt down automatically.
| Sky Allocator Vault (Vat reading, 2026) | Debt Sep-3 08:40 UTC (M USDS) | Ceiling Sep-3 (M USDS) | Debt Sep-19 14:33 UTC (M USDS) | Ceiling Sep-19 (M USDS) | Debt Variation (M USDS) |
|---|---|---|---|---|---|
| ALLOCATOR-BLOOM-A (Grove, original vault) | 2,585.8 | 3,266.3 | 1,688.5 | 2,192.2 | −897.3 |
| ALLOCATOR-GROVE-A (Grove, new vault) | 16.6 | 21.5 | 70.2 | 85.4 | +53.5 |
| ALLOCATOR-SPARK-A (Spark) | 2,915.4 | 4,424.8 | 3,580.6 | 5,054.0 | +665.1 |
| ALLOCATOR-PRYSM-A (Osero) | 24.0 | 24.0 | 50.0 | 65.0 | +26.0 |
| ALLOCATOR-OBEX-A (Obex) | 402.5 | 450.0 | 404.2 | 450.0 | +1.6 |
| ALLOCATOR-NOVA-A, INTERVAL-A and PATTERN-A | 0.0 | 0 / 10 / 50 | 0.0 | 0 / 10 / 50 | 0.0 |
| Sum of the five vaults with debt | 5,944.4 | — | 5,793.4 | — | −151.0 |
The table uses the re-reading from 14:33 UTC on September 19; the rest of the piece uses the 07:23 reading (SPARK-A +663.6). Sky was lending 5,944.4 million USDS to its agents on September 3, 5,793.4 on September 19, and 5,795.5 in the September 27 re-reading (block 26,069,555, 15:01 UTC). Spark absorbed 74% of what Grove repaid (663.6 out of 897.3 million), with the remainder reducing the system's total debt by approximately 150 million.
How much USDS did Grove return to Sky between Sep-3 and Sep-19, 2026, and in what tranches?
The decrease in ALLOCATOR-BLOOM-A was not linear: 546.9 of the 897.3 million —six out of every ten USDS returned— were moved between 07:33 UTC on September 17 and 07:28 on September 18; previous tranches, ranging from 9.4 to 142.0 million, are detailed in the table.
| Sky Vat Reading (Sep-2026; block and UTC time) | BLOOM-A Debt (M USDS) | BLOOM-A Ceiling (M USDS) | Ceiling − Debt (M USDS) | SPARK-A Debt (M USDS) | SPARK-A Ceiling (M USDS) |
|---|---|---|---|---|---|
| Sep-3, block 25,895,643, 08:40 | 2,585.8 | 3,266 | 680 | 2,915.4 | 4,425 |
| Sep-10, block 25,945,505, 07:30 | 2,443.8 | 3,007 | 563 | 3,166.9 | 4,579 |
| Sep-14, block 25,974,207, 07:30 | 2,434.4 | 3,007 | 573 | 3,303.7 | 4,746 |
| Sep-16, block 25,988,552, 07:30 | 2,312.7 | 3,007 | 694 | 3,484.5 | 4,897 |
| Sep-17, block 25,995,740, 07:33 | 2,237.7 | 2,738 | 500 | 3,529.7 | 4,897 |
| Sep-18, block 26,002,889, 07:28 | 1,690.8 | 2,192 | 501 | 3,464.9 | 5,054 |
| Sep-19, block 26,010,043, 07:23 | 1,688.5 | 2,192 | 503 | 3,579.1 | 5,054 |
| Sep-27, block 26,069,555, 15:01 (re-reading) | 1,671.7 | 2,192 | 520 | 3,569.6 | 5,211 |
While the original vault was being emptied, Grove's new vault, ALLOCATOR-GROVE-A, went from 16.6 to 70.2 million in debt. Grove's net position relative to Sky is therefore −843.8 million, rather than −897.3. Those 53.5 new million coincide with the line that the September 10 executive vote had just expanded from 25 to 100 million, with a buffer of about 15 million that the DC-IAM has been replenishing every 12 hours (the ceiling stood at 85.4 million on the 19th).
The September 27 re-reading completes the movement: ALLOCATOR-GROVE-A remained steady between 70.0 and 70.2 million until the 25th, rose to 85.0 on the 26th, and reached 100.0 million on the 27th (07:30 UTC readings). It stops there because 100 million is exactly its maximum ceiling, leaving the buffer at zero. ALLOCATOR-BLOOM-A continued to drop in parallel, from 1,688.5 to 1,671.7 million, without a single day of increase. Grove's net position against Sky over the three and a half weeks is −830.7 million USDS.
How many JTRSY and BUIDL-I shares did Grove redeem between Sep-3 and Sep-19, 2026?
Grove's Ethereum wallet resides in a contract called ALMProxy (0x491E…A44E), the component of the Diamond PAU (Parallelized Allocation Unit, Grove's allocation unit) which, according to the repository's README, "maintains custody of all funds and routes calls to external contracts." By reading the balanceOf for that contract in the same blocks as the Vat, the drop in debt is mirrored in two assets and two assets only.
| Ethereum Block (Sep-2026; block and UTC time) | JTRSY in Grove's ALMProxy (M tokens) | Total JTRSY Supply (M tokens) | BUIDL-I in Grove's ALMProxy (M tokens) |
|---|---|---|---|
| Sep-3, 25,895,643, 08:40 | 724.97 | 736.43 | 618.38 |
| Sep-10, 25,945,505, 07:30 | 657.71 | 672.31 | 543.78 |
| Sep-14, 25,974,207, 07:30 | 612.90 | 649.90 | 493.88 |
| Sep-16, 25,988,552, 07:30 | 568.09 | 604.95 | 444.07 |
| Sep-17, 25,995,740, 07:33 | 344.09 | 582.55 | 194.11 |
| Sep-18, 26,002,889, 07:28 | 299.30 | 313.75 | 144.15 |
| Sep-19, 26,010,043, 07:23 | 299.30 | 313.75 | 144.17 |
| Sep-27, 26,069,555, 15:01 (re-reading) | 276.91 | 292.71 | 119.26 |
Grove redeemed 425.68 million shares of JTRSY and 474.21 million of BUIDL-I. JTRSY was trading at 1.116 dollars per share on September 15 (the net asset value published by the Centrifuge vault and mirrored by DefiLlama), so the redemption is worth approximately 475.1 million dollars; BUIDL-I is worth 1 dollar, totaling 474.21 million. Total redeemed: 949.3 million dollars against 897.3 million in debt repaid. The 52.0 million difference is not in the ALMProxy —its USDS and USDC balances were zero in all blocks read, including September 27— and remains untracked here: it may be in Grove's Morpho vaults or in monthly cycle payments.
The process did not end on the 19th. On September 21 at 20:34:59 UTC, a single transaction (0x5f0ff79d…) removed 22,389,598.93 JTRSY and 24,999,000.00 BUIDL-I from the ALMProxy simultaneously: another 25.0 and 25.0 million dollars, the same tranche size as the previous seven. With this, the total redeemed between September 3 and 27 rises to 999.3 million dollars in 24 days. As of September 27, the ALMProxy held 276.91 million JTRSY (309.2 million dollars at 1.1168) and 119.26 million BUIDL-I.
The Grove adapter on DefiLlama, which values the ALMProxy balanceOf in dollars, shows symmetrical tranches: approximately 25 million dollars from each fund on September 4, 5, 10, 11, 12, 15, and 16; 250 and 250 on the 17th; 50 and 50 on the 18th; totaling 474.1 million in JTRSY and 474.2 in BUIDL-I. JAAA, the Janus Henderson and Anemoy CLO fund (131.0 million dollars on Ethereum), and STAC (103.4) did not move. Grove exited the T-bill fund and remained in the structured credit fund from the same manager.
Is the 300 million drop for Anemoy on Sep-18, 2026, the same operation as the Grove redemption?
The Anemoy Capital adapter on DefiLlama does not read wallets: it multiplies the total supply of JTRSY by its net asset value. Its series drops from 650.0 million dollars on September 17 to 350.1 on the 18th. On-chain, the JTRSY supply went from 582.55 million shares at 07:33 UTC on the 17th to 313.75 at 07:28 on the 18th: 268.80 million burned, which at 1.116 dollars equals 300.0 million. In the two previous days, 268.79 million had left Grove's ALMProxy. The lag is typical of any tokenized fund redemption: the holder submits the shares and the fund burns them upon settlement. For an aggregator, this produces two entries for a single operation: "Grove −500 million" on the 17th, capturing the afternoon outflows of the 16th, and "Anemoy −300 million" on the 18th, when the fund destroys them. Over the full fortnight, the JTRSY supply fell by 422.67 million shares and Grove redeemed 425.68: 100.7% of the burn, with other holders acting as net buyers of about 3 million. With BUIDL-I, the pattern repeats: the class I supply dropped from 751.55 to 264.54 million (−487.01) and Grove contributed 474.21 — 97.4%.
| Tranche between on-chain readings (Sep-2026; totals based on exact values) | JTRSY Outflow from Grove ALMProxy (M tokens) | JTRSY Burn, Supply Variation (M tokens) | BUIDL-I Outflow from Grove ALMProxy (M tokens) |
|---|---|---|---|
| Sep-3 08:40 → Sep-10 | −67.26 | −64.12 | −74.60 |
| Sep-10 → Sep-14 | −44.81 | −22.41 | −49.90 |
| Sep-14 → Sep-16 | −44.81 | −44.95 | −49.81 |
| Sep-16 → Sep-17 07:33 | −224.00 | −22.40 | −249.96 |
| Sep-17 07:33 → Sep-18 07:28 | −44.79 | −268.80 | −49.96 |
| Sep-18 → Sep-19 07:23 | 0.00 | 0.00 | +0.02 |
| Total Sep-3 → 19 | −425.68 | −422.67 | −474.21 |
| Subsequent tranche, Sep-19 07:23 → Sep-27 15:01 | −22.39 | −21.05 | −24.90 |
A holder-by-holder verification confirms the attribution. The JTRSY transfer log on Blockscout shows exactly three burns between 07:33 UTC on September 17 and 07:28 on September 18, all on the 17th from the Centrifuge balance contract (13:03, 14:16, and 16:20 UTC), totaling 268,794,749.74 JTRSY: to the cent, the sum of the three outflows from Grove's ALMProxy to the fund's deposit contract (September 16 at 14:41 and 20:24, and September 17 at 15:03). No other holder burned JTRSY between the 16th and 18th. Throughout the fortnight, there were 11 burns totaling 426.26 million and 10 outflows from Grove totaling 425.68; the difference is a September 15 burn from another Grove contract (GroveBasin).
The September 21 tranche is verified similarly and explains why the wallet and supply do not move in lockstep. The 22,389,598.93 JTRSY that left the ALMProxy were burned on the 22nd at 13:38:35 UTC (tx 0x2adb7eaa…) and the 24,999,000.00 BUIDL-I at 19:01:47 (tx 0x1231a8f6…). However, on the 21st at 21:00:47, half an hour after Grove's exit, the fund issued 1,343,375.94 new JTRSY to a third party: this is why the supply falls by 21.05 million shares while Grove's wallet falls by 22.39. The Anemoy series on DefiLlama aggregates both and does not distinguish who exited from who entered.
How much USDS did Spark take from Sky between Sep-3 and Sep-19, 2026, and where did it go in SparkLend?
ALLOCATOR-SPARK-A rose from 2,915.4 to 3,579.1 million USDS between September 3 and 19 (07:23 UTC). The ceiling followed via the same automatic module, in steps from 4,425 to 4,579, 4,746, 4,897, and 5,054 million, with one more to 5,210.5 on September 22, as debt hit its peak of 3,738.5 million on the 23rd. The ceiling remains there on the 27th even though debt has dropped to 3,569.6: the DC-IAM only trims it when someone calls the module. The issued USDS goes to the Spark Liquidity Layer, Spark's equivalent of Grove's ALMProxy; its DefiLlama adapter shows where it went: the spUSDS position (USDS deposited in SparkLend) went from 419.6 million dollars on September 3 to 865.7 on the 19th (00:00 UTC points), while RLUSD (Ripple's stablecoin) dropped from 260.8 to 97.1 million.
SparkLend, Spark's lending market, explains why that USDS was needed. Its total value locked rose from 4,248.2 to 5,566.8 million dollars between September 3 and 19 (00:00 UTC) and credit lent grew from 1,977.1 to 2,666.9 million (+689.8). Collateral inflows included wstETH (from 2,874.9 to 3,480.1 million), cbBTC (from 227.1 to 471.7), and WETH (from 147.7 to 376.0); ETH rose 9.2% in that same window (from 2,390.78 to 2,611.56 dollars at 00:00 UTC points), accounting for about 266 of the 605 million added by wstETH, with the rest being deposits. On the borrowing side, on September 19, there were 1,183.7 million dollars in WETH, 898.6 in USDS, 300.3 in USDT, and 208.6 in DAI. The USDS Spark took from Sky met that demand.
Spark did not request anything new from Sky. Its proposals for the September 24 spell (a spell is the package of on-chain changes executed by a vote), published on the 14th, contain recurring transfers to its foundations, USDS for SPK (Spark's token) buybacks, the claim of accumulated reserves in SparkLend, and a literal phrase: "…no rate limit is changed, and no SparkLend reserve parameter is changed." The ballot Sky put to a vote on the 24th confirms this with figures: 865,000 and 45,000 USDS to its two foundations, 972,485 to the SPK buyback executor, and the sweep of accrued SparkLend reserves. The 664 million fit within a 5,054 million line it already possessed.
What did Sky vote on Sep-10, 2026, and what was left to automatic modules?
Sky's executive vote on September 10, 2026, was approved on the 11th at 12:22 UTC and executed on the 13th at 12:42. Its support in SKY is a live figure, not a frozen result: Sky counts the SKY still pointing to that spell, which drops as voters move to the next one. It stood at about 7,080 million on September 19 and about 4,300 on the 27th, with the September 24 executive already at 4,596 million. Its "Adjust Allocator Vault DC-IAM Parameters" section affects two vaults: ALLOCATOR-GROVE-A moves from a 25 to 100 million maximum ceiling, from a 5 to 15 million buffer, and from 24 to 12 hours between increases; ALLOCATOR-PRYSM-A, Osero's vault, moves from a 25 to 100 million ceiling and from a 5 to 15 buffer. Neither ALLOCATOR-BLOOM-A nor ALLOCATOR-SPARK-A appear in that section; the executive only issues them the debt for the August monthly cycle (9.6 and 6.4 million). The vault that dropped 897 million and the one that rose 664 moved under parameters that had already been voted.
The same executive executes the agents' spells: Spark's zeros out 35 rate limits for integrations it no longer uses (Maple, Ethena, Curve, Morpho v1, Superstate funds) and Grove's incorporates a USDG stablecoin vault with a 50 million limit. Neither touches BLOOM-A or SPARK-A.
The subsequent executive on September 24 also does not touch them, and it is the one Grove was waiting for: the only allocator vault in its title is ALLOCATOR-GROVE-A. It was approved on September 26 at 15:22:23 UTC with 4,595.8 million SKY. It raises the maximum ceiling of ALLOCATOR-GROVE-A from 100 to 500 million USDS and the buffer from 15 to 25, leaves the ttl at 43,200 seconds, and its Grove spell sets the maxAmount for USDS burning and USDC→USDS swapping in the Diamond PAU to "Unlimited." What it has not yet done is take effect: as of September 27, it is approved but unexecuted, pending the 48-hour GSM Pause Delay and a modifier that only allows execution Monday through Friday between 14:00 and 21:00 UTC. Its scheduled time is September 28 at 15:22:23 UTC.
The chain confirms this without needing to rely on the voting page. In block 26,069,555, the DC-IAM still shows a 100 million maximum ceiling and a 15 million buffer for ALLOCATOR-GROVE-A, and Grove's Diamond PAU limit contract (0xE016…C0e1) still returns a maxAmount of 15,000,000 USDS for burning, not the infinity approved by the ballot. This is the sequence of the article seen in real-time: the agent exhausts its available ceiling, and the automatic module has no margin left to distribute until the vote is executed.
Grove's own governance also did not vote for a liquidation. Its two September approvals (Target #1, approved on the 3rd and executed through the 16th; Target #2, approved on the 17th and executed since the 18th) raise Diamond PAU limits in both directions: JTRSY entry from 5 to 15 and then to 50 million USDS, USDS issuance and burning to 30 million per day in the first target, and USDS issuance and USDS→USDC swapping from 30 to 50 million per day in the second. These steps were not applied all at once: the registered cBEAM operator raised them with one transaction per day until September 25 at 17:51 UTC, when JTRSY entry, USDS issuance, and USDS→USDC swapping reached the approved 50 million. The forum thread documenting them provides no motive.
Who remains as a holder of JTRSY and BUIDL-I after Grove's September 2026 redemption?
On September 3, 2026, Grove held 98.4% of the JTRSY supply (724.97 out of 736.43 million shares) and 82.3% of the BUIDL-I class on Ethereum (618.38 out of 751.55 million). By the 19th, it held 95.4% of JTRSY (299.30 out of 313.75) and 54.5% of BUIDL-I (144.17 out of 264.54). For JTRSY, the implication is direct: the fund's on-chain size is, within a margin of 14 million shares, the position of a single holder financed by a Sky credit line. The Anemoy series on DefiLlama —820.8 million on September 3, 350.2 on the 19th, and 326.9 on the 27th— measures this single relationship.
In BUIDL-I, Grove's weight was smaller, and the supply drop exceeded its redemption (487.0 vs 474.2 million): other holders redeemed about 13 million between September 3 and 19. By September 27, Grove's share of the class dropped to 49.8%, less than half for the first time. BUIDL-I is one class of the BlackRock fund, which is distributed across multiple chains and classes. In tokenized Treasury fund rankings (BUIDL vs BENJI, OUSG, and USDY), the decline of JTRSY and BUIDL-I in September 2026 stems from a single balance sheet financed by Sky.
What does Grove Labs explain about the redemption and what will be verified on Oct-24, 2026?
No primary source states why Grove redeemed 999 million dollars in 24 days. What Grove Labs has written on the Sky forum are pieces compatible with two different interpretations. On September 10, when proposing the "DPAU Unwind Limits" for the September 24 spell: "Remove the rate bound on the Diamond PAU's two unwind directions — USDS burn and the USDC→USDS swap — so the position can always be unwound at full size." Grove's operational facilitator (Endgame Edge) classified this on the 11th as "no new exposure"; risk advisor BA Labs backed it on the 14th without further comment. On the 16th, Grove delegate YvonPiPi, voting in favor: "…paths that reduce a position are not rate-limited, and the current finite values […] could in principle constrain a full unwind if the position grows."
On September 17, in the same thread, Grove asked Sky to expand ALLOCATOR-GROVE-A from 100 to 500 million and the buffer from 15 to 25, raise the maximum exposure of its JTRSY instance from 50 to 500 million USDS, and lower its capital requirement from 1.5% to 0.5%, with this justification: "The debt ceiling governs the aggregate funding available to the allocator across every path it operates; the ramp steps requested in this cycle deploy more than the ceiling allows, so it is raised in the same window." Read together, they describe an original vault that can be emptied without limit and a new vault requesting space for 500 million and a JTRSY entry of up to 50 million per day. Whether this is a vault-to-vault restructuring or a withdrawal with a small replacement vehicle will be told by the debt, not the forum.
The following eight days added procedural steps but not a single line of reasoning. The two changes not included in the Sky executive —the JTRSY instance and the UniswapV3 facet— were put to a vote in Grove's own Snapshot on September 21. On the 22nd at 00:57 UTC, voting in favor of both, delegate YvonPiPi wrote the phrase that best describes the mechanism from within: "The broader DC-IAM auto-line on the allocator vault functions as the substantive control, bounding aggregate drawdowns while the facet scales." The entity monitoring size is not the vote, but the module. Regarding the reason for the withdrawal, nothing: neither in the spell thread on September 27 nor in the monthly cycle summary, MSC #13, which has not yet been published.
The October 24 test remains, but its starting point should be clarified. On September 27, ALLOCATOR-GROVE-A stands at 100.0 million USDS —below the 300 threshold that would disprove the restructuring narrative— and ALLOCATOR-BLOOM-A has not risen: this combination is exactly what the table calls a disproof. With one crucial detail: the 100 million is the vault's ceiling, not a choice, and the vote to take it to 500 is approved and pending. If on October 24 GROVE-A remains below 300 with 500 available, it will be a result rather than a cap. The other interpretation holds without nuance: SPARK-A is at 3,569.6 million USDS and credit lent on SparkLend is at 2,832.1 million dollars, both above their thresholds.
| Interpretation being tested | What is read on Oct-24, 2026 | Result that disproves it | Starting point, Sep-27, 2026 |
|---|---|---|---|
| Grove restructures from BLOOM-A to GROVE-A | ALLOCATOR-GROVE-A and ALLOCATOR-BLOOM-A debt in the Sky Vat | GROVE-A below 300 M USDS and BLOOM-A not rising: Grove has lost about 900 M in mandate | GROVE-A 100.0 M, which is its ceiling on Sep-27, 2026; BLOOM-A 1,671.7 M and falling. Approved 500 M ceiling pending execution |
| Spark growth is credit demand | ALLOCATOR-SPARK-A debt in the Vat and credit lent on SparkLend | SPARK-A below 3,200 M USDS or SparkLend lending below 2,000 million dollars | SPARK-A 3,569.6 M; SparkLend lending 2,832.1 million dollars |
Both verifications are accessible to any reader with an Ethereum node: ilks from the Vat (0x35D1…492B) returns debt and ceiling for each vault; balanceOf for the ALMProxy and totalSupply for JTRSY (0x8c21…4b86) and BUIDL-I (0x6a9D…9041) return wallet and supply; and the same ilks on the DC-IAM (0xC7Bd…0ba3) returns the maximum ceiling and buffer, which distinguishes an exhausted vault from an empty one. All figures in this article come from those four calls across timed blocks: September 3 at 08:40 UTC, September 19 at 07:23 and 14:33, and September 27 at block 26,069,555 at 15:01. Any cited figure should correspond to the block and its timestamp.
Related articles: USDD Collateral: How to read vaults in a Vat. On-chain credit ranking, with SparkLend measured by margin. How to evaluate a tokenized fund in six dimensions. How to read DefiLlama fields. Monitor your positions on CleanSky — wallets, loans, and portfolio in a single view.