# Account

The `Account` entity represents the account observed in the network activity. For example, when the corresponding public key was passed as a deploy argument. Because of that, an `Account` may not necessarily have a purse and on-chain balance.

## Properties

The `Account` entity has the following properties:

| Property          | Type         | Description                                                                                        |
| ----------------- | ------------ | -------------------------------------------------------------------------------------------------- |
| `public_key`      | `string(68)` | Account public key represented as a hexadecimal string. Primary account identifier                 |
| `account_hash`    | `string(64)` | 32-byte hash of the `public_key` represented as a hexadecimal string. Secondary account identifier |
| `main_purse_uref` | `string(73)` | Account main purse URef in the `uref-dead...beef-007` format                                       |
| `balance`         | `uint64`     | Account main purse balance in motes                                                                |

**Example**

```json
{
  "account_hash": "fa12d2dd5547714f8c2754d418aa8c9d59dc88780350cb4254d622e2d4ef7e69",
  "balance": 1325092768520378,
  "main_purse_uref": "uref-bb9f47c30ddbe192438fad10b7db8200247529d6592af7159d92c5f3aa7716a1-007",
  "public_key": "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca"
}
```

## Optional properties

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

| Property                   | Type                                                                                        | Description                                                                                                 |
| -------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `auction_status`           | `string`                                                                                    | Account auction status: `inactive_bidder`, `active_bidder`, `active_validator`, `pending_validator`         |
| `delegated_balance`        | `uint64`                                                                                    | Total funds delegated across all validators                                                                 |
| `staked_balance`           | `uint64`                                                                                    | Total funds staked as validator                                                                             |
| `undelegating_balance`     | `uint64`                                                                                    | Total undelegated funds that will be returned to the account main purse after the 7 era lockdown period     |
| `account_info`             | [`AccountInfo`](https://docs.cspr.cloud/1.3.x/rest-api/account-info)                        | [Account info](https://github.com/make-software/casper-account-info-contract) provided by the account owner |
| `centralized_account_info` | [`CentralizedAccountInfo`](https://docs.cspr.cloud/1.3.x/rest-api/centralized-account-info) | Account information available for known accounts provided by CSPR.cloud team                                |

## Relations

The `Account` entity has the following relations with other entities:

| Entity                                                                                                                                                            | Mapping property                            | Description                                                                                                                                               |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`AccountInfo`](https://docs.cspr.cloud/1.3.x/rest-api/account-info)                                                                                              | `account_hash`                              | Account can have account info data if provided by the owner to the [Account Info contract](https://github.com/make-software/casper-account-info-contract) |
| [`Bidder`](https://docs.cspr.cloud/1.3.x/rest-api/bidder)                                                                                                         | `public_key`                                | Account can be a bidder in the auction                                                                                                                    |
| [`Contract package`](https://docs.cspr.cloud/1.3.x/rest-api/contract-package)                                                                                     | `owner_public_key`                          | Account can deploy contracts to the network                                                                                                               |
| [`Deploy`](https://docs.cspr.cloud/1.3.x/rest-api/deploy)                                                                                                         | `caller_public_key`                         | Account can call deploys on the network                                                                                                                   |
| [`Delegation`](https://docs.cspr.cloud/1.3.x/rest-api/delegation)                                                                                                 | `proposer_public_key`                       | Account can have delegations to validators                                                                                                                |
| [`Delegator reward`](https://docs.cspr.cloud/1.3.x/rest-api/delegator-reward)                                                                                     | `public_key`                                | Account can receive delegator rewards                                                                                                                     |
| [`Fungible token ownership`](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/fungible-token-ownership/README.md) | `owner_hash`                                | Account can own fungible tokens                                                                                                                           |
| [`Fungible token action`](https://docs.cspr.cloud/1.3.x/rest-api/fungible-token-action)                                                                           | `from_hash`, `to_hash`                      | Account can be on the sending or receiving end of a fungible token action                                                                                 |
| [`NFT`](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/non-fungible-token/README.md)                            | `owner_hash`                                | Account can own NFTs                                                                                                                                      |
| [`NFT action`](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/non-fungible-token-action/README.md)              | `from_hash`, `to_hash`                      | Account can be on the sending or receiving end of a fungible token action                                                                                 |
| [`NFT ownership`](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/non-fungible-token-ownership/README.md)        | `owner_hash`                                | Account can own multiple NFTs in one NFT contract                                                                                                         |
| [`Transfer`](https://docs.cspr.cloud/1.3.x/rest-api/transfer)                                                                                                     | `initiator_account_hash`, `to_account_hash` | Account can initiate transfers and be a transfer recipient                                                                                                |
| [`Validator`](https://docs.cspr.cloud/1.3.x/rest-api/validator)                                                                                                   | `public_key`                                | Account can be a validator                                                                                                                                |

## Endpoints

The `Account` entity has the following endpoints:

* [Get account](https://docs.cspr.cloud/1.3.x/rest-api/account/get-account)
* [Get accounts](https://docs.cspr.cloud/1.3.x/rest-api/account/get-accounts)

## Relation endpoints

The `Account` entity has the following relation endpoints:

* [Get account contract packages](https://docs.cspr.cloud/1.3.x/rest-api/contract-package/get-account-contract-packages)
* [Get account delegations](https://docs.cspr.cloud/1.3.x/rest-api/delegation/get-account-delegations)
* [Get account delegation rewards](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/delegator-reward/get-account-delegation-rewards/README.md)
* [Get total account delegation rewards](https://github.com/make-software/casper-middleware/blob/documentation-1.3.x/docs/public/rest-api/delegator-reward/get-account-total-delegation-rewards/README.md)
* [Get account deploys](https://docs.cspr.cloud/1.3.x/rest-api/deploy/get-account-deploys)
* [Get account fungible token ownership](https://docs.cspr.cloud/1.3.x/rest-api/fungible-token-ownership/get-account-fungible-token-ownership)
* [Get account fungible token actions](https://docs.cspr.cloud/1.3.x/rest-api/fungible-token-action/get-account-token-actions)
* [Get account NFTs](https://docs.cspr.cloud/1.3.x/rest-api/non-fungible-token/get-account-tokens)
* [Get account NFT actions](https://docs.cspr.cloud/1.3.x/rest-api/non-fungible-token-action/get-account-token-actions)
* [Get account transfers](https://docs.cspr.cloud/1.3.x/rest-api/transfer/get-account-transfers)
