Skip to main content
GET
/
2
/
wallet
/
analysis
Get wallet trading analysis
curl --request GET \
  --url https://demo-api.mobula.io/api/2/wallet/analysis
{
  "data": {
    "winRateDistribution": {
      ">500%": 123,
      "200%-500%": 123,
      "50%-200%": 123,
      "0%-50%": 123,
      "-50%-0%": 123,
      "<-50%": 123
    },
    "marketCapDistribution": {
      ">1000M": 123,
      ">100M": 123,
      "10M-100M": 123,
      "1M-10M": 123,
      "100k-1M": 123,
      "<100k": 123
    },
    "periodTimeframes": [
      {
        "date": "<string>",
        "realized": 123
      }
    ],
    "calendarBreakdown": [
      {
        "date": "<string>",
        "volumeBuy": 123,
        "volumeSell": 123,
        "totalVolume": 123,
        "buys": 123,
        "sells": 123,
        "realizedPnlUSD": 123
      }
    ],
    "stat": {
      "totalValue": 123,
      "periodTotalPnlUSD": 123,
      "periodRealizedPnlUSD": 123,
      "periodRealizedRate": 123,
      "periodActiveTokensCount": 123,
      "periodWinCount": 123,
      "fundingInfo": {
        "from": "<string>",
        "date": "<string>",
        "chainId": "<string>",
        "txHash": "<string>",
        "amount": "<string>",
        "formattedAmount": 123,
        "currency": {
          "name": "<string>",
          "symbol": "<string>",
          "logo": "<string>",
          "decimals": 123,
          "address": "<string>"
        },
        "fromWalletLogo": "<string>",
        "fromWalletTag": "<string>"
      },
      "periodVolumeBuy": 123,
      "periodVolumeSell": 123,
      "periodBuys": 123,
      "periodSells": 123,
      "nativeBalance": {
        "rawBalance": "<string>",
        "formattedBalance": 123,
        "assetId": 123,
        "chainId": "<string>",
        "address": "<string>",
        "decimals": 123,
        "name": "<string>",
        "symbol": "<string>",
        "logo": "<string>",
        "price": 123,
        "balanceUSD": 123
      },
      "periodBuyTokens": 123,
      "periodSellTokens": 123,
      "periodTradingTokens": 123,
      "holdingTokensCount": 123,
      "holdingDuration": 123,
      "tradingTimeFrames": 123,
      "winRealizedPnl": 123,
      "winRealizedPnlRate": 123,
      "winToken": {
        "address": "<string>",
        "chainId": "<string>",
        "name": "<string>",
        "symbol": "<string>",
        "logo": "<string>",
        "decimals": 123
      }
    },
    "labels": [
      "<string>"
    ],
    "walletMetadata": {
      "entityName": "<string>",
      "entityLogo": "<string>",
      "entityLabels": [
        "<string>"
      ],
      "entityType": "<string>",
      "entityDescription": "<string>",
      "entityTwitter": "<string>",
      "entityWebsite": "<string>",
      "entityGithub": "<string>",
      "entityDiscord": "<string>",
      "entityTelegram": "<string>"
    },
    "platform": {
      "id": "<string>",
      "name": "<string>",
      "logo": "<string>"
    }
  }
}

Query details

This endpoint provides comprehensive trading analytics for a wallet including PnL analysis, win rate distributions, market cap distributions, and detailed trading statistics over a specified period.
ParameterRequiredDescription
walletYesWallet address to analyze.
blockchainsNoComma-separated list of blockchain IDs (e.g., "ethereum,base,solana:solana"). If not provided, analysis will be performed across all chains.
periodNoAnalysis period. Supported values: 1d, 7d, 30d, 90d. Default: 7d.
fromNoStart timestamp in milliseconds (alternative to period). Must be used with to.
toNoEnd timestamp in milliseconds (alternative to period). Must be greater than from.

Step-by-Step Tutorial and Video Walkthrough

  • Check out the guide: Here

Response Structure

The endpoint returns comprehensive trading analytics including:

Win Rate Distribution

Distribution of trades by profit/loss percentage:
  • >500%: Number of trades with over 500% profit
  • 200%-500%: Number of trades with 200-500% profit
  • 50%-200%: Number of trades with 50-200% profit
  • 0%-50%: Number of trades with 0-50% profit
  • -50%-0%: Number of trades with 0-50% loss
  • <-50%: Number of trades with over 50% loss

