GMGN Wallet Portfolio & PnL Tracker — Holdings & Profit avatar

GMGN Wallet Portfolio & PnL Tracker — Holdings & Profit

Pricing

from $2.50 / 1,000 results

Go to Apify Store
GMGN Wallet Portfolio & PnL Tracker — Holdings & Profit

GMGN Wallet Portfolio & PnL Tracker — Holdings & Profit

Track any wallet's complete portfolio across Solana, BSC, Ethereum, Base, Tron, Monad. Every token (current + past) with cost basis, realized/unrealized profit, holding period, transfer history, wallet tags. Plus per-period PnL (1d/7d/30d), native-token funding source. Zerion/DeBank alternative.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

GMGN Wallet Portfolio & PnL Tracker — Full Crypto Wallet Holdings, Profit & Loss, Holding Period

GMGN Wallet Portfolio & PnL Tracker — Holdings & Profit

Track any crypto wallet's complete portfolio and PnL — across Solana, BSC, Ethereum, Base, Tron, and Monad. For each wallet, get every token holding (current and historical) with cost basis, realized profit, unrealized profit, PnL multiplier, buy/sell counts, holding period, and transfer history. Plus a per-wallet summary (overall PnL, total USD value, winrate, balances per chain, wallet tags, Twitter link) and per-period PnL stats.

The on-chain Zerion / DeBank alternative scraper. Pass a wallet, get its full crypto CV.


🚀 What this actor does

For each (chain, walletAddress) pair you submit, the actor:

  1. Fetches the full holdings list with pagination (up to maxHoldingsPerWallet), each token row carrying cost basis, profit, transfer history, holding period.
  2. (Optional) Fetches the wallet summary with overall PnL, balances, winrate, tags, Twitter / ENS, follower count.
  3. (Optional) Fetches per-period PnL stats for 1d, 7d, 30d — token count, winrate, realized / unrealized profit, volume.
  4. (Optional) Fetches the native funding source — which wallet sent the first SOL/BNB/ETH to this wallet (key for insider / cluster detection).

The dataset emits one row per holding + one summary row + one row per requested PnL period + one funding row, all distinguished by _kind.


💡 Use cases

  • Copy-trade audit — verify a candidate trader's claimed PnL by looking at their actual on-chain holdings.
  • Smart-money following — see what every top wallet from the leaderboard currently holds.
  • Insider / cluster detection — chain nativeFromAddress back through funding wallets to map insider networks.
  • DeBank / Zerion alternative — display any wallet's portfolio in your own UI with rich PnL.
  • Crypto tax tools — extract cost basis + realized profit per token for tax calculation pipelines.
  • Trader leaderboards — verify Twitter trader claims against on-chain reality.
  • Influencer accountability — public-figure wallets, audit their actual returns.
  • Memecoin alpha sourcing — see which positions top wallets are loading up on right now.
  • Fund-flow forensics — visualize how a wallet funded → bought → sold across time.

⚙️ Input configuration

FieldTypeDefaultDescription
walletsarrayrequiredArray of { chain, address }.
maxHoldingsPerWalletinteger200Cap holdings paginated per wallet.
orderBystring"last_active_timestamp"last_active_timestamp, total_profit, total_value, balance, buys, sells
directionstring"desc"desc or asc
hideSmallbooleanfalseDrop dust positions.
selloutbooleantrueInclude fully-sold positions (lifetime history).
hideAbnormalbooleanfalseDrop honeypot / blacklisted tokens.
includeWalletSummarybooleantrueEmit a wallet_summary row per wallet.
includePnlPeriodsstring[]["7d"]Emit pnl_period row per chosen period (1d, 7d, 30d).
includeNativeTransfersbooleanfalseEmit native_funding row with funding-source wallet.
minTotalValueUsdnumber0Drop holdings below this USD value.
useProxybooleantrue
proxyConfigurationobjectresidential
maxConcurrencyinteger5

📦 Output rows (distinguished by _kind)

1. holding (one per token the wallet held)

  • tokenAddress, tokenSymbol, tokenName, tokenLogo, tokenDecimals
  • balance, totalValue, totalFee, buys, sells, isOpenOrClose
  • totalProfit, totalProfitPnl, realizedProfit, realizedPnl, unrealizedProfit, unrealizedPnl
  • historyBoughtCost, historyBoughtAmount, historySoldIncome, historyTransferInCost, historyTransferInAmount, historyTransferOutIncome, historyTransferOutAmount
  • avgHoldingPeriod, startHoldingAt, endHoldingAt, lastActiveTimestamp
  • makerTokenTags — per-token wallet tags (e.g. creator, dev_team, sniper, fresh_wallet)
  • statLastHoldAt, statWinRate7d, statRealizedProfit7d, statRealizedPnl7d, statBuy7d, statSell7d, statTokenNum
  • followCount, remarkCount
  • gmgnWalletUrl, gmgnTokenUrl

