> ## Documentation Index
> Fetch the complete documentation index at: https://yieldxyz.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Objects and enums

> Look up the exact serialized values of every Earn enum and shared object: yield types, reward rates, balances, actions, transactions and validators.

This page is the canonical home for Earn enum values and shared objects. Values are the exact strings the Yield API serializes. Field-level schemas for each endpoint render on the endpoint pages.

## Yield types

`mechanics.type` on a yield and the `type` / `types` filters on `GET /v1/yields` use this vocabulary, with underscores (not hyphens).

| Value | Meaning |
| - | - |
| `staking` | Native staking or delegation |
| `liquid_staking` | Staking that mints a liquid receipt token |
| `restaking` | Restaking protocols |
| `lending` | Lending market supply |
| `vault` | Vault or allocator strategy |
| `real_world_asset` | Tokenized real-world asset; see [RWAs](/documentation/earn/rwas/index) |
| `concentrated_liquidity_pool` | Concentrated liquidity position |
| `liquidity_pool` | Liquidity pool position |
| `fixed_yield` | Declared but never emitted: no live yield uses it |

## Reward rate

`YieldDto.rewardRate` (and `ValidatorDto.rewardRate`, `YieldBalancesDto.rewardRate`) is a `RewardRateDto`. There is no public `rewardTokens` field on `YieldDto`; read reward and incentive tokens from `rewardRate.components[].token`, and the receipt token from `outputToken`.

| Field | Type | Meaning |
| - | - | - |
| `total` | number | Estimated rate across all sources; may include a campaign component |
| `rateType` | string | `APR` or `APY` |
| `components[]` | array | Breakdown behind `total` |
| `components[].rate` | number | Rate of this source |
| `components[].rateType` | string | `APR` or `APY` |
| `components[].token` | `TokenDto` | Token paid as reward |
| `components[].yieldSource` | string | See below |
| `components[].description` | string | Optional human-readable note |

