# Value

## ValuationHandler

The core contract for value calculations and conversions.

See [share-value](https://docs.enzyme.finance/onyx-protocol/architecture/share-value "mention") for the mechanics of share value updates.

Config:

* `positionTrackers`: instances of `IPositionTracker` that are called during share value updates to aggregate value that is tracked on-chain
* "**asset rates**": rates of each asset used within the system (deposits, redemptions, fees), quoted in the [Shares value asset](https://docs.enzyme.finance/onyx-protocol/contract-implementations/value)

Notes:

* **asset rates** must always be updated prior to updating share value, as the latter uses the former in its calculations
* for a constant **asset rate** (e.g., 1 USDC = $1), expiry can be set to the max value, leaving no need for future updates

## Position Trackers

### AccountERC20Tracker

Tracks and returns the value of specified ERC20 tokens held by a specific account.

Config:

* `account`: The account for which to report the value of held `assets`&#x20;
* `assets`: The ERC20 tokens to report

### LinearCreditDebtTracker

Tracks and returns the value of arbitrary line-items representing debts and/or credits, which can be written-down linearly over any durations.
