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:transactions.read. In staging, all scopes are included.
Retrieving Wallet Transfers
- EVM Chains
- Solana
- Stellar
API Reference
Two endpoints are available:GET /unstable/wallets/{walletLocator}/transfers— Server-side API key authenticationGET /unstable/wallets/me:walletLocator/transfers— JWT authentication for the current user’s wallet
tokens and status filters are optional.
Important Notes
Chain Support
Chain Support
- EVM chains: Fully supported. Results are cached for 10 minutes to improve performance.
- Solana: Supported. Includes native SOL and SPL token transfers (e.g., USDC). Results are cached for 10 minutes.
- Stellar: Supported for all Soroban and SEP-41 tokens.
EVM Limitations
EVM Limitations
Outgoing native-token transfers (e.g., ETH, MATIC) initiated by a smart wallet are only tracked on Ethereum, Polygon, and Ethereum Sepolia. On other EVM chains, these specific transfers won’t appear in the transfer history. This is unrelated to token support — ERC-20 transfers and incoming native-token transfers are tracked on every EVM chain; only outgoing smart-wallet-initiated native transfers are affected.
Pagination
Pagination
- Uses cursor-based pagination for efficient data retrieval
- Supports bidirectional pagination with
nextCursorandpreviousCursor - The cursor encodes the sort order, so you don’t need to re-specify it when paginating
- Cached results expire after 10 minutes on EVM and Solana chains; refresh to load the latest data if the cursor expires
Timestamps
Timestamps
All timestamps are returned in ISO 8601 format (e.g.,
2025-01-15T10:30:00.000Z).Transfer Types
Transfer Types
The API returns both inbound (
wallets.transfer.in) and outbound (wallets.transfer.out) transfers. Transfers initiated through Crossmint include a transferId that can be used with the Get Transaction API.
