> For the complete documentation index, see [llms.txt](https://docs.belugas.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.belugas.io/atokens/mint.md).

# Mint

The mint function transfers an asset into the protocol, which begins accumulating interest based on the current [Supply Rate](/atokens/supply-rate.md) for the asset. The user receives a quantity of bTokens equal to the underlying tokens supplied, divided by the current [Exchange Rate](/atokens/exchange-rate.md).

**BErc20**

```
function mint(uint mintAmount) returns (uint)
```

* `msg.sender`: The account which shall supply the asset, and own the minted bTokens.
* `mintAmount`: The amount of the asset to be supplied, in units of the underlying asset.
* `RETURN`: 0 on success, otherwise an [Error code](/atokens/error-codes.md)

Before supplying an asset, users must first [approve](https://eips.ethereum.org/EIPS/eip-20#approve) the bToken to access their token balance.

**CEther**

```
function mint() payable
```

* `msg.value` *\[payable]*: The amount of ether to be supplied, in wei.
* `msg.sender`: The account which shall supply the ether, and own the minted bTokens.
* `RETURN`: No return, reverts on error.

**Solidity**

```
Erc20 underlying = Erc20(0xToken...);     // get a handle for the underlying asset contract
BErc20 bToken = BErc20(0x3FDA...);        // get a handle for the corresponding bToken contract
underlying.approve(address(bToken), 100); // approve the transfer
assert(bToken.mint(100) == 0);            // mint the bTokens and assert there is no error
```

**Web3 1.0**

```javascript
const bToken = CEther.at(0x3FDB...);
await bToken.methods.mint().send({from: myAccount, value: 50});
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.belugas.io/atokens/mint.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
