# Value

## ValuationHandler

The core contract for value calculations and conversions.

See [Share Value](/onyx-protocol/architecture/share-value.md) 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](/onyx-protocol/contract-implementations/value.md)

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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enzyme.finance/onyx-protocol/contract-implementations/value.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
