# Read

<details>

<summary>ApprovedTokens</summary>

```solidity
ApprovedTokens() returns(address[])
```

Returns the list of tokens which can be exchanged against 1XMM, directly via the smart contract.

</details>

<details>

<summary>ETHDepositIsAllowed</summary>

```solidity
ETHDepositIsAllowed() returns(bool)
```

Returns whether deposits of ETH against 1XMM is allowed or not.

</details>

<details>

<summary>ETHExchangeIsAllowed</summary>

```solidity
ETHExchangeIsAllowed() returns(bool)
```

Returns whether it is allowed to exchange 1XMM tokens against ETH, directly via the smart contract.

</details>

<details>

<summary>EthExchangeRate</summary>

```solidity
EthExchangeRate() returns(uint64)
```

Returns the exchange ETH/1XMM rate for users who want to convert their 1XMM tokens into ETH.

<mark style="color:orange;">The rate is provided in basis points (bp)</mark>

</details>

<details>

<summary>allowance</summary>

```solidity
allowance(address owner, address spender) returns(uint256)
```

Returns the allowance provided by `owner` to `spender` .

</details>

<details>

<summary>availableTokens</summary>

```solidity
availableTokens() returns(uint256)
```

Returns the number of 1XMM tokens which have not been allocated yet.

`availableTokens = cap() - totalSupply()`

</details>

<details>

<summary>balanceOf</summary>

```solidity
balanceOf(address account) returns(uint256)
```

Returns the number of 1XMM tokens held by `account` .

<mark style="color:orange;">1XMM has 18 decimals</mark>

</details>

<details>

<summary>cap</summary>

```solidity
cap() returns(uint256)
```

Returns the maximum number of tokens which can be allocated. When tokens are burnt, cap is decreased and can never be increased again.

</details>

<details>

<summary>decimals</summary>

```solidity
decimals() returns(uint8)
```

Returns the number of decimals used by 1XMM tokens; decimals field is immutable and always equal to 18.

</details>

<details>

<summary>getApprovedTokens</summary>

```solidity
getApprovedTokens returns(address[])
```

Returns the list of tokens which have been approved for exchange against 1XMM tokens.

</details>

<details>

<summary>getAvailableQuantityOfETH</summary>

```solidity
getAvailableQuantityOfETH() returns(uint256)
```

Returns the amount of ETH which is available for exchange against 1XMM tokens, at ***ETHExchangeRate*** price.

</details>

<details>

<summary>getAvailableQuantityOfToken</summary>

```solidity
getAvailableQuantityOfToken(address tokenToBeReceived) returns(uint256 availableQuantity)
```

Returns the amount of `tokenToBeReceived` which are available for exchange against 1XMM tokens, at ***rate*** price.

</details>

<details>

<summary>getCCIPAdmin</summary>

```solidity
getCCIPAdmin() returns(address)
```

Returns the address of the ChainLink CCIPAdmin in charge of cross-chain transfers for 1XMM tokens.

</details>

<details>

<summary>getExchangeInfoForToken</summary>

```solidity
getExchangeInfoForToken(address tokenToBeReceived) returns (bool isAllowed, uint64 rate) 
```

Returns the exchange status for `tokenToBeReceived` against 1XMM tokens, and the `rate` of exchange. If `isAllowed` is false, exchange of `tokenToBeReceived` against 1XMM is not possible, even if a ***rate*** is indicated.

</details>

<details>

<summary>getReleasableAmount</summary>

```solidity
getReleasableAmount() returns(uint256 releasableAmt)
```

Returns the amount of vested tokens owned by `msg.sender` which are available for trading.

</details>

<details>

<summary>getRemainingVestedAmount</summary>

```solidity
getRemainingVestedAmount() returns(uint256 remainingVestedAmt)
```

Returns the amount of 1XMM tokens which are still vested.

</details>

<details>

<summary>owner</summary>

```solidity
owner() returns(address)
```

Returns the address of the 1XMM contract owner.

</details>

<details>

<summary>totalSupply</summary>

```solidity
totalSupply() returns(uint256)
```

Returns the amount of 1XMM tokens which have been allocated.

</details>


---

# 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://asagaia.gitbook.io/documentation/1xmm-project/api/1xmm-token/public-methods/read.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.
