> For the complete documentation index, see [llms.txt](https://docs.tokensfarm.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tokensfarm.com/for-developers/perpetualtokensfarm/deposit.md).

# Deposit

* There is two way to make a deposit on contracts, depends if warmup is enabled or not
* If `warmupPeriod == 0` user needs to make a deposit through function called `deposit()`

  ```solidity
  function deposit(uint256 amount)
  ```

  &#x20;After that stake is remembered and user starts earning immediately
* If `warmupPeriod > 0` user needs to make deposit through function called `makeDepositRequest`

  ```solidity
   function makeDepositRequest(
          uint256 _amount
      )
  ```

  &#x20;After that `warmupPeriod` needs to pass in order for BE or user to call function `finaliseDeposit`&#x20;

  ```solidity
   function finaliseDeposit(
          address _user,
          uint256 stakeId
    )
  ```

  once that function is executed user can start earning rewards and his stakes i acknowledged&#x20;