Market Cap Distribution

Distribution of traded tokens by market capitalization:
  • >1000M: Number of tokens with market cap over $1B
  • >100M: Number of tokens with market cap 100M100M-1B
  • 10M-100M: Number of tokens with market cap 10M10M-100M
  • 1M-10M: Number of tokens with market cap 1M1M-10M
  • 100k-1M: Number of tokens with market cap 100K100K-1M
  • <100k: Number of tokens with market cap under $100K

Trading Statistics (stat object)

  • totalValue: Current total portfolio value in USD
  • periodTotalPnlUSD: Total PnL (realized + unrealized) for the period
  • periodRealizedPnlUSD: Realized PnL for the period
  • periodRealizedRate: Realized PnL rate (%)
  • periodActiveTokensCount: Number of tokens traded during the period
  • periodWinCount: Number of winning trades
  • periodVolumeBuy: Total buy volume in USD
  • periodVolumeSell: Total sell volume in USD
  • periodBuys: Number of buy transactions
  • periodSells: Number of sell transactions
  • periodBuyTokens: Number of unique tokens bought
  • periodSellTokens: Number of unique tokens sold
  • periodTradingTokens: Number of unique tokens traded
  • holdingTokensCount: Current number of tokens held
  • holdingDuration: Average holding duration in days
  • tradingTimeFrames: Number of trading sessions
  • winRealizedPnl: Total realized profit from winning trades
  • winRealizedPnlRate: Win rate percentage
  • nativeBalance: Native token balance information
  • winToken: Details of the most profitable token (if any)
  • fundingInfo: Information about initial wallet funding

Period Timeframes

Array of daily PnL data points with:
  • date: Date of the data point
  • realized: Realized PnL for that day

Calendar Breakdown

Array of day-by-day breakdown entries with:
  • date: Date of the entry
  • volumeBuy: Buy volume for that day in USD
  • volumeSell: Sell volume for that day in USD
  • totalVolume: Total volume for that day in USD
  • buys: Number of buy transactions
  • sells: Number of sell transactions
  • realizedPnlUSD: Realized PnL for that day in USD

Labels

Array of labels associated with the wallet (e.g., “Smart Money”, “Early Adopter”, etc.)

Wallet Metadata

Enriched wallet metadata (entity name, logo, labels) from known wallets database. null if not available.

Platform

Trading platform used by the wallet with full metadata (id, name, logo). null if not available.

Usage Examples

  • Analyze wallet trading performance over the last 7 days on Ethereum
curl -X GET "https://api.mobula.io/api/2/wallet/analysis?wallet=0xBb7Ae0458b0dAe031460E6EE9f014b275db49f7f&blockchains=ethereum&period=7d"
  • Analyze wallet across all chains for 30 days
curl -X GET "https://api.mobula.io/api/2/wallet/analysis?wallet=0xBb7Ae0458b0dAe031460E6EE9f014b275db49f7f&period=30d"
  • Get comprehensive 90-day trading analysis on Base
curl -X GET "https://api.mobula.io/api/2/wallet/analysis?wallet=0x3406bf0fdf29c2928988a9420f4b320fe4eca538&blockchains=base&period=90d"

Rate Limiting

This endpoint has a rate limit of 5 requests per minute per API key due to the computational intensity of the analysis.

Use Cases

  • Portfolio Performance Tracking: Monitor trading performance and PnL over time
  • Wallet Scoring: Score wallets based on trading metrics for smart money identification
  • Risk Analysis: Analyze trading patterns and risk distribution
  • Trading Strategy Analysis: Understand trading behavior and token preferences
  • Due Diligence: Research wallet trading history before following or copying trades

Query Parameters

wallet
string
required

Wallet address to analyze

Minimum string length: 1
blockchains
string

Comma-separated list of blockchain IDs (e.g., "ethereum,base,solana:solana"). If omitted, all chains.

period
string

Analysis period: 1d, 7d, 30d, or 90d (default: 7d)

from
number | null

Start timestamp in milliseconds (alternative to period)

to
number | null

End timestamp in milliseconds (alternative to period)

Response

200 - application/json

Wallet analysis response

data
object
required