2. wallet_summary (one per wallet)

  • Identity: walletEns, walletAvatar, walletName, walletTwitterUsername, walletTwitterName, walletTwitterBind, walletTwitterFans, walletFollowersCount, walletIsBlueVerified
  • Balances: walletEthBalance, walletSolBalance, walletTrxBalance, walletBnbBalance, walletBalance, walletTotalValue
  • PnL: unrealizedProfit, unrealizedPnl, realizedProfit, pnl, pnl1d, pnl7d, pnl30d, realizedProfit1d, realizedProfit7d, realizedProfit30d, winrate, allPnl, totalProfit, totalProfitPnl
  • Activity: buy, buy1d, buy7d, buy30d, sell, sell1d, sell7d, sell30d
  • History totals: historyBoughtCost, tokenAvgCost, tokenSoldAvgProfit, tokenNum, profitNum
  • 7-day PnL buckets: pnlLtMinusDot5Num, pnlMinusDot50xNum, pnlLt2xNum, pnl2x5xNum, pnlGt5xNum
  • avgHoldingPeriod, lastActiveTimestamp
  • Tags: walletTags, walletTagRank, refreshRequestedAt, updatedAt

3. pnl_period (one per (wallet, period))

  • period (1d / 7d / 30d)
  • periodTokenNum, periodTokenProfitNum, periodWinRate, periodPnl
  • periodRealizedProfit, periodUnrealizedProfit, periodTotalProfit, periodTotalProfitPnl, periodVolume

4. native_funding (one per wallet — only when includeNativeTransfers: true)

  • nativeFromAddress — the wallet that funded this one with native token
  • nativeAmount, nativeTransferAt, nativeFundTxHash
  • nativeTwitterUsername, nativeNickname
  • gmgnFundingWalletUrl — convenience link to chase the funding chain

🧪 Example output (holding row)

{
"_kind": "holding",
"chain": "sol",
"walletAddress": "923yorRvuaL9zFTGkSWhN2DkGXRBjPLiAsN9AzFHk68j",
"tokenAddress": "5jvjr...pump",
"tokenSymbol": "WIF",
"balance": 1473847721.14,
"totalValue": 4830.03,
"buys": 133,
"sells": 0,
"totalProfit": 3416.58,
"totalProfitPnl": 2.88,
"historyBoughtCost": 1115.58,
"historyBoughtAmount": 1382641929.65,
"historySoldIncome": 0,
"avgHoldingPeriod": 9765.96,
"startHoldingAt": "2026-05-14T08:00:13.000Z",
"lastActiveTimestamp": null,
"makerTokenTags": ["creator", "dev_team", "sniper"],
"statWinRate7d": 0.28,
"statRealizedProfit7d": -1188.54,
"statBuy7d": 612,
"statSell7d": 30,
"gmgnWalletUrl": "https://gmgn.ai/sol/address/923yorRvuaL9zFTGkSWhN2DkGXRBjPLiAsN9AzFHk68j",
"gmgnTokenUrl": "https://gmgn.ai/sol/token/5jvjr...pump",
"scrapedAt": "2026-05-15T12:00:00.000Z"
}

🧰 Recipes

1. Full portfolio dump for one wallet

{
"wallets": [{ "chain": "sol", "address": "..." }],
"maxHoldingsPerWallet": 500,
"includeWalletSummary": true,
"includePnlPeriods": ["1d", "7d", "30d"],
"includeNativeTransfers": true
}

2. Watchlist daily snapshot

{
"wallets": [/* 20 wallets */],
"maxHoldingsPerWallet": 100,
"includeWalletSummary": true,
"minTotalValueUsd": 10
}

Daily wallet-portfolio snapshots. Diff against yesterday for movement detection.

3. Cluster discovery via native funding

{
"wallets": [...],
"maxHoldingsPerWallet": 50,
"includeNativeTransfers": true
}

For each wallet, nativeFromAddress reveals who funded it — follow the chain to map clusters.

4. Copy-trade audit

{
"wallets": [{ "chain": "sol", "address": "TRADER_WALLET" }],
"includePnlPeriods": ["1d", "7d", "30d"],
"maxHoldingsPerWallet": 200,
"sellout": true
}

