---
title: "Get position details"
method: GET
path: "/staking/positions/{id}"
tags: ["Staking"]
---

# Get position details

`GET /staking/positions/{id}`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/staking/positions/{id}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/staking/positions/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns full details for a single staking position: amounts, rewards, status, chain, and vault.

## Path parameters

- `id` string, required

## Response `200`

Position retrieved successfully.

- Delegation
  - `id` string, required: The unique identifier of the staking position
  - `vaultAccountId` string, required: The source vault account to stake from
  - `validatorName` string, required: The destination validator address name
  - `providerName` string, required: The destination validator provider name
  - `chainDescriptor` string, required: The protocol identifier (e.g. "ETH"/ "SOL") to use
  - `amount` string, required: Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked.
  - `rewardsAmount` string, nullable, required: The amount staked in the position, measured in the staked asset unit. Returned as null for chains where reward tracking is not supported (Cosmos-family chains), instead of a numeric value.
  - `dateCreated` string, date-time, required: When was the request made (ISO Date).
  - `dateUpdated` string, date-time, required: When has the position last changed (ISO Date).
  - `status` string, required: The current status.
  - `relatedTransactions` RelatedTransaction[], required: An array of transaction objects related to this position. Each object includes a 'txId' representing the transaction ID and a 'completed' boolean indicating if the transaction was completed.
    - `txId` string, required: The transaction ID
    - `completed` boolean, required: Is the transaction completed or not
  - `validatorAddress` string, required: The destination address of the staking transaction.
  - `providerId` 'kiln' | 'figment' | 'lido' | 'p2p' | 'blockdaemon' | 'galaxy' | 'pierTwo' | 'kraken', required: The unique identifier of the staking provider
  - `availableActions` string[], required: An array of available actions that can be performed. for example, actions like "unstake" or "withdraw".
  - `inProgress` boolean, required: Indicates whether there is an ongoing action for this position related to this request
  - `inProgressTxId` string: The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction.
  - `blockchainPositionInfo` union, required: Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists.
    - SolanaBlockchainData: Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. The type depends on the chainDescriptor value. For Solana (SOL), stake account address. For Ethereum (ETH), an empty object is returned as no specific data is available.
      - `stakeAccountAddress` string, required: The stake account address matching the stakeAccountId.
      - `stakeAccountDerivationChangeValue` number, required: The value of the change level in the BIP32 path which was used to derive the stake account address.
      - `rewardsBreakdown` SolanaRewardsBreakdown: A breakdown of the staking rewards earned by the position.
        - `inflation` string, required: The inflation reward amount earned by the position, measured in the staked asset unit.
        - `mev` string, required: The MEV reward amount earned by the position, measured in the staked asset unit.
        - `lastRewardSyncedAt` string, date-time, required: The last time the rewards were synced (ISO Date).
    - EthereumBlockchainData: Additional fields per blockchain for Ethereum (ETH) - can be empty or missing if not initialized or no specific data is available.
      - `isCompoundingValidator` boolean, required: Is the validator compounding (i.e it was created with compounding validator type).
      - `estimatedActivationTime` string: Estimated time the staked ETH will activate, derived from the beacon-chain deposit queue. Present only while the position is pending/activating; omitted once active.
      - `estimatedSourceExitTime` string, date-time: Estimated time the source validator will exit the active set and stop earning rewards, derived from the beacon-chain consolidation queue. Present only while a consolidation is in progress.
      - `estimatedConsolidationTime` string, date-time: Estimated time the consolidation will complete, i.e. when the source balance is swept to the destination validator, derived from the beacon-chain consolidation queue. Present only while a consolidation is in progress.
      - `estimatedWithdrawalTime` string, date-time: Estimated time the in-flight withdrawal will complete, derived from the beacon-chain exit queue for a full exit or the manual withdrawal queue for a partial one. Present only while a withdrawal is in progress.
    - StEthBlockchainData: Additional fields per blockchain for Staked Ethereum (STETH_ETH) - can be empty or missing if not initialized or no additional info exists.
      - `totalWithdrawableAmount` string, required: The total amount available for withdrawal.
      - `totalInactiveAmount` string, required: The total inactive amount.
  - `relatedRequests` RelatedRequest[]
    - `status` 'deactivating', required: The status of the request
    - `inProgress` boolean, required: Indicates whether there is an ongoing action for this position related to this request
    - `amount` string, required: Amount of tokens
    - `txId` string, required: The transaction ID of the ongoing request

## Other responses

- `400`: Bad request: missing/invalid fields, unsupported amount, or malformed payload.
- `403`: Forbidden: insufficient permissions, disabled feature, or restricted provider/validator.
- `404`: Not found: requested resource does not exist (e.g., position, validator, provider, or wallet).
- `429`: Rate limit exceeded: slow down and retry later.
- `500`: Internal error while processing the request.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
