> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-add-b20-spec.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IB20.transfer

> Generated B20 reference for transfer(address,uint256).

[Related concept](/base-chain/specs/upgrades/beryl/b20/specification/concepts/token-lifecycle)

## Signature

```solidity theme={null}
function transfer(address to, uint256 amount) external returns (bool);
```

| Field               | Value                       |
| ------------------- | --------------------------- |
| Selector            | `0xa9059cbb`                |
| Canonical signature | `transfer(address,uint256)` |

## Description

Transfers `amount` from `msg.sender` to `to`. Emits `Transfer`.
Dev: Reverts with `ContractPaused(TRANSFER)` when `TRANSFER` is paused.
Dev: Reverts with `InvalidReceiver` when `to == address(0)`.
Dev: Reverts with `InvalidSender` when `msg.sender == address(0)`.
Dev: Reverts with `PolicyForbids(TRANSFER_SENDER_POLICY, ...)` when `msg.sender` is not authorized.
Dev: Reverts with `PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)` when `to` is not authorized.
Dev: Reverts with `InsufficientBalance` when `msg.sender`'s balance is below `amount`.
Param: to     Destination address.
Param: amount Amount to transfer.
Return: Always `true` on success.

## Access control

Read-only or ERC-20-standard access rules unless the NatSpec states otherwise.

## Policy interaction

Checks `TRANSFER_SENDER_POLICY` and `TRANSFER_RECEIVER_POLICY`; `approve` and `permit` are not policy-gated.

## Example

```solidity theme={null}
IB20(target).transfer(arg0, arg1);
```

## Related

* [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20)
* [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses)
