> For the complete documentation index, see [llms.txt](https://docs.kpk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kpk.io/funds/infrastructure/core-concepts/nav.md).

# NAV

The **Net Asset Value (NAV)** is the **total USD value of all assets held by the fund across every chain**. It is the basis for pricing shares and for the amounts exchanged during subscriptions and redemptions.

## NAV is computed onchain

Each chain has its own **NAV Calculator** contract, which:

* Reads the Portfolio Safe's portfolio balances directly from token contracts or via **balance adapters** (for positions not held as plain ERC-20 tokens).
* Prices those balances using **price feeds** (Chainlink, Redstone, API3, or custom composite feeds).
* Produces a chain-local NAV, **normalized to 8 decimals**.

An offchain worker aggregates the per-chain NAV values into a single global NAV. This hybrid model combines transparent onchain valuation with consistent multichain accounting. For the full contract reference, see [Onchain Accounting](/funds/infrastructure/onchain-accounting.md).

<figure><img src="/files/ZpgLMgURUKCGuTPKCWcs" alt=""><figcaption></figcaption></figure>

## From NAV to a settlement price

The `kpkShares` contract does **not** read NAV itself. Instead, when an operator settles a batch of requests, they pass a **share price** — the global NAV divided by circulating supply — into `processRequests(...)`. That price is denominated in **normalized USD units (8 decimals)** and is used to convert between assets and shares for every request in the batch.

After a successful settlement, the contract stores the price as the **last settled price** for that asset:

```solidity
// last settled price per share, in 8-decimal USD; 0 if never settled
function getLastSettledPrice(address asset) external view returns (uint256);
```

The last settled price has two uses:

* It backs `previewSubscription` / `previewRedemption` when callers pass `sharesPrice = 0`, so integrators can estimate amounts without sourcing a live price (reverts `NoStoredPrice` if none exists yet).
* It anchors the **price-deviation guard** below.

## Price-deviation guard

To contain operator error or manipulation, each settlement price is checked against the last settled price for that asset:

```
deviationBps = abs(newPrice - lastPrice) * 10_000 / lastPrice
```

If the deviation exceeds **3000 bps (30%)**, `processRequests` reverts with `PriceDeviationTooLarge`. The first settlement for an asset has no prior price and is therefore not checked.

{% hint style="warning" %}
A NAV reading should only be used for subscriptions/redemptions when it is **complete** — for example, when no cross-chain transfer is mid-flight. See [Bridging](/funds/infrastructure/core-concepts/bridging.md) and [Calculate share price](/funds/integration/calculate-share-price.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.kpk.io/funds/infrastructure/core-concepts/nav.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
