> For the complete documentation index, see [llms.txt](https://docs.fluidnft.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fluidnft.org/technical-resources/developers/contract-reference/weth-gateway/iwethgateway.md).

# IWETHGateway

{% tabs %}
{% tab title="IWETHGateway.sol" %}

```solidity
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.16;

interface IWETHGateway {
    function depositETH(
        uint256 reserveId,
        address onBehalfOf,
        uint16 referralCode
    ) external payable;

    function batchDepositETH(
        uint256[] calldata amounts,
        uint256[] calldata reserveIds,
        address[] calldata onBehalfOfs,
        uint16[] calldata referralCodes
    ) external payable;

    function withdrawETH(
        uint256 amount,
        uint256 reserveId,
        address to
    ) external;

    function batchWithdrawETH(
        uint256[] calldata amounts,
        uint256[] calldata reserveIds,
        address[] calldata tos
    ) external;

    function borrowETH(
        uint256 amount,
        uint256 tokenId,
        uint256 tokenValue,
        uint256 reserveId,
        uint256 duration,
        address onBehalfOf,
        uint16 referralCode
    ) external;

    function batchBorrowETH(
        uint256[] calldata amounts,
        uint256[] calldata tokenIds,
        uint256[] calldata tokenValues,
        uint256[] calldata reserveIds,
        uint256 duration,
        address onBehalfOf,
        uint16 referralCode
    ) external;

    function repayETH(
        uint256 borrowId,
        uint256 amount
    ) external payable;

    function batchRepayETH(
        uint256[] calldata borrowId,
        uint256[] calldata amounts
    ) external payable;

    function refinanceETH(
        uint256 borrowId,
        uint256 amount,
        uint256 duration
    ) external payable;

    function batchRefinanceETH(
        uint256[] calldata borrowIds,
        uint256[] calldata amounts,
        uint256[] calldata durations
    ) external payable;

    function bidETH(
        address asset,
        uint256 amount,
        uint256 borrowid,
        address onBehalfOf
    ) external payable;

    function batchBidETH(
        address[] calldata assets,
        uint256[] calldata amounts,
        uint256[] calldata borrowids,
        address[] calldata onBehalfOfs
    ) external payable;

    function authorizeExecutionDelegate() external;
}
```

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}
