# TransferTokens

{% hint style="info" %}
This function triggers a modal for the user to confirm the transfer
{% endhint %}

## Description

Function to trigger a transfer for a native or ERC20 token. This will trigger a confirmation modal displaying a summary of the transaction and associated fees for the user.

## Details

### Signature

`TransferTokens(args)`

### Arguments

<table><thead><tr><th width="258">Parameter</th><th width="114">Type</th><th>Definition</th></tr></thead><tbody><tr><td><code>args.callback?</code></td><td>Function</td><td><p>Function to callback upon txhash, success or failed transfer. <br>Structure of result object passed into callback function:</p><pre class="language-json" data-line-numbers><code class="lang-json"><strong>{
</strong><strong>    "status": "TXHASH", // "TXHASH"/"SUCCESS"/"FAILED"
</strong><strong>    "errorMsg": "", 
</strong><strong>    "txHash": "0xec90b7c220b1d9550c202ed7adb7db97be2b8c8b9f422bb2d3c555498d95ef49",
</strong><strong>    "from": "0xb8E46105a6F11E3250837897b3A10450716b28d8",
</strong><strong>    "to": "0xfFEaf294116b610d0cdD4afaAfe861563c72BB76",
</strong><strong>    "amount": "0.1",
</strong><strong>    "currency": Object // type Currency class
</strong><strong>}
</strong></code></pre></td></tr><tr><td><code>args.to?</code></td><td>String</td><td>Address to send tokens to. If not passed in, will prompt user to enter address.</td></tr><tr><td><code>args.amount?</code></td><td>String</td><td>Amount to send in <strong>display units</strong> of the currency. So if you want the user to pay 0.5 ETH, pass in '0.5' to this field. If value not passed in, will prompt user to pass in the amount</td></tr><tr><td><code>args.currency?</code></td><td>asset (class)</td><td>Asset object of the currency you want to send. If value not passed in, will prompt user to pass in the currency</td></tr></tbody></table>

### Return Value

None

## Example

Calling transfer without args

{% code lineNumbers="true" %}

```jsx
import { useMetafi } from '@metafi/react-sdk';

function App() {
    const { TransferTokens } = useMetafi();
    
    const transfer = () => {
        TransferTokens(res => console.log("received result from transfer", res));
    };

    return (
        <>
            <button onClick={transfer}>Transfer ETH</button>
        </>
    );
};
```

{% endcode %}

Calling transfer with args

{% code lineNumbers="true" %}

```jsx
import { useMetafi, assets } from '@metafi/react-sdk';

function App() {
    const { TransferTokens } = useMetafi();
    
    const transfer = () => {
        TransferTokens({
            userIdentifier: "12345",
            callback: (res) => {
                console.log("received result from transfer", res)
            },
            "to": "0xfFEaf294106b630d0cdD4afaAfe861563c72BB76",    // to
            "amount": "0.1",    // amount in display unit
            "currency": assets.eth,    // currency
        });
    };

    return (
        <>
           <button onClick={transfer}>Transfer ETH</button>
        </>
    );
};
```

{% endcode %}
