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>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
},
"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>",
"extra": {}
},
"platform": {
"id": "<string>",
"name": "<string>",
"logo": "<string>"
},
"networkBreakdown": [
{
"chainId": "<string>",
"networkId": 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>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
},
"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
}
}
}
]
}
}Wallet
Get Wallet Trading Analysis
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>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
},
"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>",
"extra": {}
},
"platform": {
"id": "<string>",
"name": "<string>",
"logo": "<string>"
},
"networkBreakdown": [
{
"chainId": "<string>",
"networkId": 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>",
"fromWalletMetadata": {
"entityName": "<string>",
"entityLogo": "<string>",
"entityLabels": [
"<string>"
],
"entityType": "<string>",
"entityDescription": "<string>",
"entityTwitter": "<string>",
"entityWebsite": "<string>",
"entityGithub": "<string>",
"entityDiscord": "<string>",
"entityTelegram": "<string>",
"extra": {}
}
},
"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
}
}
}
]
}
}Optional per-network breakdown
By default,/api/2/wallet/analysis keeps the same response shape and returns aggregated wallet trading stats.
Set includeNetworkBreakdown=true to also receive per-chain stats in data.networkBreakdown.
curl 'https://api.mobula.io/api/2/wallet/analysis?wallet=0xd8B207De2B3a38f45D5b2BAE46D7755CA6a5fC2B&period=30d&includeNetworkBreakdown=true'
data.stat object:
networkBreakdown: Array<{
chainId: string;
networkId: number | null;
stat: WalletAnalysisStat;
}>
networkBreakdown[].stat uses the same data model as the top-level data.stat field, so clients can reuse the same parser for aggregated and per-network wallet analysis.Query Parameters
Wallet address to analyze
Minimum string length:
1Comma-separated list of chain IDs (e.g., "evm:1,evm:8453,solana:solana"). If omitted, all chains.
Analysis period: 1d, 7d, 30d, or 90d (default: 7d)
Start timestamp in milliseconds (alternative to period)
End timestamp in milliseconds (alternative to period)
When true, includes per-chain wallet analysis using the same stat shape as the top-level stat field.
Response
200 - application/json
Wallet analysis response
Show child attributes
Show child attributes
⌘I