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

# StakeableTokenWrapper

A wrapper for an ERC-20 that can be staked and withdrawn.

In this contract, staked tokens don't do anything- instead other contracts can inherit from this one to add functionality. / c

## Functions:

* [`constructor(contract IERC20 _stakedToken)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-constructor-contract-IERC20-)
* [`balanceOf(address account)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-balanceOf-address-)
* [`stake(uint256 amount)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-stake-uint256-)
* [`withdraw(uint256 amount)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-withdraw-uint256-)

## Events:

* [`Staked(address user, uint256 amount)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-Staked-address-uint256-)
* [`Withdrawn(address user, uint256 amount)`](broken://pages/-Mh9WZMCa1vWzwglB9XJ#StakeableTokenWrapper-Withdrawn-address-uint256-)

## Function `constructor(contract IERC20 _stakedToken)`

Creates a new StakeableTokenWrapper with given `_stakedToken` address

### Parameters:

* `_stakedToken`: address of a token that will be used to stake

  /

## Function `balanceOf(address account) → uint256`

Read how much `account` has staked in this contract

### Parameters:

* `account`: address of an account

### Return Values:

* amount of total staked ERC20(this.stakedToken) by `account`

  /

## Function `stake(uint256 amount)`

Stakes given `amount` in this contract

### Parameters:

* `amount`: amount of ERC20(this.stakedToken) to stake

  /

## Function `withdraw(uint256 amount)`

Withdraws given `amount` from this contract

### Parameters:

* `amount`: amount of ERC20(this.stakedToken) to withdraw

  /

## Event `Staked(address user, uint256 amount)`

No description

## Event `Withdrawn(address user, uint256 amount)`

No description
