> For the complete documentation index, see [llms.txt](https://docs.hyperlink.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hyperlink.xyz/more/staking.md).

# Staking (hlHYPE)

HyperLink lets you stake HYPE and receive hlHYPE, a liquid staking token whose value appreciates as Hyperliquid validator rewards accrue.

{% hint style="info" %}
Stake, unstake, and claim in the web app at [app.hyperlink.xyz/stake](https://app.hyperlink.xyz/stake) — it handles hlHYPE approvals and the contract calls for you. The methods below document the same `StakingVaultManager` calls for anyone integrating directly. Staking is fully on-chain; there is no REST/API staking endpoint.
{% endhint %}

## What hlHYPE is

hlHYPE is an ERC20 liquid staking token for HYPE.

| Property      | Value                            |
| ------------- | -------------------------------- |
| Standard      | ERC20                            |
| Decimals      | 18                               |
| Accrual model | Rate-appreciating (not rebasing) |

Your hlHYPE balance stays fixed. Its value grows because the HYPE-per-hlHYPE exchange rate rises as staking rewards accrue.

One hlHYPE is always redeemable for more HYPE over time, never less (absent a validator slashing event).

HYPE backing the vault is delegated to Hyperliquid validators. Staking routes HYPE into Hyperliquid's native validator staking.

## Fees

There are **no staking or unstaking fees**.

## Stake HYPE

Call `deposit()` and send HYPE as the transaction value. You receive hlHYPE at the current exchange rate.

```solidity
// payable: msg.value = amount of HYPE to stake
StakingVaultManager.deposit();
```

Your hlHYPE is minted at deposit time based on the exchange rate then.

## Unstake HYPE

Unstaking is a two-step process: queue, then claim after the unbonding period.

### Step 1: Queue the withdrawal

| Parameter      | Type      | Required | Description                               |
| -------------- | --------- | -------- | ----------------------------------------- |
| `hlHYPEAmount` | `uint256` | Required | Amount of hlHYPE (18 decimals) to redeem. |

```solidity
// Returns one or more withdrawId values
uint256[] memory withdrawIds = StakingVaultManager.queueWithdraw(hlHYPEAmount);
```

Your hlHYPE is burned when the withdrawal is assigned to a batch. Save the returned `withdrawId`. You need it to claim.

### Step 2: Claim the HYPE

After the batch that contains your withdrawal is finalized, a **7-day unbonding period** plus the current **12-hour claim buffer** applies before you can claim. Once that window passes, claim your HYPE.

| Parameter     | Type      | Required | Description                                    |
| ------------- | --------- | -------- | ---------------------------------------------- |
| `withdrawId`  | `uint256` | Required | The withdrawal ID returned by `queueWithdraw`. |
| `destination` | `address` | Required | Address that receives the HYPE.                |

```solidity
StakingVaultManager.claimWithdraw(withdrawId, destination);
```

Claiming before the unbonding period plus claim buffer has elapsed reverts.

### Cancel a queued withdrawal

To cancel a queued withdrawal before you claim it, call `cancelWithdraw` with its `withdrawId`. The web app also exposes this from the withdrawals list.

| Parameter    | Type      | Required | Description                                    |
| ------------ | --------- | -------- | ---------------------------------------------- |
| `withdrawId` | `uint256` | Required | The withdrawal ID returned by `queueWithdraw`. |

```solidity
StakingVaultManager.cancelWithdraw(withdrawId);
```

## Next steps

* [Smart Contracts](/security/smart-contracts.md): full contract reference and addresses.
* [Risks](/security/risks.md): slashing, unbonding delays, and other staking considerations.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hyperlink.xyz/more/staking.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
