# Asset Registry Contract

* **Smart Contract:** globally across all SRC20
* **Created:** pre-exists / created only once
* **Purpose:** Registry of asset data for all SRC20 tokens (meta data, esp. NAV)
* **Example:**  [On Ropsten](https://ropsten.etherscan.io/address/0x54f9b26edc46bd4beaf70ab2771b7ec178241932#code) &#x20;

## Feature Description

**Glossary**

| Item                  | Description                                                                                                                                                                                                                                                                                                                                                                                       |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| KYA (Know Your Asset) | The intent of KYA is to create cryptographically-proven single-source-of-truth for metadata of a specific SRC20 and the asset it represents; token issuers can add and update dozens of parameters and attributes of their project, store them on a website (URL) or IPFS file; this allows investors to have unfettered access to a full history of data change over the life-cycle of the token |
| NAV (NetAssetValue)   | NAV describes the value of the asset which is tokenized by a specific SRC20; it’s a common value in capital markets to describe the value of an asset and is based on underlying reports and assessments about the asset; as NAV represents the value of assets on the Swarm network it is used as the key value to determine the required SWM staking amounts for each SRC20 token               |

**Read Functions**

| Function                                                                            | Description                                                                                    |
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `getNetAssetValueUSD()`                                                             | Returns the currently registered NAV for a specific SRC20                                      |
| `_src20Factory()` returns `(address)`                                               | Returns the address of the `SRC20 Factory` contract                                            |
| `owner()` returns `(address)`                                                       | Returns the address of the SRC20 Factory contract                                              |
| `isOwner()` returns `(bool)`                                                        | Returns *true* if the caller is the contract owner                                             |
| `assetList()` returns `kyaHash(bytes32), kyaUrl(string), netAssetValueUSD(uint256)` | Returns all KYA data (NAV, KYA hash, KYA URL) registered in this contract for a specific SRC20 |
| `getKYA()` returns `(bytes32), (string)`                                            | Returns the KYA data (KYA hash, KYA URL) registered in this contract for a specific SRC20      |

**Write Functions**

| Function                                          | Description                                                                                         |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `addAsset()`                                      | Creates a new record for of KYA data (NAV, KYA hash, KYA URL) for a specific SRC20 in this contract |
| `renounceOwnership()`                             | Contract owner can renounce ownership of the contract                                               |
| `updateNetAssetValueUSD()`                        | Updates the NAV value for a specific SRC20                                                          |
| `TransferOwnership()` returns `newOwner(address)` | Transfers ownership of this contract to another address                                             |
| `udateKYA()`                                      | Updates the KYA data (KYA hash, KYA URL) registered in this contract for a specific SRC20           |


---

# 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.swarmnetwork.org/swarm-protocol/src20/asset-registry-contract.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.
