# Non-fungible token (NFT) ownership

The `NFTTokenOwnership` entity represents a NFT ownership relation between accounts and contract packages, as well as provides the total tokens number.

### Properties

The `NFTTokenOwnership` entity has the following properties:

| Property                | Type         | Description                                                   |
| ----------------------- | ------------ | ------------------------------------------------------------- |
| `owner_hash`            | `string(64)` | Owner hash represented as a hexadecimal string                |
| `contract_package_hash` | `string(64)` | NFT contract package hash represented as a hexadecimal string |
| `owner_type`            | `uint8`      | NFT token owner type: `0` for account, `1` for contract       |
| `tokens_number`         | `uint32`     | Number of NFTs owned by the owner account                     |

**Example**

```json
{
  "contract_package_hash": "0074557b46c7a7c13e0b178e4463f451325129d845e9e494425d39cfd40e619d",
  "owner_hash": "532402a902ee117a772b2471df237346c906eddeb1580e18fa8b71ea559b9d2f",
  "owner_type": 0,
  "tokens_number": 1
}
```

## Optional properties

Depending on the endpoint some of the following optional properties may be included in the `NFTTokenOwnership` entity:

| Property                   | Type                                                                                  | Description                         |
| -------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------- |
| `contract_package`         | [`ContractPackage`](https://docs.cspr.cloud/rest-api/contract-package)                | NFT contract package                |
| `owner_public_key`         | `string(68)`                                                                          | Owner public key if it's an account |
| `account_info`             | [`AccountInfo`](https://docs.cspr.cloud/rest-api/account-info)                        | Owner account info                  |
| `centralized_account_info` | [`CentralizedAccountInfo`](https://docs.cspr.cloud/rest-api/centralized-account-info) | Owner centralized account info      |
| `owner_cspr_name`          | `string`                                                                              | Owner account CSPR.name             |

### Relations

| Entity                                                                  | Mapping property        | Description                                                      |
| ----------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------- |
| [`Contract package`](https://docs.cspr.cloud/rest-api/contract-package) | `contract_package_hash` | NFT token ownership represents NFT contract package token owners |
| [`Account`](https://docs.cspr.cloud/rest-api/account)                   | `owner_hash`            | Account can be a token owner                                     |

### Endpoints

The `NFTTokenOwnership` entity has the following endpoints:

* [Get contract package NFT ownerships](https://docs.cspr.cloud/rest-api/non-fungible-token-ownership/get-contract-package-token-ownership)
* [Get account NFT ownerships](https://docs.cspr.cloud/rest-api/non-fungible-token-ownership/get-contract-package-token-ownership)

### Relation endpoints

None
