{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "money-market-interest-indexes",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/money-market-interest-indexes/",
  "collection": "defi",
  "title": "Lending interest indexes: accruing balances without daily transfers",
  "description": "Understand how lending protocols use cumulative indexes to update supply and debt balances without sending a separate transaction to every account each second.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:15:18.493Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A lending interest index accumulates a rate over time so a protocol can derive current balances from stored scaled balances. Supply and debt can use different indexes and formulas. The result depends on the implementation, elapsed time and rate changes; it is not a promise of a fixed annual return.",
    "claimId": "money-market-interest-indexes-quick-answer",
    "sourceIds": [
      "aave-reserve-logic",
      "aave-math"
    ]
  },
  "keyFacts": [
    {
      "label": "Supply",
      "value": "Aave’s cited implementation exposes normalized income through a liquidity index.",
      "sourceIds": [
        "aave-reserve-logic"
      ],
      "id": "supply",
      "claimId": "money-market-interest-indexes-fact-supply"
    },
    {
      "label": "Debt",
      "value": "Variable debt uses a separate cumulative borrowing index.",
      "sourceIds": [
        "aave-reserve-logic"
      ],
      "id": "debt",
      "claimId": "money-market-interest-indexes-fact-debt"
    },
    {
      "label": "Formula",
      "value": "The cited MathUtils uses linear interest and an approximation for compounded interest.",
      "sourceIds": [
        "aave-math"
      ],
      "id": "formula",
      "claimId": "money-market-interest-indexes-fact-formula"
    }
  ],
  "prerequisites": [
    "utilization-and-borrowing-rates"
  ],
  "sections": [
    {
      "id": "example",
      "heading": "Multiply a scaled balance by its index",
      "sourceIds": [
        "aave-reserve-logic"
      ],
      "paragraphs": [
        "Ignoring fixed-point scale and rounding, a scaled balance of 100 at an index of 1.02 corresponds to 102 underlying units. If the index later becomes 1.03, the balance reads as 103.",
        "The actual contracts use large integer scale factors and specified rounding. The decimal example explains the relationship without reproducing every implementation detail."
      ]
    },
    {
      "id": "updates",
      "heading": "Accrual does not require a payment transaction per holder",
      "sourceIds": [
        "aave-reserve-logic",
        "aave-tokens"
      ],
      "paragraphs": [
        "A balance query can incorporate the latest index even though no ordinary transfer event paid interest to that holder each second. State updates and normalized calculations handle the accumulated amount.",
        "An explorer’s transfer list is therefore not always sufficient to reconstruct an interest-bearing token’s current balance."
      ]
    },
    {
      "id": "scope",
      "heading": "Use the formula for the deployed version",
      "sourceIds": [
        "aave-math",
        "aave-reserve-logic"
      ],
      "paragraphs": [
        "This example cites aave-v3-core v1.19.3, an explicitly versioned implementation. It is not a claim that every present deployment uses identical math.",
        "For a calculation at a block, record the reserve index, last update time, relevant rate and version. A dashboard APR alone may not reproduce the exact integer balance."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does interest appear only when someone sends me new tokens?",
      "answer": "Not necessarily. An indexed token can calculate a growing balance from its stored scaled amount and a cumulative index, without a separate ordinary transfer for each accrual interval.",
      "sourceIds": [
        "aave-tokens",
        "aave-reserve-logic"
      ]
    }
  ],
  "claims": [
    {
      "id": "money-market-interest-indexes-quick-answer",
      "articleSlug": "money-market-interest-indexes",
      "statement": "A lending interest index accumulates a rate over time so a protocol can derive current balances from stored scaled balances. Supply and debt can use different indexes and formulas. The result depends on the implementation, elapsed time and rate changes; it is not a promise of a fixed annual return.",
      "sourceIds": [
        "source-7f081b54ee6558ab",
        "source-59093bf947639a66"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-7f081b54ee6558ab",
          "locator": "getNormalizedIncome; getNormalizedDebt; updateState"
        },
        {
          "sourceId": "source-59093bf947639a66",
          "locator": "calculateLinearInterest; calculateCompoundedInterest"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:18.493Z",
        "reviewer": "automated independent verification — DeFi expansion reviewer",
        "notes": [
          "Inspected getNormalizedIncome, getNormalizedDebt and updateState in pinned v1.19.3 ReserveLogic alongside both MathUtils interest formulas.",
          "Recomputed scaled example 100*1.02=102 and 100*1.03=103. Source tokenization balanceOf includes accrued yield; article qualifies fixed-point rounding and deployment version."
        ]
      }
    },
    {
      "id": "money-market-interest-indexes-fact-supply",
      "articleSlug": "money-market-interest-indexes",
      "statement": "Supply: Aave’s cited implementation exposes normalized income through a liquidity index.",
      "sourceIds": [
        "source-7f081b54ee6558ab"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-7f081b54ee6558ab",
          "locator": "getNormalizedIncome; getNormalizedDebt; updateState"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:18.493Z",
        "reviewer": "automated independent verification — DeFi expansion reviewer",
        "notes": [
          "Inspected getNormalizedIncome, getNormalizedDebt and updateState in pinned v1.19.3 ReserveLogic alongside both MathUtils interest formulas.",
          "Recomputed scaled example 100*1.02=102 and 100*1.03=103. Source tokenization balanceOf includes accrued yield; article qualifies fixed-point rounding and deployment version."
        ]
      }
    },
    {
      "id": "money-market-interest-indexes-fact-debt",
      "articleSlug": "money-market-interest-indexes",
      "statement": "Debt: Variable debt uses a separate cumulative borrowing index.",
      "sourceIds": [
        "source-7f081b54ee6558ab"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-7f081b54ee6558ab",
          "locator": "getNormalizedIncome; getNormalizedDebt; updateState"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:18.493Z",
        "reviewer": "automated independent verification — DeFi expansion reviewer",
        "notes": [
          "Inspected getNormalizedIncome, getNormalizedDebt and updateState in pinned v1.19.3 ReserveLogic alongside both MathUtils interest formulas.",
          "Recomputed scaled example 100*1.02=102 and 100*1.03=103. Source tokenization balanceOf includes accrued yield; article qualifies fixed-point rounding and deployment version."
        ]
      }
    },
    {
      "id": "money-market-interest-indexes-fact-formula",
      "articleSlug": "money-market-interest-indexes",
      "statement": "Formula: The cited MathUtils uses linear interest and an approximation for compounded interest.",
      "sourceIds": [
        "source-59093bf947639a66"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-59093bf947639a66",
          "locator": "calculateLinearInterest; calculateCompoundedInterest"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:18.493Z",
        "reviewer": "automated independent verification — DeFi expansion reviewer",
        "notes": [
          "Inspected getNormalizedIncome, getNormalizedDebt and updateState in pinned v1.19.3 ReserveLogic alongside both MathUtils interest formulas.",
          "Recomputed scaled example 100*1.02=102 and 100*1.03=103. Source tokenization balanceOf includes accrued yield; article qualifies fixed-point rounding and deployment version."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "aave-reserve-logic",
      "label": "Aave V3 ReserveLogic",
      "publisher": "Aave",
      "url": "https://raw.githubusercontent.com/aave/aave-v3-core/v1.19.3/contracts/protocol/libraries/logic/ReserveLogic.sol",
      "locator": "getNormalizedIncome; getNormalizedDebt; updateState",
      "note": "Cumulative supply and borrow indexes update accounting over time.",
      "version": "aave-v3-core v1.19.3",
      "checkedAt": "2026-10-02T17:03:44.467Z",
      "contentSha256": "6b827ea494fa5bb1b38fa9e7db973bd0aed0ee3d53677cac950f6614cb8fd0c9",
      "recordId": "source-7f081b54ee6558ab"
    },
    {
      "id": "aave-math",
      "label": "Aave V3 MathUtils",
      "publisher": "Aave",
      "url": "https://raw.githubusercontent.com/aave/aave-v3-core/v1.19.3/contracts/protocol/libraries/math/MathUtils.sol",
      "locator": "calculateLinearInterest; calculateCompoundedInterest",
      "note": "Protocol-specific simple and approximated compounded interest calculations.",
      "version": "aave-v3-core v1.19.3",
      "checkedAt": "2026-10-02T17:03:44.337Z",
      "contentSha256": "7f73c927e9801debfe0666e2a6364b92f62fd2d58d0c4b485ff04765fd4dc58d",
      "recordId": "source-59093bf947639a66"
    },
    {
      "id": "aave-tokens",
      "label": "Tokenization",
      "publisher": "Aave",
      "url": "https://aave.com/docs/aave-v3/smart-contracts/tokenization",
      "locator": "aToken; VariableDebtToken",
      "note": "Supply receipt and nontransferable debt accounting using interest indexes.",
      "version": "Aave V3 documentation",
      "checkedAt": "2026-10-02T17:03:44.686Z",
      "contentSha256": "8ffed956886dda4a4e36704b1f63b33bf2c270ebecefe048a8cce3bb46d55c10",
      "recordId": "source-8a1758eedafba9ec"
    }
  ],
  "related": {
    "articles": [
      "aave-atokens",
      "variable-debt-tokens",
      "apr-vs-apy"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Lending interest indexes: accruing balances without daily transfers.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/money-market-interest-indexes/"
}
