Wallet Tracker API

Comprehensive tracking and analysis service for wallet activities across multiple tokens.

Overview

The Wallet Tracker API provides detailed tracking and analysis of wallet activities across multiple tokens. It returns comprehensive information about trades, holdings, and wallet statistics for specified wallet addresses, allowing you to monitor wallet behavior patterns and track historical performance.

Endpoint

GET /api/wallet-tracker

Parameters

ParameterTypeDescription
walletsstringComma-separated list of wallet addresses to track

Headers

HeaderDescription
x-api-keyYour API key for authentication

Response Format

Basic Trade Information

  • chainId: The blockchain network ID
  • blockTimestamp: Unix timestamp of the block
  • blockNumber: Block number
  • transactionHash: Hash of the transaction
  • logIndex: Index of the log in the transaction
  • transactionIndex: Index of the transaction in the block

Token Information

  • tokenIn: Address of the input token
  • tokenOut: Address of the output token
  • amountIn: Amount of input token
  • amountOut: Amount of output token
  • amountUSD: Transaction value in USD

Price Information

  • suspectedBaseTokenPrice: Price of the base token in quote token
  • suspectedBaseTokenPriceUSD: Price of the base token in USD
  • poolAddress: Address of the liquidity pool

Wallet Statistics

  • currentlyHoldingAmount: Current token balance
  • holderSince: Timestamp when the wallet first held the token
  • totalBoughtAmount: Total amount of tokens bought
  • totalBoughtUSD: Total USD value of buys
  • totalSoldAmount: Total amount of tokens sold
  • totalSoldUSD: Total USD value of sells
  • tags: Array of wallet tags

Usage Examples

1
Using Node.js with fetch:

import fetch from 'node-fetch';

const WALLETS = [
    'WALLET_ADDRESS_1',
    'WALLET_ADDRESS_2'
].join(',');
const API_KEY = 'YOUR_API_KEY';

fetch(`https://api.solapi.live/api/wallet-tracker?wallets=${WALLETS}`, {
    headers: {
        'x-api-key': API_KEY
    }
})
.then(response => response.json())
.then(data => {
    if (data.tradeHistory && data.tradeHistory.length > 0) {
        console.log('\nTrades Summary:');
        console.log('==============');
        console.log(`Total Trades: ${data.tradeHistory.length}\n`);

        // Group trades by wallet
        const tradesByWallet = {};
        data.tradeHistory.forEach(trade => {
            const wallet = trade.makerData.address;
            if (!tradesByWallet[wallet]) {
                tradesByWallet[wallet] = [];
            }
            tradesByWallet[wallet].push(trade);
        });

        // Display trades for each wallet
        Object.entries(tradesByWallet).forEach(([wallet, trades]) => {
            console.log(`\nWallet: ${wallet}`);
            console.log('='.repeat(50));
            console.log(`Total Trades: ${trades.length}\n`);

            trades.forEach((trade, index) => {
                console.log(`Trade #${index + 1}:`);
                console.log('----------------');
                
                // Basic trade info
                console.log('Transaction Info:');
                console.log(`Hash: ${trade.transactionHash}`);
                console.log(`Time: ${new Date(trade.timestamp * 1000).toISOString()}`);
                console.log(`Block: ${trade.blockNumber}`);
                
                // Token amounts and prices
                console.log('\nTrade Details:');
                console.log(`Token In: ${trade.tokenIn}`);
                console.log(`Token Out: ${trade.tokenOut}`);
                console.log(`Amount In: ${trade.amountIn}`);
                console.log(`Amount Out: ${trade.amountOut}`);
                console.log(`Amount USD: $${trade.amountUSD}`);
                
                // Maker data
                if (trade.makerData) {
                    console.log('\nWallet Stats:');
                    console.log(`Current Balance: ${trade.makerData.currentlyHoldingAmount}`);
                    console.log(`Holder Since: ${new Date(trade.makerData.holderSince * 1000).toISOString()}`);
                    
                    console.log('\nTrading History:');
                    console.log(`Total Bought: ${trade.makerData.totalBoughtAmount} ($${trade.makerData.totalBoughtUSD})`);
                    console.log(`Total Sold: ${trade.makerData.totalSoldAmount} ($${trade.makerData.totalSoldUSD})`);
                    console.log(`Buy Transactions: ${trade.makerData.totalBuyTransactions}`);
                    console.log(`Sell Transactions: ${trade.makerData.totalSellTransactions}`);
                    
                    if (trade.makerData.tags && trade.makerData.tags.length > 0) {
                        console.log(`Tags: ${trade.makerData.tags.join(', ')}`);
                    }
                }
            });
        });
    } else {
        console.log('No trades found for these wallets.');
    }
})
.catch(error => console.error('Error:', error));

2
Using curl:

curl "https://api.solapi.live/api/wallet-tracker?wallets=WALLET_ADDRESS_1,WALLET_ADDRESS_2" \
  -H "x-api-key: YOUR_API_KEY"

Error Handling

Status CodeDescription
400When no wallet addresses are provided
500When there's an error fetching wallet tracker data

Notes

  • The API supports tracking multiple wallets simultaneously
  • All timestamps are in Unix format
  • Token amounts are provided in their native decimals
  • USD values are calculated based on current market prices
  • The API includes metadata about tokens when available
  • Wallet tags help identify the nature and behavior of wallets