Skip to main content
This is an unstable API that may change with time. The unstable prefix indicates that breaking changes may occur in future releases. Join our Telegram developer community for updates.

Overview

The List Wallet Transfers API allows you to retrieve the transfer history for a wallet, including both inbound and outbound token transfers. This endpoint supports multiple blockchains and provides cursor-based pagination for efficient data retrieval.

Prerequisites

  • You have a wallet created.
  • API Key: You have an API key with the scope: wallets.transaction.read. In staging, all scopes are included.

Retrieving Wallet Transfers

Get Ethereum Sepolia USDC Transfers

curl --request GET \
  --url 'https://staging.crossmint.com/api/unstable/wallets/email:[email protected]:evm-smart-wallet/transfers?chain=ethereum-sepolia&tokens=usdc&status=successful&limit=10' \
  --header 'X-API-KEY: <your-server-api-key>'

Paginating Through Results

When your wallet has a lot of transactions, results are split into pages. Use the nextCursor value from each response in your next API call to get the next page of results.
async function getAllTransfers(walletLocator, chain, tokens) {
    const baseUrl = `https://staging.crossmint.com/api/unstable/wallets/${walletLocator}/transfers`;
    const allTransfers = [];
    let cursor = null;

    do {
        const params = new URLSearchParams({
            chain,
            tokens,
            status: "successful",
            limit: "30"
        });

        if (cursor) {
            params.set("cursor", cursor);
        }

        const response = await fetch(`${baseUrl}?${params}`, {
            headers: { "X-API-KEY": "<your-server-api-key>" }
        });

        const result = await response.json();
        allTransfers.push(...result.data);
        cursor = result.nextCursor;
    } while (cursor);

    return allTransfers;
}

API Reference

Two endpoints are available:
  • GET /unstable/wallets/{walletLocator}/transfers — Server-side API key authentication
  • GET /unstable/wallets/me:walletLocator/transfers — JWT authentication for the current user’s wallet
See the API reference for full parameter details and to test requests in the playground.

Important Notes

  • EVM chains: Fully supported. Results are cached for 10 minutes to improve performance.
  • Stellar: Supported with tokens usdc, usdm0, usdm1, and usdxm.
  • Solana: Not currently supported.
Outgoing smart wallet native token transfers (e.g., ETH, MATIC) are not supported on all EVM chains. This limitation affects chains where internal transaction tracing is not available.
All timestamps are returned in ISO 8601 format (e.g., 2025-01-15T10:30:00.000Z).
The API returns both inbound (wallets.transfer.in) and outbound (wallets.transfer.out) transfers. Outgoing transfers initiated through Crossmint include a transferId that can be used with the Get Transaction API.