# Flashstaking TBTs

The Flashstake Protocol provides a feature called *Flashstake* which enables users to both [Stake](https://docs.flashstake.io/time-based-tokens-tbts/minting-tbts-staking) and redeem yield (via [FlashBurn](https://docs.flashstake.io/time-based-tokens-tbts/burning-tbts-flashburn) or [Swapping](https://docs.flashstake.io/time-based-tokens-tbts/swapping-tbts)) in a single transaction, effectively staking their principal into a [strategy](https://docs.flashstake.io/time-vault-strategies-tvs) to mint TBTs and then use those TBTs to get upfront yield all in that same transaction.

The [Flashstake function](https://docs.flashstake.io/smart-contracts/flashstake-protocol/methods#flashstake) also gives users the option to set a slippage value of "minimumReceived" to protect against frontrunning. This can be changed by the user in the Flashstake Dapp's advanced settings section.

{% hint style="info" %}
The [Flashstake Dapp](https://app.flashstake.io) uses a [proxy](https://docs.flashstake.io/smart-contracts/flash-protocol-proxy) that automatically determines the best yield source to provide upfront yield when performing a Flashstake.
{% endhint %}
