openapi: 3.1.0 info: title: Polkadot REST Account Staking API description: High-performance Rust REST API for Substrate/Polkadot blockchain data. Drop-in replacement for substrate-api-sidecar. contact: url: https://github.com/paritytech/polkadot-rest-api license: name: GPL-3.0-or-later version: 0.1.3 servers: - url: http://localhost:8080/v1 description: Localhost tags: - name: Staking paths: /api/scan/account/reward_slash: post: consumes: - application/json description: Returns paginated staking reward and slash records for one account, with optional category and block-range filters. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.rewardSlashParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.AccountEventJson' type: array type: object type: object summary: List reward and slash records tags: - Staking x-synonyms: - reward - slash - staking - scan - account - penalty - slashing - wallet - address - user /api/scan/daily/reward_payout: post: consumes: - application/json description: Returns reward payouts aggregated by date for global dashboard and chart-center views. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.dailyRewardPayoutParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.DailyRewardPayoutJson' type: array type: object type: object summary: Get daily reward payout totals tags: - Staking x-synonyms: - daily - reward - payout - chart - aggregate - staking - scan /api/scan/daily/reward_slash: post: consumes: - application/json description: 'Returns daily reward/slash aggregates with optional account, category, and date-range filters. This API only supports networks with the staking frame pallet.' parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.dailyRewardSlashParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.DailyRewardSlashJson' type: array type: object type: object summary: Get daily reward and slash aggregates tags: - Staking x-synonyms: - daily - reward - slash - data - staking - scan - penalty - slashing /api/scan/staking/era_stat: post: consumes: - application/json description: Returns paginated validator era statistics for one account. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.eraStatParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.ValidatorStatJson' type: array type: object type: object summary: List validator era statistics tags: - Staking x-synonyms: - era - stat - staking - scan /api/scan/staking/nominator: post: consumes: - application/json description: Returns staking details for one nominator account. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.nominatorParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: $ref: '#/definitions/subscan_internal_model.NominatorDetail' type: object summary: Get nominator details tags: - Staking x-synonyms: - nominator - staking - scan - delegator - staking participant /api/scan/staking/nominators: post: consumes: - application/json description: Returns the nominators backing the specified validator account. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.nominatorsParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.NominatorJson' type: array type: object type: object summary: List nominators for a validator tags: - Staking x-synonyms: - nominators - staking - scan /api/scan/staking/total_reward: post: consumes: - application/json description: Returns the summed staking rewards for one account, with optional block-range or date-range filters. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.stakingRewardParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: sum: type: number type: object type: object summary: Get staking reward totals tags: - Staking x-synonyms: - staking - reward - sum - scan - total /api/scan/staking/unbonding: post: consumes: - application/json description: Returns the current unbonding schedule for one staking account. This API only supports networks with the staking frame. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.unbondingParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: additionalProperties: items: $ref: '#/definitions/subscan_libs_substrate_derive.Unbonding' type: array type: object type: object summary: List unbonding records tags: - Staking x-synonyms: - unbonding - staking - scan /api/scan/staking/validator: post: consumes: - application/json description: Returns staking details for one validator stash address. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.validatorParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: info: $ref: '#/definitions/subscan_internal_model.ValidatorJson' type: object type: object summary: Get validator details tags: - Staking x-synonyms: - validator - staking - scan - staker - node operator /api/scan/staking/validator/bond_stat: post: consumes: - application/json description: Returns era-level bond statistics for one validator stash address. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.bondStatParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: list: items: $ref: '#/definitions/subscan_internal_model.EraBondStat' type: array type: object type: object summary: Get validator bond statistics tags: - Staking x-synonyms: - validator - bond - stat - staking - scan - staker - node operator /api/scan/staking/validator/commission_history: post: consumes: - application/json description: Returns paginated commission-history records for one validator stash address. This API only supports networks with the staking frame pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.commissionHistoryParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.StakingCommissionHistoryJson' type: array type: object type: object summary: Get validator commission history tags: - Staking x-synonyms: - validator - commission - history - staking - scan - staker - node operator /api/scan/staking/validators: post: consumes: - application/json description: Returns a paginated validator list with optional blocked and commission-range filters. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.validatorsParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.ValidatorJson' type: array type: object type: object summary: List validators tags: - Staking x-synonyms: - validators - staking - scan /api/scan/staking/voted: post: consumes: - application/json description: Returns validators voted by the specified account. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.votedParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: list: items: $ref: '#/definitions/subscan_internal_model.AccountNominateList' type: array type: object type: object summary: List account-voted validators tags: - Staking x-synonyms: - account-voted - validators - staking - scan - voted /api/scan/staking/waiting: post: consumes: - application/json description: Returns validators waiting in the staking queue, with optional commission-range sorting. This API only supports networks with the staking frame or parachain-staking pallet. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.waitingValidatorsParams' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.ValidatorWaiting' type: array type: object type: object summary: List waiting validators tags: - Staking x-synonyms: - waiting - validators - staking - scan /api/v2/scan/account/reward_slash: post: consumes: - application/json description: Returns paginated reward/slash records for an account with category, claim, and block-range filters. parameters: - description: params in: body name: params required: true schema: $ref: '#/definitions/internal_server_http.rewardSlashV2Params' produces: - application/json responses: '200': description: OK schema: allOf: - $ref: '#/definitions/internal_server_http.J' - properties: data: properties: count: type: integer list: items: $ref: '#/definitions/subscan_internal_model.StakingAccountEventJson' type: array type: object type: object summary: List account reward and slash records tags: - Staking x-synonyms: - account - reward - slash - records - staking - scan - wallet - address - user - penalty - slashing /accounts/{accountId}/staking-info: get: tags: - Staking summary: Get staking information for a _Stash_ account. description: Returns information about a _Stash_ account's staking activity. Replaces `/staking/{address}` from versions < v1.0.0. The _Stash_ account can be either a validator or nominator account. operationId: getStakingSummaryByAccountId parameters: - name: accountId in: path description: SS58 address of the account. Must be a _Stash_ account. required: true schema: format: SS58 type: string - name: at in: query description: Block at which to query the staking info for the specified account. required: false schema: type: string description: Block identifier, as the block height or block hash. format: unsignedInteger or $hex - name: useRcBlock in: query description: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s) for retrieving staking info. Only supported for Asset Hub endpoints. Requires 'at' parameter to specify the relay chain block. When used, returns an array of response objects (one for each Asset Hub block found) or empty array if none found. required: false schema: type: boolean description: When set to 'true', uses relay chain block mode with the 'at' parameter. - name: useRcBlockFormat in: query description: Controls the response format when using 'useRcBlock=true'. When set to 'object', wraps the response in an object containing relay chain block info ('rcBlock') and the parachain data array ('parachainDataPerBlock'). When set to 'array' or omitted, returns the standard array format. Only valid when 'useRcBlock=true' is specified. required: false schema: type: string enum: - array - object description: Response format - 'array' (default) returns standard array, 'object' wraps response with rcBlock info. - name: includeClaimedRewards in: query description: When set to `false`, the `claimedRewards` field is not included in the response. required: false schema: type: string format: boolean default: true responses: '200': description: successful operation content: application/json: schema: oneOf: - $ref: '#/components/schemas/AccountStakingInfo' - type: array items: $ref: '#/components/schemas/AccountStakingInfo' description: Returns a single object when using standard parameters. Returns an array when using 'useRcBlock' parameter (array contains one object per Asset Hub block found, or empty array if none found). '400': description: invalid blockId supplied for at query param, or invalid parameter combination content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: account not found content: application/json: schema: $ref: '#/components/schemas/Error' /accounts/{accountId}/staking-payouts: get: tags: - Staking summary: Get payout information for a _Stash_ account. description: 'Returns payout information for the last specified eras. If specifying both the depth and era query params, this endpoint will return information for (era - depth) through era. (i.e. if depth=5 and era=20 information will be returned for eras 16 through 20). **Asset Hub Migration Support:** For Asset Hub chains that have migrated staking from the relay chain, this endpoint automatically handles era query routing: - **Pre-migration eras**: Queries historical data from the relay chain - **Post-migration eras**: Queries current data from Asset Hub - **Cross-migration queries**: Automatically splits the era range and combines results from both chains **Note:** The `nominator*` fields correspond to the address being queried, even if it is a validator''s _Stash_ address. This is because a validator is technically nominating itself. ' operationId: getStakingPayoutsByAccountId parameters: - name: accountId in: path description: SS58 address of the account. Must be a _Stash_ account. required: true schema: format: SS58 type: string - name: at in: query description: Block at which to query staking payouts. required: false schema: type: string description: Block height (as a non-negative integer) or hash (as a hex string). format: unsignedInteger or $hex - name: useRcBlock in: query description: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s) for retrieving staking payouts. Only supported for Asset Hub endpoints. Requires 'at' parameter to specify the relay chain block. When used, returns an array of response objects (one for each Asset Hub block found) or empty array if none found. required: false schema: type: boolean description: When set to 'true', uses relay chain block mode with the 'at' parameter. - name: useRcBlockFormat in: query description: Controls the response format when using 'useRcBlock=true'. When set to 'object', wraps the response in an object containing relay chain block info ('rcBlock') and the parachain data array ('parachainDataPerBlock'). When set to 'array' or omitted, returns the standard array format. Only valid when 'useRcBlock=true' is specified. required: false schema: type: string enum: - array - object description: Response format - 'array' (default) returns standard array, 'object' wraps response with rcBlock info. - name: depth in: query description: The number of eras to query for payouts of. Must be less than or equal to `HISTORY_DEPTH`. In cases where `era - (depth -1)` is less than 0, the first era queried will be 0. required: false schema: type: string format: unsignedInteger default: 1 - name: era in: query description: The era to query at. required: false schema: type: string format: unsignedInteger default: '`active_era - 1`' - name: unclaimedOnly in: query description: Only return unclaimed rewards. required: false schema: type: string format: boolean default: true responses: '200': description: successful operation content: application/json: schema: oneOf: - $ref: '#/components/schemas/AccountStakingPayouts' - type: array items: $ref: '#/components/schemas/AccountStakingPayouts' description: "**Standard Mode**: Returns a single object when using standard parameters (without useRcBlock). \n\n**Relay Chain Block Mode**: Returns an array when using 'useRcBlock' parameter (array contains one object per Asset Hub block found, or empty array if none found).\n\n**Asset Hub Migration**: For both modes, when querying eras that span the Asset Hub migration boundary, the endpoint automatically fetches and combines data from both relay chain (pre-migration eras) and Asset Hub (post-migration eras). The migration handling is transparent to the user - you get complete payout information regardless of which chain originally held the data.\n" '400': description: invalid blockId supplied for at query param, or invalid parameter combination content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: account not found content: application/json: schema: $ref: '#/components/schemas/Error' /pallets/staking/progress: get: tags: - Staking summary: Get progress on the general Staking pallet system. description: Returns information on the progress of key components of the staking system and estimates of future points of interest. If you are querying from Asset Hub for staking progress, this endpoint requires multi chain connections between the relay chain, and asset hub itself. Set the asset hub rpc to SAS_SUBSTRATE_URL, and add the relay chain to the SAS_SUBSTRATE_MULTI_CHAIN_URL env var. Refer to the README for the structure of the env vars. The `useRcBlock` parameter allows querying Asset Hub state using relay chain block numbers, enabling post-migration infrastructure to continue using relay chain block identifiers while accessing Asset Hub data. operationId: getStakingProgress parameters: - name: at in: query description: Block at which to retrieve a staking progress report. required: false schema: type: string description: Block identifier, as the block height or block hash. format: unsignedInteger or $hex - name: useRcBlock in: query description: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s) for retrieving staking progress report. Only supported for Asset Hub endpoints. Requires 'at' parameter to specify the relay chain block. When used, returns an array of response objects (one for each Asset Hub block found) or empty array if none found. required: false schema: type: boolean description: When set to 'true', uses relay chain block mode with the 'at' parameter. - name: useRcBlockFormat in: query description: Controls the response format when using 'useRcBlock=true'. When set to 'object', wraps the response in an object containing relay chain block info ('rcBlock') and the parachain data array ('parachainDataPerBlock'). When set to 'array' or omitted, returns the standard array format. Only valid when 'useRcBlock=true' is specified. required: false schema: type: string enum: - array - object description: Response format - 'array' (default) returns standard array, 'object' wraps response with rcBlock info. responses: '200': description: successful operation content: application/json: schema: oneOf: - $ref: '#/components/schemas/StakingProgress' - type: array items: $ref: '#/components/schemas/StakingProgress' description: Returns a single object when using standard parameters. Returns an array when using 'useRcBlock' parameter (array contains one object per Asset Hub block found, or empty array if none found). '400': description: invalid blockId supplied for at query param, or invalid parameter combination content: application/json: schema: $ref: '#/components/schemas/Error' /pallets/staking/validators: get: tags: - Staking summary: Get all validators (active/waiting) of a specific chain. description: Returns a list of all validators addresses and their corresponding status which can be either active or waiting. For declared validators, it also includes their commission rate and nomination blocking status. It will also return a list of active validators that will not be part of the next era for staking. They will be under the key "validatorsToBeChilled". It's important to note, that addresses can be present in both the "validators" key, and "validatorsToBeChilled". Commission and blocked properties are not present for active validators that have been chilled. operationId: getStakingValidators parameters: - name: at in: query description: Block at which to retrieve the list of validators. required: false schema: type: string description: Block identifier, as the block height or block hash. format: unsignedInteger or $hex - name: useRcBlock in: query description: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s) for retrieving staking validators. Only supported for Asset Hub endpoints. Requires 'at' parameter to specify the relay chain block. When used, returns an array of response objects (one for each Asset Hub block found) or empty array if none found. required: false schema: type: boolean description: When set to 'true', uses relay chain block mode with the 'at' parameter. - name: useRcBlockFormat in: query description: Controls the response format when using 'useRcBlock=true'. When set to 'object', wraps the response in an object containing relay chain block info ('rcBlock') and the parachain data array ('parachainDataPerBlock'). When set to 'array' or omitted, returns the standard array format. Only valid when 'useRcBlock=true' is specified. required: false schema: type: string enum: - array - object description: Response format - 'array' (default) returns standard array, 'object' wraps response with rcBlock info. responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/StakingValidators' '400': description: invalid blockId supplied for at query param, or invalid parameter combination content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Nominations: type: object properties: targets: type: array items: type: string description: The targets of the nomination. submittedIn: type: string format: unsignedInteger description: The era the nominations were submitted. (Except for initial nominations which are considered submitted at era 0.) suppressed: type: boolean description: Whether the nominations have been suppressed. Error: type: object properties: code: type: number message: type: string stack: type: string level: type: string UnappliedSlash: type: object properties: validator: type: string description: Stash account ID of the offending validator. format: ss58 own: type: string description: The amount the validator will be slashed. format: unsignedInteger others: type: array description: Array of tuples(`[accountId, amount]`) representing all the stashes of other slashed stakers and the amount they will be slashed. items: type: string format: tuple[ss58, unsignedInteger] reporters: type: array description: Array of account IDs of the reporters of the offense. items: type: string format: ss58 payout: type: string description: Amount of bounty payout to reporters. format: unsignedInteger BlockIdentifiers: type: object properties: hash: type: string description: The block's hash. format: hex height: type: string description: The block's height. format: unsignedInteger StakingValidators: type: object properties: at: $ref: '#/components/schemas/BlockIdentifiers' validators: type: array items: type: object properties: address: type: string description: Address of validator. status: type: string description: Status of individual validator (active/waiting). commission: type: string description: The validator's commission rate as parts-per-billion (e.g., "100000000" = 10%). Not present for chilled validators. blocked: type: boolean description: Whether the validator is blocked from receiving new nominations. Not present for chilled validators. validatorsToBeChilled: description: Validators that will not be participating in the next era. type: array items: type: object properties: address: type: string description: Address of validator. status: type: string description: Status of individual validator (active/waiting). rcBlockHash: type: string description: The relay chain block hash used for the query. Only present when `useRcBlock` parameter is used. rcBlockNumber: type: string description: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used. format: unsignedInteger ahTimestamp: type: string description: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used. format: unsignedInteger AccountStakingPayouts: type: object properties: at: $ref: '#/components/schemas/BlockIdentifiers' erasPayouts: type: array items: type: object properties: era: type: string format: unsignedInteger description: Era this information is associated with. totalEraRewardPoints: type: string format: unsignedInteger description: Total reward points for the era. Equals the sum of reward points for all the validators in the set. totalEraPayout: type: string format: unsignedInteger description: Total payout for the era. Validators split the payout based on the portion of `totalEraRewardPoints` they have. payouts: $ref: '#/components/schemas/Payouts' rcBlockHash: type: string description: The relay chain block hash used for the query. Only present when `useRcBlock` parameter is used. rcBlockNumber: type: string description: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used. format: unsignedInteger ahTimestamp: type: string description: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used. format: unsignedInteger ElectionStatus: type: object properties: status: type: object description: '[Deprecated](Works for polkadot runtimes before v0.8.30). Era election status: either `Close: null` or `Open: `. A status of `Close` indicates that the submission window for solutions from off-chain Phragmen is not open. A status of `Open` indicates that the submission window for off-chain Phragmen solutions has been open since BlockNumber. N.B. when the submission window is open, certain extrinsics are not allowed because they would mutate the state that the off-chain Phragmen calculation relies on for calculating results.' toggleEstimate: type: string description: Upper bound estimate of the block height at which the `status` will switch. format: unsignedInteger description: Information about the off-chain election. Not included in response when `forceEra.isForceNone`. StakingProgress: type: object properties: at: $ref: '#/components/schemas/BlockIdentifiers' activeEra: type: string description: '`EraIndex` of the era being rewarded. ' format: unsignedInteger forceEra: type: string description: Current status of era forcing. enum: - ForceNone - NotForcing - ForceAlways - ForceNew nextActiveEraEstimate: type: string description: Upper bound estimate of the block height at which the next active era will start. Not included in response when `forceEra.isForceNone`. format: unsignedInteger nextSessionEstimate: type: string description: Upper bound estimate of the block height at which the next session will start. format: unsignedInteger unappliedSlashes: type: array items: $ref: '#/components/schemas/UnappliedSlash' description: Array of upcoming `UnappliedSlash` indexed by era. electionStatus: $ref: '#/components/schemas/ElectionStatus' idealValidatorCount: type: string description: Upper bound of validator set size; considered the ideal size. Not included in response when `forceEra.isForceNone`. format: unsignedInteger validatorSet: type: array description: Stash account IDs of the validators for the current session. Not included in response when `forceEra.isForceNone`. items: type: string format: ss58 rcBlockHash: type: string description: The relay chain block hash used for the query. Only present when `useRcBlock` parameter is used. rcBlockNumber: type: string description: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used. format: unsignedInteger ahTimestamp: type: string description: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used. format: unsignedInteger Payouts: type: array items: type: object properties: validatorId: type: string description: AccountId of the validator the payout is coming from. nominatorStakingPayout: type: string format: unsignedInteger description: Payout for the reward destination associated with the accountId the query was made for. claimed: type: boolean description: Whether or not the reward has been claimed. totalValidatorRewardPoints: type: string format: unsignedInteger description: Number of reward points earned by the validator. validatorCommission: type: string format: unsignedInteger description: The percentage of the total payout that the validator takes as commission, expressed as a Perbill. totalValidatorExposure: type: string format: unsignedInteger description: The sum of the validator's and its nominators' stake. nominatorExposure: type: string format: unsignedInteger description: The amount of stake the nominator has behind the validator. description: Payout for a nominating _Stash_ address and information about the validator they were nominating. StakingLedger: type: object properties: stash: type: string description: The _Stash_ account whose balance is actually locked and at stake. format: ss58 total: type: string description: The total amount of the _Stash_'s balance that we are currently accounting for. Simply `active + unlocking`. format: unsignedInteger active: type: string description: The total amount of the _Stash_'s balance that will be at stake in any forthcoming eras. format: unsignedInteger unlocking: type: string description: Any balance that is becoming free, which may eventually be transferred out of the _Stash_ (assuming it doesn't get slashed first). Represented as an array of objects, each with an `era` at which `value` will be unlocked. format: unsignedInteger claimedRewards: type: array description: Array of objects, each containing an `era` and its corresponding `status`, which represents the rewards status of the queried Stash account. The queried account can either be a validator or nominator account. This array is populated with values from `stakingLedger.lastReward`, `stakingLedger.legacyClaimedRewards` or `stakingLedger.claimedRewards`, as well as the `query.staking.claimedRewards` call, depending on whether the queried block is before or after the migration. For more details on the implementation and the migration, refer to the related PR (https://github.com/paritytech/substrate-api-sidecar/pull/1445) and linked issue (https://github.com/paritytech/substrate-api-sidecar/issues/1433#issuecomment-2075914389). items: type: object properties: era: type: string description: The era for which we check the rewards status. format: unsignedInteger status: type: string description: The rewards status of the stakers backing a validator. enum: - claimed - unclaimed - partially claimed description: The staking ledger. AccountStakingInfo: type: object properties: at: $ref: '#/components/schemas/BlockIdentifiers' rewardDestination: type: string description: The account to which rewards will be paid. Can be 'Staked' (Stash account, adding to the amount at stake), 'Stash' (Stash address, not adding to the amount at stake), or 'Controller' (Controller address). format: ss58 enum: - Staked - Stash - Controller controller: type: string description: Controller address for the given Stash. format: ss58 numSlashingSpans: type: string description: Number of slashing spans on Stash account; `null` if provided address is not a Controller. format: unsignedInteger nominations: $ref: '#/components/schemas/Nominations' staking: $ref: '#/components/schemas/StakingLedger' rcBlockHash: type: string description: The relay chain block hash used for the query. Only present when `useRcBlock` parameter is used. rcBlockNumber: type: string description: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used. format: unsignedInteger ahTimestamp: type: string description: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used. format: unsignedInteger description: 'Note: For Sidecar versions prior to v.20.0.0, in field `claimedRewards` under `staking`, we return whatever we would find under `StakingLedger` with no further calculations. From v.20.0.0 onwards, `claimedRewards` is calculated based on different calls: `lastReward`, `claimedRewards` or `legacyClaimedRewards`. Note on lastReward: Runtime versions of Kusama less than 1062 will either have `lastReward` in place of `claimedRewards`, or no field at all. This is related to changes in reward distribution. See: [Lazy Payouts](https://github.com/paritytech/substrate/pull/4474), [Simple Payouts](https://github.com/paritytech/substrate/pull/5406)' definitions: subscan_internal_model.AccountParentJson: properties: address: type: string display: type: string identity: type: boolean sub_symbol: type: string type: object internal_server_http.J: properties: code: example: 0 type: integer data: {} generated_at: example: 1699600641 type: integer message: example: Success type: string type: object internal_server_http.commissionHistoryParams: properties: page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 1 type: integer stash: type: string required: - stash type: object internal_server_http.stakingRewardParams: properties: address: type: string block_range: type: string end: example: '2023-06-01' type: string start: example: '2023-05-01' type: string required: - address type: object internal_server_http.dailyRewardSlashParams: properties: address: type: string category: enum: - Reward - Slash type: string end: example: '2024-07-02' type: string order: enum: - asc - desc type: string page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: example: 10 maximum: 100 minimum: 1 type: integer start: example: '2024-07-01' type: string type: object subscan_internal_model.AccountDisplay: properties: account_index: type: string address: description: Current network account type: string display: type: string evm_address: type: string evm_contract: $ref: '#/definitions/subscan_internal_model.EvmAccountDisplay' identity: type: boolean judgements: items: $ref: '#/definitions/subscan_internal_model.RegistrationJudgementJson' type: array merkle: $ref: '#/definitions/subscan_internal_model.MerkleTag' parent: allOf: - $ref: '#/definitions/subscan_internal_model.AccountParentJson' description: Parent account people: $ref: '#/definitions/subscan_internal_model.SampleIdentity' type: object subscan_internal_model.MerkleTag: properties: address_type: type: string tag_name: type: string tag_subtype: type: string tag_type: type: string type: object subscan_internal_model.SampleIdentity: properties: display: type: string identity: type: boolean judgements: items: $ref: '#/definitions/subscan_internal_model.RegistrationJudgementJson' type: array parent: $ref: '#/definitions/subscan_internal_model.AccountParentJson' type: object subscan_internal_model.ValidatorJson: properties: blocked: type: boolean bonded_nominators: type: string bonded_owner: type: string bonded_total: type: string controller_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' count_nominators: type: integer grandpa_vote: type: integer latest_mining: type: integer next_session_selected: type: boolean rank_validator: type: integer reward_point: type: integer session_key: $ref: '#/definitions/subscan_internal_model.SessionKeys' staking_rewards_tag: $ref: '#/definitions/subscan_libs_stakingrewards.Provider' stash_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' status: type: string validator_prefs_value: type: integer type: object subscan_internal_model.StakingAccountEventJson: properties: account: type: string amount: type: string block_timestamp: type: integer era: type: integer event_id: type: string event_index: type: string extrinsic_index: type: string invalid_era: type: boolean module_id: type: string stash: type: string validator_stash: type: string type: object subscan_internal_model.AccountNominateList: properties: active: type: boolean blocked: type: boolean bonded: type: string bonded_nominators: type: string bonded_owner: type: string bonded_total: type: string controller_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' count_nominators: type: integer grandpa_vote: type: integer latest_mining: type: integer next_session_selected: type: boolean rank_validator: type: integer reward_point: type: integer session_key: $ref: '#/definitions/subscan_internal_model.SessionKeys' staking_rewards_tag: $ref: '#/definitions/subscan_libs_stakingrewards.Provider' stash_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' status: type: string validator_prefs_value: type: integer type: object subscan_internal_model.EvmAccountDisplay: properties: contract_name: type: string verify_source: type: string type: object internal_server_http.eraStatParams: properties: address: type: string page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 1 type: integer required: - address type: object subscan_internal_model.StakingCommissionHistoryJson: properties: account: $ref: '#/definitions/subscan_internal_model.AccountDisplay' commission: type: integer event_index: type: string extrinsic_index: type: string force: type: boolean timestamp: type: integer type: object subscan_internal_model.SessionKeys: properties: aura: type: string authority_discovery: type: string avn: description: AVN specific, energywebx type: string babe: type: string grandpa: type: string im_online: type: string type: object internal_server_http.rewardSlashParams: properties: address: type: string after_id: type: integer block_range: type: string category: enum: - Reward - Slash type: string is_stash: type: boolean page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 1 type: integer timeout: type: integer required: - address type: object subscan_internal_model.NominatorDetail: properties: bonded: type: string nominator_stash: type: string staking_info: $ref: '#/definitions/subscan_internal_model.StakingAccount' stash_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' status: type: string type: object internal_server_http.dailyRewardPayoutParams: properties: end: example: '2024-07-02' type: string order: enum: - asc - desc type: string page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: example: 10 maximum: 100 minimum: 1 type: integer start: example: '2024-07-01' type: string type: object internal_server_http.unbondingParams: properties: address: type: string required: - address type: object subscan_internal_model.NominatorJson: properties: account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' bonded: type: string nominator_stash: type: string rank_nominator: type: integer validator_stash: type: string type: object subscan_internal_model.DailyRewardPayoutJson: properties: date: type: string reward: type: string type: object subscan_libs_stakingrewards.Provider: properties: isVerified: type: boolean name: type: string slug: type: string type: object internal_server_http.nominatorsParams: properties: address: type: string order: enum: - desc - asc type: string order_field: enum: - rank_nominator - bonded type: string page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 1 type: integer required: - address type: object subscan_internal_model.StakingAccount: properties: controller: type: string controller_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' reward_account: type: string reward_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' type: object internal_server_http.validatorsParams: properties: blocked: type: boolean commission_range: type: string order: enum: - desc - asc type: string order_field: enum: - rank_validator - bonded_nominators - bonded_owner - count_nominators - validator_prefs_value - bonded_total type: string page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 0 type: integer type: object subscan_internal_model.AccountEventJson: properties: account: type: string amount: type: string block_num: type: integer block_timestamp: type: integer event_id: type: string event_idx: type: integer event_index: type: string event_method: type: string extrinsic_hash: type: string extrinsic_idx: type: integer extrinsic_index: type: string id: type: integer module_id: type: string params: type: string stash: type: string type: object internal_server_http.waitingValidatorsParams: properties: commission_range: type: string order: enum: - desc - asc type: string order_field: enum: - bonded_nominators - bonded_owner - count_nominators - validator_prefs_value - sum_nominators_bonded type: string type: object internal_server_http.votedParams: properties: address: type: string required: - address type: object subscan_libs_substrate_derive.Unbonding: properties: amount: type: string until: type: integer type: object subscan_internal_model.EraBondStat: properties: avg: type: string era: type: integer owner: type: string total_avg: type: string total_bond: type: string type: object subscan_internal_model.ValidatorWaiting: properties: bonded_nominators: type: string bonded_owner: type: string count_nominators: type: integer next_session_selected: type: boolean stash_account_display: $ref: '#/definitions/subscan_internal_model.AccountDisplay' sum_nominators_bonded: type: string validator_prefs_value: type: integer type: object internal_server_http.bondStatParams: properties: stash: type: string required: - stash type: object subscan_internal_model.DailyRewardSlashJson: properties: account: $ref: '#/definitions/subscan_internal_model.AccountDisplay' date: type: string reward: type: string slash: type: string type: object internal_server_http.validatorParams: properties: stash: type: string required: - stash type: object subscan_internal_model.RegistrationJudgementJson: properties: index: type: integer judgement: type: string type: object subscan_internal_model.ValidatorStatJson: properties: block_produced: type: string end_block_num: type: integer era: type: integer reward_point: type: integer start_block_num: type: integer type: object internal_server_http.nominatorParams: properties: address: type: string required: - address type: object internal_server_http.rewardSlashV2Params: properties: address: type: string block_range: type: string category: enum: - Reward - Slash type: string claimed_filter: enum: - unclaimed - claimed type: string is_stash: type: boolean page: description: Page number, starting from 0 example: 0 minimum: 0 type: integer row: description: Data size per page example: 10 maximum: 100 minimum: 1 type: integer timeout: type: integer required: - address type: object