> ## 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.

# Cosmos ATOM Staking

> How ATOM staking works on Cosmos Hub via Yield.xyz

Cosmos Hub ATOM staking with validator selection, 21-day unbonding, and reward claiming via the unified Yield.xyz API.

***

## What this yield is

* **Asset**: ATOM (native Cosmos Hub token)
* **Mechanism**: Delegate ATOM to validators to secure the network
* **Rewards**: Staking rewards accrue per block; must be claimed explicitly
* **Unbonding**: 21-day unbonding period; funds do not earn during unbonding

***

## Required inputs

| Argument           | Required | Description                                   |
| ------------------ | -------- | --------------------------------------------- |
| `amount`           | Yes      | Amount of ATOM to stake                       |
| `validatorAddress` | Yes      | Validator operator address (cosmosvaloper...) |

Fetch available validators from the [validators endpoint](/api-reference/YieldsController_getYieldValidators).

***

## Actions & lifecycle

<Tabs>
  <Tab title="Enter">
    * Call `/actions/enter` with `amount` and `validatorAddress`
    * Single delegation transaction returned
    * Sign with Cosmos-compatible signer (cosmjs, Keplr, etc.)
    * Position becomes active after block confirmation
    * Rewards begin accruing immediately
  </Tab>

  <Tab title="Exit">
    * Call `/actions/exit` with amount to undelegate
    * Initiates 21-day unbonding period
    * Funds do not earn rewards during unbonding
    * Cannot be cancelled once initiated
    * After 21 days, funds become claimable
  </Tab>

  <Tab title="Manage">
    * **Claim rewards**: Withdraw accrued staking rewards
    * **Restake**: Compound rewards back into delegation
    * **Redelegate**: Move stake to different validator (no unbonding)
    * Check `pendingActions` in balances for available operations
  </Tab>
</Tabs>

***

## Example flow

<Steps>
  <Step title="Fetch yield metadata">
    Get validator options and staking mechanics.
  </Step>

  <Step title="Get validators">
    List available validators with performance metrics.
  </Step>

  <Step title="Request enter action">
    Call enter with amount and chosen validator.
  </Step>

  <Step title="Sign & submit">
    Sign the Cosmos transaction and broadcast.
  </Step>

  <Step title="Track balances">
    Monitor rewards and manage position.
  </Step>
</Steps>

<CodeGroup>
  ```bash Get yield metadata theme={null}
  curl --request GET \
    --url https://api.yield.xyz/v1/yields/cosmos-atom-native-staking \
    --header 'accept: application/json' \
    --header 'x-api-key: <API_KEY>'
  ```

  ```bash Get validators theme={null}
  curl --request GET \
    --url https://api.yield.xyz/v1/yields/cosmos-atom-native-staking/validators \
    --header 'accept: application/json' \
    --header 'x-api-key: <API_KEY>'
  ```

  ```bash Enter staking theme={null}
  curl --request POST \
    --url https://api.yield.xyz/v1/actions/enter \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --header 'x-api-key: <API_KEY>' \
    --data '{
      "yieldId": "cosmos-atom-native-staking",
      "address": "cosmos1YOUR_ADDRESS",
      "arguments": {
        "amount": "10",
        "validatorAddress": "cosmosvaloperVALIDATOR"
      }
    }'
  ```

  ```bash Get balances theme={null}
  curl --request POST \
    --url https://api.yield.xyz/v1/yields/cosmos-atom-native-staking/balances \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --header 'x-api-key: <API_KEY>' \
    --data '{ "address": "cosmos1YOUR_ADDRESS" }'
  ```
</CodeGroup>

***

## Operational notes

<AccordionGroup>
  <Accordion title="21-day unbonding">
    Unbonding cannot be cancelled. Plan exit timing accordingly. During unbonding, funds are not earning rewards and are not liquid.
  </Accordion>

  <Accordion title="Slashing risk">
    Delegated ATOM is subject to slashing if the validator misbehaves. Diversify across validators to reduce exposure.
  </Accordion>

  <Accordion title="Reward claiming">
    Rewards accumulate but must be claimed explicitly. Use the `manage` action with `claim-rewards` type. Rewards can also be auto-restaked.
  </Accordion>

  <Accordion title="Redelegation">
    Cosmos allows instant redelegation to a new validator without unbonding. However, you cannot redelegate again for 21 days from the destination validator.
  </Accordion>

  <Accordion title="Shield recommendation">
    For institutional custody flows, validate transactions with [Shield](/documentation/shield-security/shield) before signing.
  </Accordion>
</AccordionGroup>

***

## Preferred validators

| Validator          | Address                                                |
| ------------------ | ------------------------------------------------------ |
| Figment            | `cosmosvaloper1hjct6q7npsspsg3dgvzk3sdf89spmlpfdn6m9d` |
| Chorus One         | `cosmosvaloper15urq2dtp9qce4fyc85m6upwm9xul3049e02707` |
| Staking Facilities | `cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxycyz7m0mahdv3p` |
| Staked             | `cosmosvaloper1we6knm8qartmmh2r0qfpsz6pq0s7emv3e0meuw` |
| Coinbase Cloud     | `cosmosvaloper1crqm3598z6qmyn2kkcl9dz7uqs4qdqnr6s8jdn` |
| Chainflow          | `cosmosvaloper1j0vaeh27t4rll7zhmarwcuq8xtrmvqhudrgcky` |
| Everstake          | `cosmosvaloper1tflk30mq5vgqjdly92kkhhq3raev2hnz6eete3` |
| Stakely            | `cosmosvaloper16yupepagywvlk7uhpfchtwa0stu5f8cyhh54f2` |

***

## Considerations

<Warning>
  When a user delegates additional tokens to a validator they already have a staked position with, any earned rewards are automatically claimed and added to the user's available balance. Similarly, when a user partially or fully unstakes their position, the unclaimed rewards are also automatically claimed.
</Warning>

<Note>
  In some cases, there can be a precision loss issue in the Cosmos SDK during unbonding, specifically when converting from validator shares back to tokens. The loss due to this issue can be 1 uatom.
</Note>

***

## Other Cosmos chains

The same integration pattern applies to other Cosmos SDK chains:

<CardGroup cols={2}>
  <Card title="Osmosis" icon="droplet" href="/documentation/coverage/supported-yields/staking/non-evm/osmosis">
    OSMO staking (14-day unbonding)
  </Card>

  <Card title="dYdX" icon="chart-line" href="/documentation/coverage/supported-yields/staking/non-evm/dydx">
    DYDX staking (30-day unbonding)
  </Card>

  <Card title="Injective" icon="syringe" href="/documentation/coverage/supported-yields/staking/non-evm/injective">
    INJ staking
  </Card>

  <Card title="Non-EVM Overview" icon="globe" href="/documentation/coverage/supported-yields/staking/non-evm">
    All Cosmos chains
  </Card>
</CardGroup>
