# ERC20 interface (IERC20.sol)

View Source: [openzeppelin-solidity/contracts/token/ERC20/IERC20.sol](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol)

**↘ Derived Contracts:** [**ERC20**](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md)

**IERC20**

see <https://eips.ethereum.org/EIPS/eip-20>

**Events**

```javascript
event Transfer(address indexed from, address indexed to, uint256  value);
event Approval(address indexed owner, address indexed spender, uint256  value);
```

## Functions

* [transfer(address to, uint256 value)](/polymath/api/ierc20.md#transfer)
* [approve(address spender, uint256 value)](/polymath/api/ierc20.md#approve)
* [transferFrom(address from, address to, uint256 value)](/polymath/api/ierc20.md#transferfrom)
* [totalSupply()](/polymath/api/ierc20.md#totalsupply)
* [balanceOf(address who)](/polymath/api/ierc20.md#balanceof)
* [allowance(address owner, address spender)](/polymath/api/ierc20.md#allowance)

### transfer

⤿ Overridden Implementation(s): [ERC20.transfer](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#transfer),[SecurityToken.transfer](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/SecurityToken.md#transfer)

```javascript
function transfer(address to, uint256 value) external nonpayable
returns(bool)
```

**Arguments**

| Name  | Type    | Description |
| ----- | ------- | ----------- |
| to    | address |             |
| value | uint256 |             |

### approve

⤿ Overridden Implementation(s): [ERC20.approve](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#approve)

```javascript
function approve(address spender, uint256 value) external nonpayable
returns(bool)
```

**Arguments**

| Name    | Type    | Description |
| ------- | ------- | ----------- |
| spender | address |             |
| value   | uint256 |             |

### transferFrom

⤿ Overridden Implementation(s): [ERC20.transferFrom](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#transferfrom),[SecurityToken.transferFrom](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/SecurityToken.md#transferfrom)

```javascript
function transferFrom(address from, address to, uint256 value) external nonpayable
returns(bool)
```

**Arguments**

| Name  | Type    | Description |
| ----- | ------- | ----------- |
| from  | address |             |
| to    | address |             |
| value | uint256 |             |

### totalSupply

⤿ Overridden Implementation(s): [ERC20.totalSupply](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#totalsupply)

```javascript
function totalSupply() external view
returns(uint256)
```

**Arguments**

| Name | Type | Description |
| ---- | ---- | ----------- |

### balanceOf

⤿ Overridden Implementation(s): [ERC20.balanceOf](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#balanceof)

```javascript
function balanceOf(address who) external view
returns(uint256)
```

**Arguments**

| Name | Type    | Description |
| ---- | ------- | ----------- |
| who  | address |             |

### allowance

⤿ Overridden Implementation(s): [ERC20.allowance](https://github.com/PolymathNetwork/polymath-core/tree/096ba240a927c98e1f1a182d2efee7c4c4c1dfc5/docs/api/ERC20.md#allowance)

```javascript
function allowance(address owner, address spender) external view
returns(uint256)
```

**Arguments**

| Name    | Type    | Description |
| ------- | ------- | ----------- |
| owner   | address |             |
| spender | address |             |


---

# 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://developers.polymath.network/polymath/api/ierc20.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.
