> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portalhq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# sendAsset

> Send tokens from your wallet to another address.

## Function Signature

```dart theme={null}
Future<String> sendAsset({
  required String chainId,
  required String to,
  required String token,
  required String amount,
  String? signatureApprovalMemo,
  bool? sponsorGas,
})
```

## Description

Send tokens from your Portal wallet to another address. This is the recommended method for simple token transfers.

## Parameters

| Parameter               | Type     | Required | Description                                          |
| ----------------------- | -------- | -------- | ---------------------------------------------------- |
| `chainId`               | `String` | Yes      | The chain ID in CAIP-2 format                        |
| `to`                    | `String` | Yes      | The recipient address                                |
| `token`                 | `String` | Yes      | Token address or `"NATIVE"` for native token         |
| `amount`                | `String` | Yes      | Amount to send (in human-readable format)            |
| `signatureApprovalMemo` | `String` | No       | Optional memo for transaction approval               |
| `sponsorGas`            | `bool`   | No       | Whether to use gas sponsorship (Account Abstraction) |

## Returns

**`String`** - The transaction hash.

## Example

```dart theme={null}
import 'package:portal_flutter/portal_flutter.dart';

final portal = Portal();

// Send native token
final txHash = await portal.sendAsset(
  chainId: 'eip155:1',
  to: '0xRecipientAddress',
  token: 'NATIVE',
  amount: '0.01',
);

print('Transaction hash: $txHash');
```

### Send ERC-20 Token

```dart theme={null}
final txHash = await portal.sendAsset(
  chainId: 'eip155:1',
  to: '0xRecipientAddress',
  token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
  amount: '10',
);
```

### With Gas Sponsorship Control

```dart theme={null}
final txHash = await portal.sendAsset(
  chainId: 'eip155:1',
  to: '0xRecipientAddress',
  token: 'NATIVE',
  amount: '0.01',
  sponsorGas: false, // User pays gas
);
```

## Errors

| Code                   | Description                |
| ---------------------- | -------------------------- |
| `NOT_INITIALIZED`      | Portal was not initialized |
| `INSUFFICIENT_BALANCE` | Not enough tokens to send  |
| `TRANSACTION_FAILED`   | The transaction failed     |

## Related

* [Send tokens guide](../guide/send-tokens)
* [sendTransaction](./sendtransaction)
* [receiveTestnetAsset](./receivetestnetasset)
