Skip to main content
Track SPL token transfers to build token analytics, monitor wallet activity, or analyze token flow patterns.

Use Case

Token transfer tracking enables you to:
  • Build token transfer analytics and volume trackers
  • Monitor wallet token activity
  • Analyze transfer patterns
  • Track token mints and burns

Code Example

curl --compressed -X POST 'https://portal.sqd.dev/datasets/solana-mainnet/stream' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "solana",
    "fromBlock": 280000000,
    "toBlock": 280000003,
    "fields": {
      "block": {
        "number": true,
        "timestamp": true
      },
      "tokenBalance": {
        "account": true,
        "preMint": true,
        "postMint": true,
        "preAmount": true,
        "postAmount": true,
        "preOwner": true,
        "postOwner": true
      }
    },
    "tokenBalances": [{
      "preMint": ["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"]
    }]
  }'
Try it yourself with the interactive query interface below:

Key Parameters

ParameterDescription
preMintToken mint address before the transaction
postMintToken mint address after the transaction
preAmountToken balance before the transaction
postAmountToken balance after the transaction
preOwnerToken account owner before the transaction
postOwnerToken account owner after the transaction
accountToken account address

Expected Output

{
  "header": {
    "number": 259985000,
    "timestamp": 1697544779
  },
  "tokenBalances": [
    {
      "account": "TokenAccountAddress...",
      "preMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "postMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "preAmount": "1000000",
      "postAmount": "2000000",
      "preOwner": "SenderAddress...",
      "postOwner": "RecipientAddress..."
    }
  ]
}

Track Specific Token Account

Monitor transfers for a specific token account:
curl --compressed -X POST 'https://portal.sqd.dev/datasets/solana-mainnet/stream' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "solana",
    "fromBlock": 280000000,
    "toBlock": 280000003,
    "fields": {
      "tokenBalance": {
        "account": true,
        "preAmount": true,
        "postAmount": true
      }
    },
    "tokenBalances": [{
      "account": ["SpecificTokenAccountAddress"]
    }]
  }'

Performance Tips

  1. Filter by mint: Query specific tokens instead of all transfers
  2. Use slot ranges: Process data in 10k-50k slot batches
  3. Request minimal fields: Only request fields you need
  4. Filter by account: Monitor specific token accounts
Last modified on November 18, 2025