`yieldSource` values: `staking`, `liquid_staking`, `restaking`, `protocol_incentive`, `campaign_incentive`, `points`, `lending`, `mev`, `real_world_asset_yield`, `vault`. Background: [Yield metadata](/documentation/earn/core-concepts/yield-metadata#reward-rate).

## Balance types

`BalanceDto.type` for [balances](/api-reference/YieldsController_getYieldBalances).

| Value | Meaning |
| - | - |
| `active` | Deployed and earning, or ready to earn |
| `entering` | In flight, not yet active |
| `exiting` | Cooling down or being unstaked |
| `withdrawable` | Exited and ready to claim |
| `claimable` | Rewards or profits ready to claim |
| `locked` | Protocol-constrained, for example vesting |

## Pending actions

Each entry in a balance's `pendingActions[]` is a `PendingActionDto`. To execute one, send `type` as `action` and `passthrough` unchanged to [`POST /v1/actions/manage`](/api-reference/ActionsController_manageYield).

| Field | Type | Meaning |
| - | - | - |
| `intent` | string | `enter`, `manage` or `exit` |
| `type` | string | An [action type](#action-types) |
| `passthrough` | string | Opaque server-generated string, required unchanged on execution |
| `arguments` | object | Optional argument schema for input the action needs |
| `amount` | string | Amount involved, human-readable, when applicable |

## Action intents

`ActionDto.intent` and the `intent` filter on `GET /v1/actions`.

| Value | Created by |
| - | - |
| `enter` | `POST /v1/actions/enter` |
| `exit` | `POST /v1/actions/exit` |
| `manage` | `POST /v1/actions/manage` |

## Action types

`ActionDto.type`, `PendingActionDto.type`, the `action` field of `CreateManageActionDto` and the `type` filter on `GET /v1/actions`. Which types a yield supports is yield-specific: enter and exit types follow the intent, and manage types are listed in `mechanics.arguments.manage`.

| Value | Typical meaning |
| - | - |
| `STAKE` | Open or add to a position |
| `UNSTAKE` | Start or perform an exit |
| `WITHDRAW_REQUEST` | Request a withdrawal that settles later |
| `INSTANT_WITHDRAW` | Withdraw immediately |
| `CLAIM_REWARDS` | Claim accrued rewards |
| `AUTO_SWEEP_UNSTAKE_REWARDS` | Sweep rewards while unstaking |
| `AUTO_SWEEP_WITHDRAW_REWARDS` | Sweep rewards while withdrawing |
| `RESTAKE_REWARDS` | Compound rewards back into the position |
| `WITHDRAW` | Withdraw funds that finished unbonding |
| `WITHDRAW_ALL` | Withdraw everything available |
| `RESTAKE` | Restake an unbonding or exited amount |
| `CLAIM_UNSTAKED` | Claim funds after cooldown |
| `UNLOCK_LOCKED` | Unlock locked funds |
| `STAKE_LOCKED` | Stake locked funds |
| `VOTE` | Vote or delegate governance power |
| `REVOKE` | Revoke a vote |
| `VOTE_LOCKED` | Vote with locked funds |
| `REVOTE` | Change a vote |
| `REBOND` | Rebond unbonding funds |
| `MIGRATE` | Migrate to another validator or contract |
| `VERIFY_WITHDRAW_CREDENTIALS` | Verify withdrawal credentials (native ETH staking) |
| `DELEGATE` | Delegate to a validator |

## Action statuses

`ActionDto.status` and the `status` / `statuses` filters on `GET /v1/actions`. `CANCELED`, `FAILED` and `SUCCESS` are terminal.

| Value | Meaning |
| - | - |
| `CREATED` | Created; nothing broadcast yet |
| `WAITING_FOR_NEXT` | Waiting for you to sign and submit the next transaction |
| `PROCESSING` | A transaction is broadcast and awaiting confirmation |
| `SUCCESS` | Every transaction confirmed or skipped |
| `FAILED` | A transaction failed |
| `CANCELED` | Canceled; will not proceed |
| `STALE` | No progress for 30 minutes; hidden from `GET /v1/actions` unless one of its transactions was broadcast or you filter by status |

## Execution pattern

`ActionDto.executionPattern` says how to run `transactions[]`. Current actions return only `synchronous` or `batch`.

| Value | Meaning |
| - | - |
| `synchronous` | Submit in `stepIndex` order, waiting for each to confirm |
| `batch` | One transaction bundles several operations |
| `asynchronous` | Declared but never emitted: submit all at once |

## Transaction types

`TransactionDto.type`. Which types appear depends on the yield's chain and protocol.

| Group | Values |
| - | - |
| Common | `SWAP`, `DEPOSIT`, `APPROVAL`, `STAKE`, `UNSTAKE`, `SUPPLY`, `WITHDRAW`, `WITHDRAW_ALL`, `CLAIM_UNSTAKED`, `CLAIM_REWARDS`, `RESTAKE_REWARDS`, `RESTAKE`, `REBOND`, `MIGRATE`, `BATCH` |
| Delegation and governance | `SET_OPERATOR`, `DELEGATE`, `UNDELEGATE`, `VOTE`, `REVOKE` |
| Liquidity and cross-chain | `ADD_LIQUIDITY`, `REMOVE_LIQUIDITY`, `BRIDGE`, `SPLIT`, `MERGE`, `LOCK`, `UNLOCK`, `WRAP`, `UNWRAP`, `LZ_DEPOSIT`, `LZ_WITHDRAW` |
| Account setup | `CREATE_ACCOUNT`, `REVEAL`, `UTXO_P_TO_C_IMPORT`, `UTXO_C_TO_P_IMPORT` |
| Tron | `UNFREEZE_LEGACY`, `UNFREEZE_LEGACY_BANDWIDTH`, `UNFREEZE_LEGACY_ENERGY`, `UNFREEZE_BANDWIDTH`, `UNFREEZE_ENERGY`, `FREEZE_BANDWIDTH`, `FREEZE_ENERGY`, `UNDELEGATE_BANDWIDTH`, `UNDELEGATE_ENERGY` |
| Provider-specific | `P2P_NODE_REQUEST`, `CREATE_EIGENPOD`, `VERIFY_WITHDRAW_CREDENTIALS`, `START_CHECKPOINT`, `VERIFY_CHECKPOINT_PROOFS`, `QUEUE_WITHDRAWALS`, `COMPLETE_QUEUED_WITHDRAWALS`, `LUGANODES_PROVISION`, `LUGANODES_EXIT_REQUEST`, `INFSTONES_PROVISION`, `INFSTONES_EXIT_REQUEST`, `INFSTONES_CLAIM_REQUEST` |

## Transaction statuses

`TransactionDto.status`. `CONFIRMED`, `FAILED` and `SKIPPED` are terminal: a terminal transaction rejects a different signed payload or hash with `412`.

| Value | Meaning |
| - | - |
| `CREATED` | Constructed, ready to sign |
| `WAITING_FOR_SIGNATURE` | Your app has been asked to sign |
| `SIGNED` | Signed, not yet broadcast |
| `BROADCASTED` | Sent to the network |
| `PENDING` | Seen on-chain, awaiting confirmation |
| `CONFIRMED` | Confirmed on-chain |
| `FAILED` | Reverted or rejected |
| `SKIPPED` | Not needed, for example an approval already covered |
| `BLOCKED` | Held back; do not sign or submit |
| `NOT_FOUND` | Declared in the enum; not documented as returned by these endpoints |

## Validator statuses

`ValidatorDto.status` is typed as a free string in the spec; the emitted values come from this set, and `GET /v1/yields/{yieldId}/validators` accepts the same values in its `status` filter. A validator with no stored status is returned as `active`.

| Value | Meaning |
| - | - |
| `active` | Accepting delegation |
| `jailed` | Jailed or slashed |
| `deactivating` | Leaving the active set |
| `inactive` | Not in the active set |
| `full` | At capacity |
| `not_found` | Declared in the enum; used internally when a validator cannot be resolved |

## KYC status

KYC state for gated yields is returned by [`GET /v1/yields/{yieldId}/kyc/status`](/api-reference/KycController_getStatus).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.