An October 27 revision returned proposed ERC-8330 from Last Call to Review and changed its optional net asset value aggregation interface. In an October 29 follow-up, the discussion's author detailed a compatibility issue: aggregatedNAV(bytes32,bytes32) keeps its function selector even though the returned data layout has changed.

The return layout changes

The revised specification returns six values: (nav, decimals, navBasis, valuationTimestamp, freshProviderCount, isValuationStale). It removes the former aggregate isPublishStale field and changes the aggregation interface's ERC-165 identifier.

That difference matters when decoding an older deployment's response. The specification says a client using the revised decoder can read the older publication-staleness flag as the new valuation-staleness flag and ignore the older trailing value. It therefore requires checking support for this revision's aggregation interface before decoding. A successful call alone does not establish compatibility.

Freshness is checked when queried

Only eligible provider submissions whose publication time is within maxSubmissionAge of block.timestamp contribute to the aggregate. This window is separate from the stream's publication heartbeat.

The latest aggregation timestamp is the greatest valuation timestamp with a historical quorum of eligible submissions. Under the revision, that timestamp must also retain a fresh quorum when queried. Otherwise aggregatedNAV reverts, without falling back to an older valuation timestamp.

As submissions age out, the contributing set can shrink and its lower median can change while quorum remains. Once fresh quorum disappears, the aggregate becomes unavailable. Recent publication and recent valuation remain separate: a returned aggregate can still report isValuationStale = true.

The change concerns a Review-stage ERC interface, with aggregation optional. The document standardizes reported valuation data; it does not calculate NAV or establish an executable market price.