# Delegation

The `Delegation` entity represents a record of a delegation transaction in the context of Casper Network [Staking vs. Delegating process](https://docs.casper.network/staking/)

## Properties

The `Delegation` entity has the following properties:

| Property               | Type         | Description                                                                                                                         |
| ---------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `public_key`           | `string(68)` | Public key of the delegator represented as a hexadecimal string                                                                     |
| `validator_public_key` | `string(68)` | Public key of the validator represented as a hexadecimal string                                                                     |
| `stake`                | `string`     | Delegation amount in motes. The type is string to avoid overflow in languages that don't support uint64, which is the correct type. |
| `bonding_purse`        | `string(72)` | URef of the purse from which the delegation was made in the `uref-dead...beef-007` format                                           |

**Example**

```json
{
  "public_key": "01a0e7b7b2b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5",
  "validator_public_key": "01a0e7b7b2b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5b6b7b8b9b0b1b2b3b4b5",
  "stake": "1000000",
  "bonding_purse": "uref-550c01b27069f943c354364c49a496b5013ee5bdf61d8644e4f0712cf22410f1-000"
}
```

## Optional properties

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

| Property                 | Type                                                               | Description                          |
| ------------------------ | ------------------------------------------------------------------ | ------------------------------------ |
| `account_info`           | [AccountInfo](https://docs.cspr.cloud/1.0.x/rest-api/account-info) | Account info of delegator public key |
| `validator_account_info` | [AccountInfo](https://docs.cspr.cloud/1.0.x/rest-api/account-info) | Account info of validator public key |

## Relations

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

| Entity                                                          | Mapping property       | Description                      |
| --------------------------------------------------------------- | ---------------------- | -------------------------------- |
| [`Account`](https://docs.cspr.cloud/1.0.x/rest-api/account)     | `public_key`           | Delegations are made by accounts |
| [`Validator`](https://docs.cspr.cloud/1.0.x/rest-api/validator) | `validator_public_key` | Validators can be delegated to   |

## Endpoints

The `Delegation` entity has the following endpoints:

* [Get account delegations](https://docs.cspr.cloud/1.0.x/rest-api/delegation/get-account-delegations)
* [Get validator delegations](https://docs.cspr.cloud/1.0.x/rest-api/delegation/get-validator-delegations)

## Relation endpoints

None
