{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "erc-4626-tokenized-vaults",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/erc-4626-tokenized-vaults/",
  "collection": "ethereum",
  "title": "ERC-4626 vaults: assets, shares and conversion previews",
  "description": "Read the ERC-4626 vault interface by distinguishing assets, shares, previews and withdrawal limits, including why standardization does not guarantee safe yield.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:12:41.505Z",
    "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": "ERC-4626 standardizes an interface for vault shares with a single underlying ERC-20 asset for accounting, deposits and withdrawals. It defines deposit, mint, withdraw, redeem and conversion methods. It does not prescribe a safe investment strategy, guarantee a return or make preview values equivalent to currently available withdrawal liquidity.",
    "claimId": "erc-4626-tokenized-vaults-quick-answer",
    "sourceIds": [
      "eip4626"
    ]
  },
  "keyFacts": [
    {
      "label": "Two units",
      "value": "Assets are underlying-token units; shares represent the vault position.",
      "sourceIds": [
        "eip4626"
      ],
      "id": "two-units",
      "claimId": "erc-4626-tokenized-vaults-fact-two-units"
    },
    {
      "label": "Operation",
      "value": "deposit specifies assets, while mint specifies shares to receive.",
      "sourceIds": [
        "eip4626"
      ],
      "id": "operation",
      "claimId": "erc-4626-tokenized-vaults-fact-operation"
    },
    {
      "label": "Limits",
      "value": "Preview methods and maxWithdraw or maxRedeem answer different questions.",
      "sourceIds": [
        "eip4626"
      ],
      "id": "limits",
      "claimId": "erc-4626-tokenized-vaults-fact-limits"
    }
  ],
  "prerequisites": [
    "yield-vaults"
  ],
  "sections": [
    {
      "id": "example",
      "heading": "Track the share conversion",
      "sourceIds": [
        "eip4626"
      ],
      "paragraphs": [
        "In a simplified vault with 1,200 assets and 1,000 shares, the accounting ratio is 1.2 assets per share. A deposit of 120 assets would correspond to 100 shares before fees, rounding and any implementation-specific offsets.",
        "The ratio can change as the vault earns or loses assets. A fixed share count does not imply a fixed claim in asset units."
      ]
    },
    {
      "id": "preview",
      "heading": "Do not use an ideal conversion as an execution quote",
      "sourceIds": [
        "eip4626"
      ],
      "paragraphs": [
        "convertToShares and convertToAssets describe idealized conversions and exclude some execution conditions. Preview methods model the specified operation with defined fee and rounding requirements.",
        "previewWithdraw must exclude withdrawal limits, while maxWithdraw must account for them. A nonzero conversion does not prove that the owner can withdraw that amount immediately."
      ]
    },
    {
      "id": "implementation",
      "heading": "The interface leaves strategy and risk open",
      "sourceIds": [
        "eip4626",
        "oz-vault"
      ],
      "paragraphs": [
        "A vault can deploy its assets through lending, liquidity provision or another strategy. Losses, administrative changes and external dependencies still depend on the implementation.",
        "Share rounding can also create economic vulnerabilities, including donation-based inflation attacks in vulnerable designs. Standard interfaces improve interoperability, not an automatic safety rating."
      ]
    }
  ],
  "faq": [
    {
      "question": "Are withdraw and redeem identical?",
      "answer": "No. withdraw requests a specified amount of underlying assets and calculates shares to burn; redeem specifies shares and calculates assets received, under the vault’s rules.",
      "sourceIds": [
        "eip4626"
      ]
    }
  ],
  "claims": [
    {
      "id": "erc-4626-tokenized-vaults-quick-answer",
      "articleSlug": "erc-4626-tokenized-vaults",
      "statement": "ERC-4626 standardizes an interface for vault shares with a single underlying ERC-20 asset for accounting, deposits and withdrawals. It defines deposit, mint, withdraw, redeem and conversion methods. It does not prescribe a safe investment strategy, guarantee a return or make preview values equivalent to currently available withdrawal liquidity.",
      "sourceIds": [
        "source-0500eb916f66cd39"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0500eb916f66cd39",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Clarified the single ERC-20 token as the accounting/deposit/withdrawal asset, avoiding an implication that a vault can hold no other strategy assets. Checked deposit/mint and withdraw/redeem inputs.",
          "Clarified that previewWithdraw excludes withdrawal limits whereas maxWithdraw accounts for them. Independently calculated 1200/1000 = 1.2 assets/share and 120 × 1000 / 1200 = 100 shares in the explicitly simplified model; checked rounding/donation vulnerabilities in OpenZeppelin."
        ]
      }
    },
    {
      "id": "erc-4626-tokenized-vaults-fact-two-units",
      "articleSlug": "erc-4626-tokenized-vaults",
      "statement": "Two units: Assets are underlying-token units; shares represent the vault position.",
      "sourceIds": [
        "source-0500eb916f66cd39"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0500eb916f66cd39",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Clarified the single ERC-20 token as the accounting/deposit/withdrawal asset, avoiding an implication that a vault can hold no other strategy assets. Checked deposit/mint and withdraw/redeem inputs.",
          "Clarified that previewWithdraw excludes withdrawal limits whereas maxWithdraw accounts for them. Independently calculated 1200/1000 = 1.2 assets/share and 120 × 1000 / 1200 = 100 shares in the explicitly simplified model; checked rounding/donation vulnerabilities in OpenZeppelin."
        ]
      }
    },
    {
      "id": "erc-4626-tokenized-vaults-fact-operation",
      "articleSlug": "erc-4626-tokenized-vaults",
      "statement": "Operation: deposit specifies assets, while mint specifies shares to receive.",
      "sourceIds": [
        "source-0500eb916f66cd39"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0500eb916f66cd39",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Clarified the single ERC-20 token as the accounting/deposit/withdrawal asset, avoiding an implication that a vault can hold no other strategy assets. Checked deposit/mint and withdraw/redeem inputs.",
          "Clarified that previewWithdraw excludes withdrawal limits whereas maxWithdraw accounts for them. Independently calculated 1200/1000 = 1.2 assets/share and 120 × 1000 / 1200 = 100 shares in the explicitly simplified model; checked rounding/donation vulnerabilities in OpenZeppelin."
        ]
      }
    },
    {
      "id": "erc-4626-tokenized-vaults-fact-limits",
      "articleSlug": "erc-4626-tokenized-vaults",
      "statement": "Limits: Preview methods and maxWithdraw or maxRedeem answer different questions.",
      "sourceIds": [
        "source-0500eb916f66cd39"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0500eb916f66cd39",
          "locator": "Specification; Security Considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Clarified the single ERC-20 token as the accounting/deposit/withdrawal asset, avoiding an implication that a vault can hold no other strategy assets. Checked deposit/mint and withdraw/redeem inputs.",
          "Clarified that previewWithdraw excludes withdrawal limits whereas maxWithdraw accounts for them. Independently calculated 1200/1000 = 1.2 assets/share and 120 × 1000 / 1200 = 100 shares in the explicitly simplified model; checked rounding/donation vulnerabilities in OpenZeppelin."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip4626",
      "label": "Tokenized Vaults",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-4626",
      "locator": "Specification; Security Considerations",
      "note": "Assets, shares, deposits, withdrawals, limits and preview rounding.",
      "version": "EIP/ERC-4626; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.366Z",
      "contentSha256": "0f3b3abdb9e37ef4094f0ad5c6c469a56e888fcc52415d4bf8e657e2b34792ab",
      "recordId": "source-0500eb916f66cd39"
    },
    {
      "id": "oz-vault",
      "label": "ERC-4626",
      "publisher": "OpenZeppelin",
      "url": "https://docs.openzeppelin.com/contracts/5.x/erc4626",
      "locator": "Security concern: Inflation attack; Defending with a virtual offset",
      "note": "Vault share conversion, rounding, donations and inflation-attack defenses.",
      "version": "OpenZeppelin Contracts 5.x",
      "checkedAt": "2026-10-02T17:03:43.088Z",
      "contentSha256": "76a796f770dd8a76bb890dbe91359d0f35582c995e72e1aa809f32b41831005f",
      "recordId": "source-e18b8696025f65d0"
    }
  ],
  "related": {
    "articles": [
      "vault-share-price",
      "vault-inflation-attacks",
      "defi-withdrawal-queues"
    ],
    "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. “ERC-4626 vaults: assets, shares and conversion previews.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/erc-4626-tokenized-vaults/"
}
