# Flash Loans

Beraborrow offers Flash Loans on all the assets it controls!

### What is a Flash loan?

&#x20;It is an uncollateralised/unsecured loan that is deposited and repaid within the same block. Meaning a user can theoretically borrow ♾️amount (or as much of that asset is available) as long as the loan + fees is repaid within the same block.

### How does Beraborrow use flashloans?

Instead of looping multiple times to increase exposure, users can achieve leverage using a flash loan.

For example, Alice starts with $100 worth of collateral and wants 5x exposure. She flashloans $500 worth of the collateral and deposits it into Beraborrow, minting $400 worth of $NECT. Alice then sells the $NECT for collateral, giving her $500 ($400 from the sale plus her initial $100). This is enough to fully repay the flash loan.

As a result, Alice now has $500 worth of exposure to the collateral within Beraborrow but owes $400 worth of $NECT.

### Nectar

Nectar (`$NECT`) can be flash-minted for more than **hextillions** of value. You repay the entire amount plus`0.0001%` of the volume flash-minted.

With this mechanic, `$NECT` aspires to be the most efficient arbitraging asset in Beraborrow's ecosystem.

<figure><img src="/files/VsQsBenLFC9Ha4Ltch8j" alt=""><figcaption></figcaption></figure>

### Collateral Assets

It will depend on the type of collateral assets, since examples like `$siBGT` (staked `$iBGT`) will probably stay non-transferable, but except for this rare edge case all collateral types will be flashloanable.

The current fee for collateral assets is `0.001%`over volume.

### Dev Integration

You will find the flash-mint endpoint for Nectar in its token address, and for the specific collateral type it will be in its`DenManager` contract.

The endpoints follows the [IERC3156 ](https://eips.ethereum.org/EIPS/eip-3156)standard:

```solidity
function flashLoan(
    IERC3156FlashBorrower receiver,
    address token,
    uint256 amount,
    bytes calldata data
) external returns (bool) {
  ...
  require(
      receiver.onFlashLoan(msg.sender, token, amount, fee, data) == keccak256("ERC3156FlashBorrower.onFlashLoan"),
      "IERC3156: Callback failed"
  );
  ...
  /// @dev Remember to repay the amount + fee
}
```


---

# Agent Instructions: 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:

```
GET https://beraborrow.gitbook.io/docs/borrowing/flash-loans.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
