# 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                                                                                                                                                        |
| ------------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `delegator_identifier`         | `string(64)` | A representation of the delegator identifier, which can be either: a hex-encoded public key, or a purse URef, depending on `delegator_identifier_type_id`          |
| `delegator_identifier_type_id` | `uint8`      | Identifier representing the type of the delegator identifier: `0` for PublicKey, `1` for purse URef\`                                                              |
| `public_key`                   | `string(68)` | Public key of the delegator represented as a hexadecimal string (deprecated: use `delegator_identifier` instead, this property will be removed in future versions) |
| `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
{
  "bonding_purse": "uref-2bd212c2b75dbc99a6ac8ea7d543b322967f39132ad7bc2c927cfed21d3fce4a-007",
  "delegator_identifier": "018afa98ca4be12d613617f7339a2d576950a2f9a92102ca4d6508ee31b54d2c02",
  "delegator_identifier_type_id": 0,
  "public_key": "018afa98ca4be12d613617f7339a2d576950a2f9a92102ca4d6508ee31b54d2c02",
  "stake": "10118248961309619",
  "validator_public_key": "0107a9a673f54c231da8a9cf96e041701293e15c7f05dd5e7fddb2678ccb411555"
}
```

## 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](/rest-api/account-info.md)                          | [Account info](https://github.com/make-software/casper-account-info-contract) provided by the delegator |
| `validator_account_info`   | [AccountInfo](/rest-api/account-info.md)                          | [Account info](https://github.com/make-software/casper-account-info-contract) provided by the validator |
| `centralized_account_info` | [`CentralizedAccountInfo`](/rest-api/centralized-account-info.md) | Account information available for known accounts provided by CSPR.cloud team                            |
| `bidder`                   | [`Bidder`](/rest-api/bidder.md)                                   | Bidder auction info of the validator                                                                    |
| `cspr_name`                | `string`                                                          | Primary CSPR.name of the account                                                                        |
| `validator_cspr_name`      | `string`                                                          | Primary CSPR.name of the validator account                                                              |

## Relations

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

| Entity                                | Mapping property       | Description                                                   |
| ------------------------------------- | ---------------------- | ------------------------------------------------------------- |
| [`Account`](/rest-api/account.md)     | `public_key`           | Delegations are made by accounts                              |
| [`Validator`](/rest-api/validator.md) | `validator_public_key` | Delegations are made to validators                            |
| [`Bidder`](/rest-api/bidder.md)       | `validator_public_key` | Delegations can be made to bidders who are not validators yet |

## Endpoints

The `Delegation` entity has the following endpoints:

* [Get account delegations](/rest-api/delegation/get-account-delegations.md)
* [Get purse delegations](/rest-api/delegation/get-purse-uref-delegations.md)
* [Get validator delegations](/rest-api/delegation/get-validator-delegations.md)

## Relation endpoints

None


---

# 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.cspr.cloud/rest-api/delegation.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.