Realized vs unrealized split — is the trader actually profitable, or just sitting on paper gains?

5. Tax export

{
"wallets": [{ "chain": "eth", "address": "MY_WALLET" }],
"maxHoldingsPerWallet": 1000,
"sellout": true,
"hideSmall": false
}

Then export the dataset to CSV → import into your tax tool.


🛡️ Under the hood

  • Endpoints
    • GET /pf/api/v1/wallet/{chain}/{addr}/holdings?limit=50&order_by=...&direction=...&hide_small=...&sellout=...&hide_abnormal=... (paginated)
    • GET /defi/quotation/v1/smartmoney/{chain}/walletNew/{addr} (summary — already contains per-period PnL: pnl1d/7d/30d, realizedProfit1d/7d/30d, winrate1d/7d/30d, volume1d/7d/30d)
    • POST /pf/api/v1/wallets/{chain}/person_wallets_pnl_info/{period} { wallet_addresses: [...] } (advanced, opt-in — same period stats as summary; only enable if you need token_num or total_profit_pnl fields)
    • GET /api/v1/native_transfer/{chain}/{addr} (funding source)
  • Pagination — GMGN's next cursor; the actor follows it until maxHoldingsPerWallet.
  • Auth — none.
  • Proxy — Apify Residential default.
  • Retries — 5 attempts with exponential backoff on 403 / 429 / 5xx.

⚡ Performance

ConfigurationRowsTimeCost
1 wallet, summary + 200 holdings~205<30s<$0.01
10 wallets, full portfolio + all periods~2K~1-2 min~$0.04
100 wallets, 100 holdings each~10K~10 min~$0.20

  • Daily wallet watch — once per day for your tracked wallets.
  • Live copy-trade source — every 15-30 minutes for tight copy-trading.
  • Weekly research export — once per week for monthly portfolio reports.

❓ FAQ

What's the difference between pnl and totalProfitPnl?

pnl = realized profit multiplier (across the wallet's lifetime). totalProfitPnl per holding = total profit ÷ total cost on THAT token.

Why is totalValue sometimes lower than historyBoughtCost?

The wallet is sitting on losses (token price dropped). unrealizedProfit will be negative.

What's avgHoldingPeriod?

Average seconds the wallet holds a position. Shorter = scalper / sniper. Longer = swing / diamond hands.

What's makerTokenTags on a holding?

Per-token roles for this wallet — creator, dev_team, sniper, fresh_wallet, whale. Different from the wallet's GLOBAL tags.

Can I use this to detect insider activity?

Yes. Combine makerTokenTags: ["sniper"] + walletTags: ["fresh_wallet"] + realizedProfit > 0 = fresh wallet sniped early, made profit → strong insider signal.

How fresh is the PnL data?

GMGN recomputes wallet PnL every ~5 minutes. The actor pulls whatever's current.

How does this differ from the Smart Money Wallet Leaderboard?

Leaderboard = TOP-N WALLETS on a chain. This = DEEP DIVE on specific wallets. Use leaderboard to discover, this to investigate.

Does it work for non-public wallets?

Yes — any on-chain address. The wallet doesn't need to be linked to a Twitter or have a GMGN profile.

Can I get historical position values?

Each holding row carries historyBoughtCost, historyBoughtAmount, historySoldIncome, startHoldingAt, endHoldingAt — a compressed lifetime history.

What's pnlGt5xNum?

Number of tokens in the wallet's history that returned more than 5×. Higher = more home runs.

How do I detect wash trading?

Self-funded transfers + same-side high-frequency trades. Pull historyTransferIn* + check if nativeFromAddress is one of the wallet's other addresses.

Can I scrape Ethereum smart contracts (vaults / safes)?

Yes — pass the contract address as the wallet. Results may include LP positions and vault tokens.

What does walletTagRank contain?

GMGN's internal rank for each tag (e.g. {"smart_degen": 47} means this wallet is #47 in the smart_degen tag).


  • GMGN Smart Money Wallet Leaderboard — discover top wallets to track.
  • GMGN Smart Money Buy Signals — live whale buy feed.
  • GMGN Token Holders Intelligence — see who holds a specific token (reverse view).
  • GMGN Trending Memecoin Scanner — what's heating up.
  • GMGN New Token Launch Detector — fresh launches.
  • GMGN Token Rugcheck & Deep Analytics — security per token.
  • GMGN Crypto KOL Twitter & Telegram Signal Feed — KOL chatter.

🆘 Support

Bug? Missing field? Open an issue on the actor's Apify page.