Skip to main content

Usage

Parameters

syncTransfers / syncTransfersAsync accept an object with:

Return Value

SyncOnChainTransfersResponse

Example Implementation

How It Works

  1. Calls POST /transactions/sync-on-chain on the backend
  2. Backend queries Voyager API for all token transfers for the wallet
  3. Compares with existing DB records by transaction hash
  4. Saves new transfers to the Transaction table (read-through cache)
  5. Returns { synced, total }
  6. Invalidates useGetTransactionList cache so new transfers appear immediately
After sync, useGetTransactionList returns both SDK-initiated transfers AND external receives.

When to Use

  • On wallet load: Sync once when user opens their wallet to discover any external receives
  • Pull-to-refresh: Let users manually trigger sync
  • After receiving funds: If user expects incoming funds from an external wallet
Synced transfers are cached in the database. Subsequent useGetTransactionList calls return them without re-querying Voyager.

Limitations

  • Only discovers token transfers (ERC-20). Contract interactions without transfers are not synced.
  • Voyager API rate limits apply. Avoid calling sync on every render.
  • First sync for a wallet with many transfers may take a few seconds (paginated, max 500 transfers per sync).