# Share Value

## Core Concepts

The Onyx valuation system is designed to aggregate diverse **positions** into a single **value**.

### Positions

**Positions** are totally arbitrary and can be:

* on-chain (e.g., ERC20 tokens, NFT, RWA)
* off-chain (e.g., bank account balance, real estate appraisal)
* cross-chain
* on EVM chain or non-EVM chain
* debts (e.g., pro-rata management costs)
* credits (e.g., pro-rata rewards)

### Value

**Value** is ALWAYS quoted:

* in the "**value asset**" (e.g., "USD") set in `Shares`
* with 18-decimal precision (e.g., 1e18 = $1)

### Share Value vs Share Price

The system distinguishes between two related but different concepts:

**Share Value**: The **net value per share**, inclusive of all positions and fees

**Share Price**: The issuance rate for deposits and redemptions, which may include premiums, discounts, or other repricing behavior

Generally, **share value** and **share price** are the same, except where value is 0, in which case price defaults to one unit of the value asset (i.e., `1e18`).

### Timestamps

**Share value** and **share price** include a timestamp indicating when the calculation was performed. It is then the responsibility of consumers to assess the staleness of the timestamp.

## Share Value Calculations

Value calculations are handled by `ValuationHandler`.

There are three categories of value that are aggregated:

1. **Tracked positions**: holdings or liabilities that are explicitly added to `ValueInterpreter` via `IPositionTracker` instances. These are automatically reported during share value updates.
2. **Untracked positions**: any holdings or liabilities not added as (1). These are self-reported during share value updates.
3. **Unclaimed fees**: any fees that have been assessed but not transferred to the recipient

### Basic formula

value = tracked positions + untracked positions - unclaimed fees

share value = value / total shares

## Share Value Update Flow

See [Share Value Update](/onyx-protocol/general-flows/share-value-update.md)


---

# 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/architecture/share-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.
