> For the complete documentation index, see [llms.txt](https://peridot-finance.gitbook.io/peridot-protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://peridot-finance.gitbook.io/peridot-protocol/technical-architecture/evm/core-contracts/pether.md).

# PEther

The **PEther** contract manages deposits and borrowing of the blockchain’s native asset (e.g., ETH), providing users with interest-bearing tokens in return for native asset deposits.

***

### 🛠️ Key Functions & Parameters

#### `mint() payable`

Deposit native blockchain asset (ETH) into the protocol.

* **Usage:** Send ETH directly with the call.
* User receives PEther tokens proportionally.

***

#### `redeem(uint redeemTokens)`

Withdraw ETH by redeeming PEther tokens.

* **Parameters:**
  * `redeemTokens`: Number of PEther tokens to redeem.

***

#### `redeemUnderlying(uint redeemAmount)`

Withdraw an exact amount of ETH directly.

* **Parameters:**
  * `redeemAmount`: Amount of ETH to withdraw.

***

#### `borrow(uint borrowAmount)`

Borrow ETH from the market.

* **Parameters:**
  * `borrowAmount`: Amount of ETH to borrow.

***

#### `repayBorrow() payable`

Repay borrowed ETH.

* **Usage:** Send ETH directly as repayment.

***

#### `balanceOfUnderlying(address owner)`

Returns user's underlying ETH balance (including accrued interest).

* **Parameters:**
  * `owner`: User wallet address.
* **Returns:**
  * User's underlying ETH balance.

***

### 📈 View Functions & Information

* `exchangeRateCurrent()`: Current exchange rate between PEther and underlying ETH.
* `getCash()`: Shows total ETH liquidity available in the market.
