Skip to content

built Built. This is a decision record, not documentation.

What is still current: This is the verification record for the payout assets and block-pinned conversions used for the portfolio's multi-strategy fund BALANCES. The earned-yield equivalent its body weighs no longer exists: Yield earned is stated in the fund's own ETH or USD book.

Landed: Companion evidence for PR #885

Header updated 2026-09-16. The body below is frozen history. All plans.

Redemption display evidence ​

Research for the portfolio redemption-unit change, 2026-09-16. This describes unit identity and valuation, not a guaranteed executable withdrawal quote. See the implementation plan.

Pinned contract reads ​

Public Ethereum RPC https://ethereum-rpc.publicnode.com, block 0x18c95f3 (25,990,643). Read-only eth_call; all calls in the following table used the same explicit block. asset() selector 0x38d52e0f, decimals() selector 0x313ce567.

FundShare contractasset() resultShare decimalsDisplay asset
Fluid Lite ETH0xa0d3707c569ff8c87fa923d3823ec5d81c98be780xae7ab96520de3a18e5e111b5eaab095312d7fe8418stETH
YO ETH0x3a43aec53490cb9fa922847385d82fe25d0e9de70xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc218WETH
IPOR Liquity Carry0xb9e806e8f2d94c015ffefa90cd24ecce18f1663c0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc220WETH
Fluid Lite USD0x273da948aca9261043fbdb2a857bc255ecc290120xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb4818USDC
YO USD0x0000000f2eb9f69274678c76222b35eec7588a650xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb486USDC
Yearn V3 USD0x696d02db93291651ed510704c9b286841d5069870xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb486USDC
Treehouse ETH0xd11c452fc99cf405034ee446803b6f6c1f6d5ed80x1b6238e95bbcabee58997c99badd4154ad68ba9218wstETH, established separately below

The ether.fi Liquid ETH Accountant, 0x0d05d94a5f1e76c18fbeb7a13d17c8a314088198, returns WETH (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) from base() (0x5001f3b5) at this block. The official ETH Yield Vault page links that Accountant to our fund share 0xf0bb20865277abd641a307ece5ee04e79073416c.

These calls establish current contract configuration. Historical payout-policy changes, if discovered, require explicit handling rather than pretending this observation establishes all past configurations.

earnETH direct payout quote ​

Additional read-only calls at the same block to the configured Mellow Oracle 0xada1f4c24603ab2fe5abd35bcd12370e98a20358 establish a direct wstETH quote:

getReport quoteDecoded priceD18Human quote units per earnETHReport timestampSuspicious
ETH sentinel 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9831024393035484421.01718799590042951789543847false
wstETH 0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca012230773598493171510.81760977091686151789543847false

getReport(stETH) reverts. The 18/18-decimal quote calculation is 1e18 / priceD18.

At that same block wstETH stEthPerToken() is 1.2441763842073688. Dividing the ETH oracle NAV by this live wrapper rate yields 0.8175593178040046 wstETH per earnETH, around 0.00617% below the direct payout quote. Thus pinning reads to the same block does not make their effective oracle vintages identical. For earnETH balance, prefer shares multiplied by the direct valid wstETH quote at the observed block; keep the existing book valuation unchanged. Review how earned-yield equivalents choose their denomination rate and document the distinction. Do not claim an indirect ETH-to-wstETH conversion is necessarily the exact quoted payout amount.

Special routes and primary documentation ​

  • Lido Earn ETH: Lido Earn documentation explicitly identifies wstETH as the withdrawal token. The current fund registry quotes its NAV in ETH. Those are different units; the portfolio display therefore uses the direct wstETH oracle quote for balance and labels it wstETH. stETH must not be described as the documented direct payout.
  • Lido Earn USD: the same Lido documentation identifies USDC withdrawal. This agrees with the existing Mellow USDC quote configuration for 0x4ce1ac8f43e0e5bd7a346a98af777bf8fbea1981.
  • Treehouse ETH: token accounting states denomination in wstETH; redemption process identifies wstETH as the claimed withdrawal asset. The contract's asset() is an internal accounting token, so a generic asset()-to-ticker mapping is insufficient. The existing getter composes its conversion result with the Lido wrapper rate into ETH; display should remove that extra denomination conversion. Quoted redemption value is an estimate: final settlement and route fees can change execution proceeds.
  • ether.fi Liquid ETH: official withdrawal guide confirms both wETH and weETH as selectable withdrawal assets. Choose WETH as the canonical display route because it is a supported exit and agrees with the verified Accountant base. Do not imply it is the only available exit.
  • Fluid Lite funds: official vault features describes ERC-4626 and redeemable receipt tokens. The pinned contract reads above establish the exact underlying token for each covered vault.
  • YO funds: official core contracts documents the ERC-4626 underlying-asset redemption mechanism (including asynchronous execution). The pinned reads establish WETH and USDC for the specific Ethereum vault addresses used by creddit.

Complete display coverage ​

FundPortfolio readerPayout displayBook
Fluid Lite ETHERC-4626stETHETH
Lido Earn ETHwalletwstETHETH
YO ETHERC-4626WETHETH
ether.fi Liquid ETHwalletWETH (canonical among supported exits)ETH
Treehouse ETHwalletwstETHETH
IPOR Liquity CarryERC-4626WETHETH
Fluid Lite USDERC-4626USDCUSD
YO USDERC-4626USDCUSD
Yearn V3 USDERC-4626USDCUSD
Lido Earn USDwalletUSDCUSD

Payout token decimals: stETH/WETH/wstETH 18, USDC 6. The current registry already declares these, but the implementation should verify or assert token identity and scales rather than borrowing fund share decimals. In particular, IPOR's 20 share decimals and Fluid Lite USD's 18 share decimals differ from their payout scales.

Private documentation. creddit.xyz