> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-wallets-docs-2-5.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Transfer Tokens

> Transfer tokens between wallets using Crossmint's APIs

## Prerequisites

* Ensure you have a wallet created.
* **API Key**: Ensure you have an API key with the scopes: `wallets:transactions.create`.

## Sending tokens

<Note>
  Sending and receiving tokens across chains is available under private access. [Contact
  us](https://www.crossmint.com/contact/sales) if you need access
</Note>

<Tabs>
  <Tab title="React">
    ```typescript theme={null}
    import { useWallet } from '@crossmint/client-sdk-react-ui';

    const { wallet } = useWallet();

    const { hash, explorerLink } = await wallet.send(walletLocator, tokenLocator, amount);
    ```

    ### Parameters

    <ParamField path="walletLocator" type="string" required>
      The wallet locator to send the tokens from.
      A wallet locator can be of the format:

      * `<walletAddress>`
      * `email:<email>:<walletType>`
      * `userId:<userId>:<walletType>`
      * `userId:<userId>:<walletType> (white label user example)`
      * `phoneNumber:<phoneNumber>:<walletType>`
      * `twitter:<handle>:<walletType>`
      * `x:<handle>:<walletType>`
    </ParamField>

    <ParamField path="tokenLocator" type="string" required>
      The token locator to send the tokens to.

      A token locator that supports native tokens, fungible tokens, and NFTs across different chains. It can be of the format:

      * `address[:tokenId]`
      * `symbol`
    </ParamField>

    <ParamField path="amount" type="string" required>
      The amount of tokens to send.
    </ParamField>

    ### Returns

    <ParamField path="hash" type="string">
      The hash of the transaction.
    </ParamField>

    <ParamField path="explorerLink" type="string">
      The explorer link of the transaction.
    </ParamField>
  </Tab>

  <Tab title="Node.js">
    ```typescript theme={null}
    const wallet = await crossmintWallets.getWallet(walletLocator);

    const { hash, explorerLink } = await wallet.send(walletLocator, tokenLocator, amount);
    ```

    ### Parameters

    <ParamField path="walletLocator" type="string" required>
      The wallet locator to send the tokens from.
      A wallet locator can be of the format:

      * `<walletAddress>`
      * `email:<email>:<walletType>`
      * `userId:<userId>:<walletType>`
      * `userId:<userId>:<walletType> (white label user example)`
      * `phoneNumber:<phoneNumber>:<walletType>`
      * `twitter:<handle>:<walletType>`
      * `x:<handle>:<walletType>`
    </ParamField>

    <ParamField path="tokenLocator" type="string" required>
      The token locator to send the tokens to.

      A token locator that supports native tokens, fungible tokens, and NFTs across different chains. It can be of the format:

      * `address[:tokenId]`
      * `symbol`
    </ParamField>

    <ParamField path="amount" type="string" required>
      The amount of tokens to send.
    </ParamField>

    ### Returns

    <ParamField path="hash" type="string">
      The hash of the transaction.
    </ParamField>

    <ParamField path="explorerLink" type="string">
      The explorer link of the transaction.
    </ParamField>
  </Tab>

  <Tab title="React Native">
    ```typescript theme={null}
    import { useWallet } from '@crossmint/client-sdk-react-native-ui';

    const { wallet } = useWallet();

    const { hash, explorerLink } = await wallet.send(walletLocator, tokenLocator, amount);
    ```

    ### Parameters

    <ParamField path="walletLocator" type="string" required>
      The wallet locator to send the tokens from.
      A wallet locator can be of the format:

      * `<walletAddress>`
      * `email:<email>:<walletType>`
      * `userId:<userId>:<walletType>`
      * `userId:<userId>:<walletType> (white label user example)`
      * `phoneNumber:<phoneNumber>:<walletType>`
      * `twitter:<handle>:<walletType>`
      * `x:<handle>:<walletType>`
    </ParamField>

    <ParamField path="tokenLocator" type="string" required>
      The token locator to send the tokens to.

      A token locator that supports native tokens, fungible tokens, and NFTs across different chains. It can be of the format:

      * `address[:tokenId]`
      * `symbol`
    </ParamField>

    <ParamField path="amount" type="string" required>
      The amount of tokens to send.
    </ParamField>

    ### Returns

    <ParamField path="hash" type="string">
      The hash of the transaction.
    </ParamField>

    <ParamField path="explorerLink" type="string">
      The explorer link of the transaction.
    </ParamField>
  </Tab>
</Tabs>
