alina schanz

what a dollar earns onchain this week: 3.6% on aave, 4.4% on compound, and why usds on aave earns 0.15%: versions

every version of this note i stamped, newest first, and the words that changed between two of them.

versions

frozen (utc)kindsha256bytesstatefiles
2026-09-23text · current73b715281cf012,229waiting for a bitcoin blockbytes · proof
2026-09-23page · current357e522c392325,314waiting for a bitcoin blockthe live page · proof
2026-09-21 15:55paged1a8d9d8f29615,952in bitcoin block 968,015bytes · proof
2026-09-15 12:20page9bf77f3752e813,264in bitcoin block 967,123bytes · proof
2026-09-15 11:36page5a0a3109b6e613,287in bitcoin block 967,121bytes · proof
    curl -sLO https://alinaschanz.life/notes/2026-09-15-what-a-dollar-earns.text.html
    curl -sLO https://alinaschanz.life/notes/2026-09-15-what-a-dollar-earns.text.html.ots
    ots verify 2026-09-15-what-a-dollar-earns.text.html.ots

    the words that changed

    struck through: words i took out. marked: words i added.

    2026-09-21 15:552026-09-23

    what a dollar earns onchain this week: 3.6% on aave, 4.4% on compound, and why usds on aave earns 0.15% what a dollar earns and what borrowing one costs on aave v3, spark and compound v3 on 15 september 2026, read from the contracts at one block, with the utilization that explains every rate. 15 september 2026 · berlin · alina schanz question the yield on a dollar, and the … 2026, 11:24 utc. method lendrates reads the rates 1 1 lendrates as of 15 sep 2026: my newest commit before it was 193b6db (10 sep 2026), signed with my key. the code . and the supplied and borrowed amounts from the … in amber, one row per asset and market. 2 the window: at block 25,982,545 on 15 september 2026, 11:24 utc. 3 the command: lendrates --json . asset · market supply borrow used supplied borrowed usdc · compound v3 # 4.40% 5.34% 90% $376m $340m usdc · aave v3 # 3.63% 4.40% 92% $2.39bn $2.20bn usdc · spark # 3.61% 4.36% 92% $26.8m $24.7m usdt · spark # 3.45% 4.04% 95% $320m $304m usdt · aave v3 # 3.30% 4.19% 88% $3.16bn $2.78bn usdt · compound v3 # 3.13% 3.95% 86% $183m $157m dai · aave v3 # 3.12% 4.83% 87% $132m $115m dai · spark # 2.49% 4.13% 68% $308m $208m usds · compound v3 # 4.38% 5.31% 90% $1.8m $1.6m usds · spark # 2.35% 4.00% 66% $1.12bn $735m usds · aave v3 # 0.15% 5.69% 4% $9.1m $0.3m usde · aave v3 # 0.69% 6.55% 14% $657m $94.6m pyusd · aave v3 # 3.98% 5.04% 88% $7.5m $6.6m pyusd · spark # 0.86% 4.12% 24% $181m $42.8m weth · aave v3 # 1.47% 2.08% 84% $5.25bn $4.40bn weth · spark # 1.42% 1.89% 79% $1.40bn $1.11bn weth · compound v3 # 1.28% 1.87% 64% $127m $81.1m observations each market … usdc on compound v3 pays 4.40% at 90% utilization; utilization 4 4 from the limits: "one block. a rate moves with every borrow and every repayment" ; on aave v3 it pays 3.63% at 92%, … same block, i want to hear about it. all revised 23 sep 2026. the links to my code now point to the copies on this site, and short notes rss alina schanz onchain data, berlin. in the scripts behind every number are on github . margin say where a figure came from. the figures and the sentences above did not change.

    2026-09-15 12:202026-09-21 15:55

    lendrates asks question the yield on a dollar, and the cost of borrowing one, on ethereum's large lending contracts themselves, markets at one block, what a deposit earns block. data seventeen asset and what a loan costs: market pairs on aave v3, spark and compound v3 on mainnet, v3, plus the sky savings rate. rate and the dai savings rate, at block 25,982,545, 25,982,545 on 15 september 2026, 11:24 utc, read utc. method lendrates reads the rates and the supplied and borrowed amounts from the contracts with no dashboard in between. eth_call , then turns each protocol's rate into a yearly percentage. the command is under method . finding a stablecoin dollar earned 0.15% to 4.40%, depending on the market and on how much of the pool borrowers had taken. usdc paid 4.40% on compound v3 and 3.63% on aave v3. data supply apy in blue over borrow apy in … · compound v3 1.28% 1.87% 64% $127m $81.1m utilization sets the rate observations each market on the list prices a loan … rate and 1.25% on the dai savings rate. how to read it method lendrates --json python 3.10+, standard library, public rpcs, about thirty seconds. aave v3 and spark run the same pool code: getReserveData gives the supply and the borrow rate, and the totalSupply of each reserve's a-token and debt token gives what is supplied and what is borrowed. compound v3 is one contract per lent token: getUtilization , then getSupplyRate and getBorrowRate at that utilization. sky's ssr() and dsr() are per-second rates that governance sets. every apy compounds its rate every second, the way aave's interface shows it. a supply apy is what workflow in the pool pays at this block, and it moves with every borrow and every repayment. the daily dataset adds repository writes one row per asset and market every night to daily.csv at 00:33 utc, so you can follow a rate over weeks. sources the numbers are aave v3 pool and the contracts' own, read through spark pool , with prices from each pool's own oracle. the compound v3 contracts for usdc, usdt, usds and weth. their dollar sizes use aave's oracle price for the same token. susds for the sky savings rate and sdai for the dai savings rate. a public node; json-rpc node: publicnode, mevblocker, drpc, tenderly or blastapi, tried in that order. limits one block. a rate moves with every borrow and every repayment: six days later, at block 26,026,599, usdc paid 3.77% on compound v3 and 3.76% on aave v3. i leave out rewards paid in other tokens: they change weekly and live outside these contracts. the script holds apy compounds every second. compound's own interface shows the conversion from apr, which reads a little lower. the dollar sizes use each protocol's own rate to a yearly percentage. rerun it lendrates --json python 3.10+, standard library, public rpcs. thirty seconds. oracle price. revised 21 sep 2026. the note now lays out question, data, method, observations, sources and limits. the figures from 15 september did not change; the one line that cites 21 september says so. none of it is advice; advice, and a rate that reads well today is today's rate. describes one block. if a number differs from what the protocol's … same block, i want to hear about it. share all notes rss alina schanz onchain data, berlin. the scripts behind …

    2026-09-15 11:362026-09-15 12:20

    … the sky savings rate. block 25,982,545, 11:24 utc, read from the contracts with no dashboard in between. supply apy in blue … · compound v3 1.28% 1.87% 64% $127m $81.1m utilization sets the rate is the utilization every each market on the list prices a loan off how much the share of the pool is lent out, that borrowers have taken, and pays lenders that rate times the share of the pool that is working, minus the protocol's cut. usdc … times larger. usds on aave pays 0.15% because borrowers have taken 3.7% of it is borrowed: it: $9.1m supplied, $0.3m out. the same dollar, dollar in three markets, markets earns rates a factor of 29 between the best and the worst rate. apart. usde on aave is the other kind of … to borrow something else against it; the deposit is a and its rate are both side effect, and so is the rate. effects. weth earns 1.28% to 1.47% and costs 1.87% … of usds at 66% utilization and pays 2.35%. the for comparison, sky savings rate, for comparison: sky pays 3.60% on its savings rate 3.60%, and 1.25% on the dai savings rate 1.25%. rate. how to read it a supply apy is what the pool pays at this block. block, and it moves with every borrow and every repayment, so the table is a photograph, and repayment. the daily dataset is the film: adds one row per asset and market every night at 00:33 utc. utc, so you can follow a rate over weeks. the numbers are the contracts' own, read through a public node; the script holds the conversion from each protocol's own rate to a yearly percentage is in the script. percentage. rerun it lendrates --json python 3.10+, standard library, public rpcs. thirty seconds. none of it is financial advice, and advice; a rate that reads well today is a rate, not a recommendation. today's rate. if a number does not match differs from what the protocol's own page shows at the …

    the note · all proofs