---
title: "List auto-renewed validator cycles"
method: GET
path: "/v1/networks/{network}/validators/{nodeId}/cycles"
tags: ["Primary Network"]
---

# List auto-renewed validator cycles

`GET /v1/networks/{network}/validators/{nodeId}/cycles`

Lists the settled staking cycles of an auto-renewed (ACP-236) validator, newest first. Each cycle reports the weight bonded for that cycle and the gross / withdrawn / compounded split of its rewards.

Includes cycles that paid nothing out. A fully-compounding cycle mints no reward UTXO and so does not appear in reward history at all.

The in-flight cycle is not listed; it is on the validator object. Returns an empty list for a node with no auto-renewed validation.

`cycleIndex` is 1-based per position, so a node that has held more than one auto-renewed position has more than one cycle 1. Group by `stakingTxHash`, or pass `txHash` for a single series.

## Path parameters

- `network` 'mainnet' | 'fuji' | 'testnet', required
- `nodeId` string, required

## Query parameters

- `txHash` string
- `pageToken` string
- `pageSize` integer
- `sortOrder` 'asc' | 'desc'

## Response `200`

Successful response

- ListAutoRenewedCyclesResponse
  - `nextPageToken` string — A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
  - `cycles` AutoRenewedCycle[], required — Settled cycles, newest first by default. Empty for a node with no auto-renewed validation. The in-flight cycle is not included; it is on the validator object.
    - `cycleIndex` number, required — 1-based sequence within this position. A node that has held more than one auto-renewed position has more than one cycle 1, so group by `stakingTxHash` or filter with the `txHash` query param.
    - `rewardTxHash` string, required — The transaction that settled this cycle. Present even when the cycle paid nothing out, which is what makes a fully-compounding cycle visible.
    - `stakingTxHash` string, required — The originating AddAutoRenewedValidatorTx. Identifies the position, and is shared by every cycle of it.
    - `startTimestamp` number, required — This cycle's window start, unix seconds.
    - `endTimestamp` number, required — This cycle's window end, unix seconds.
    - `weightAtCycleStart` string, required — Weight bonded for this cycle in nAVAX, before this cycle's own rewards were compounded into it. The denominator for per-cycle yield.
    - `grossValidationReward` string, required — Validation reward earned this cycle, in nAVAX. `"0"` when the cycle was aborted, since the reward is forfeited. Excludes rewards earned in earlier cycles.
    - `withdrawnValidationReward` string, required — Portion paid out as a reward UTXO, in nAVAX.
    - `compoundedValidationReward` string, required — Portion restaked into validator weight, in nAVAX. Produces no UTXO. May be below `share x gross` when restaking would exceed the maximum validator stake.
    - `grossDelegateeReward` string, required — Delegatee commission earned this cycle, in nAVAX. Still paid when the cycle is aborted. `"0"` when the validator had no delegators.
    - `withdrawnDelegateeReward` string, required — Commission paid out, in nAVAX.
    - `compoundedDelegateeReward` string, required — Commission restaked into weight, in nAVAX.
    - `autoCompoundSharePercent` number, required — 0-100. The share in effect during this cycle, not the current one.
    - `outcome` 'renewed' | 'exited' | 'aborted', required — How this cycle ended. `renewed` = rolled into another cycle; `exited` = final cycle of a graceful exit; `aborted` = reward eligibility not met.
    - `delegatorCount` number, required — Delegations overlapping this cycle's window. A delegation covering part of the cycle counts the same as one covering all of it.
    - `amountDelegated` string, required — Total weight of those delegations in nAVAX. Not included in `weightAtCycleStart`.
  - `currentCycle` CurrentAutoRenewedCycle
    - `cycleIndex` number, required — 1-based sequence within this position. The settled cycles in `cycles` run from 1 to this value minus one.
    - `stakingTxHash` string, required — The originating AddAutoRenewedValidatorTx for this position.
    - `startTimestamp` number, required — This cycle's window start, unix seconds.
    - `endTimestamp` number, required — This cycle's window end, unix seconds. A delegation into this validator must end within it.
    - `weightAtCycleStart` string, required — Weight bonded for this cycle in nAVAX. Rewards compound into weight only at settlement, so this is stable for the whole cycle.
    - `projectedValidationReward` string, required — Forecast validation reward for the **whole** cycle in nAVAX, minted at cycle start. Not an amount earned so far, and not comparable to a settled cycle's `grossValidationReward` until this cycle settles. Do not add it to sums over `cycles`.
    - `accruedDelegateeReward` string, required — Delegatee commission already accrued this cycle, in nAVAX, from delegations that have settled within it. Unlike the validation reward this is realised, not forecast; delegations still running contribute nothing yet.
    - `autoCompoundSharePercent` number, required — 0-100. The share that will apply when this cycle settles. A SetAutoRenewedValidatorConfigTx mid-cycle changes it, so it is not final until settlement.
    - `state` 'renewing' | 'exiting' | 'exited' | 'aborted', required — `renewing` = will roll into another cycle; `exiting` = graceful exit armed, this is the final cycle. Not an outcome - the cycle can still abort on reward eligibility.
    - `delegatorCount` number, required — Delegations overlapping this cycle's window.
    - `amountDelegated` string, required — Total weight of those delegations in nAVAX. Not included in `weightAtCycleStart`.

## Other responses

- `400` — Bad requests generally mean the client has passed invalid or malformed parameters. Error messages in the response could help in evaluating the error.
- `401` — When a client attempts to access resources that require authorization credentials but the client lacks proper authentication in the request, the server responds with 401.
- `403` — When a client attempts to access resources with valid credentials but doesn't have the privilege to perform that action, the server responds with 403.
- `404` — The error is mostly returned when the client requests with either mistyped URL, or the passed resource is moved or deleted, or the resource doesn't exist.
- `429` — This error is returned when the client has sent too many, and has hit the rate limit.
- `500` — The error is a generic server side error that is returned for any uncaught and unexpected issues on the server side. This should be very rare, and you may reach out to us if the problem persists for a longer duration.
- `502` — This is an internal error indicating invalid response received by the client-facing proxy or gateway from the upstream server.
- `503` — The error is returned for certain routes on a particular Subnet. This indicates an internal problem with our Subnet node, and may not necessarily mean the Subnet is down or affected.

---

[API](https://skmtc.dev/avax/apis/data-api.md) · [All operations](https://skmtc.dev/avax/apis/data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/avax/data-api/revisions/86448a21e2b1/schema)
