> For the complete documentation index, see [llms.txt](https://docs.mav.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mav.xyz/technical-reference/maverick-v2/v2-contracts/maverick-v2-reward-contracts/maverickv2rewardvault.md).

# MaverickV2RewardVault

**Inherits:** [IMaverickV2RewardVault](/technical-reference/maverick-v2/v2-contracts/maverick-v2-reward-contracts/interfaces/imaverickv2rewardvault.md)

Vault contract with owner-only withdraw function. Used by the Reward contract to segregate staking funds from incentive rewards funds.

### State Variables <a href="#state-variables" id="state-variables"></a>

#### owner <a href="#owner" id="owner"></a>

This function retrieves the address of the owner of the reward vault contract.

```solidity
address public immutable owner;
```

#### stakingToken <a href="#stakingtoken" id="stakingtoken"></a>

This function retrieves the address of the ERC20 token used for staking within the reward vault.

```solidity
IERC20 public immutable stakingToken;
```

### Functions <a href="#functions" id="functions"></a>

#### constructor <a href="#constructor" id="constructor"></a>

```solidity
constructor(IERC20 _stakingToken);
```

#### withdraw <a href="#withdraw" id="withdraw"></a>

This function allows the owner of the reward vault to withdraw a specified amount of staking tokens to a recipient address. If non-owner calls this function, it will revert.

```solidity
function withdraw(address recipient, uint256 amount) public;
```

**Parameters**

| Name        | Type      | Description                                                     |
| ----------- | --------- | --------------------------------------------------------------- |
| `recipient` | `address` | The address to which the withdrawn staking tokens will be sent. |
| `amount`    | `uint256` | The amount of staking tokens to withdraw.                       |

<br>
