GMGN CopyTrade Wallet Scraper
Pricing
from $3.75 / 1,000 wallets
GMGN CopyTrade Wallet Scraper
Scrape GMGN.ai copytrade wallet leaderboards across Solana, BSC, Ethereum, Base, Tron, and Monad. Get wallet PnL, win rates, transactions, balances, tags, source ranks, and GMGN wallet URLs. No GMGN login is needed.
Pricing
from $3.75 / 1,000 wallets
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
🧭 GMGN CopyTrade Wallet Scraper for smart money research
GMGN CopyTrade Wallet Scraper pulls public copytrade wallet leaderboards from GMGN.ai into one dataset for crypto researchers. Choose a chain, trader category, sort order, and wallet limit. Each wallet gets its own row with its address, source rank, realized profit, PnL, win rates, trading activity, balances, tags, profile details, and GMGN wallet link. It uses only public GMGN leaderboard data, so you do not need a GMGN login. You skip copying leaderboard rows by hand.
Use it for smart money research, crypto wallet leaderboard research, or copy trading analysis. Run it in Apify Console or through the Apify API. You can also schedule repeat runs and compare the saved rows yourself.
- Collect the top wallets on a chain, ranked by 7-day realized profit, with each wallet's address and GMGN wallet link.
- Compare Smart Money and key opinion leader (KOL / VC) wallets on the same chain before you pick wallets to research.
- Review each wallet's realized profit, PnL, win rate, and transaction counts across 1, 7, and 30 days.
- Check a wallet's daily profit for up to the last seven days, as far as GMGN has that history, and its 7-day PnL distribution.
- Save a new snapshot on each run and compare the rows yourself to see how a leaderboard changes.
For a small first run, keep the default Solana Smart Money leaderboard and wallet limit of 1. Once you have checked the output, switch chains, categories, or the optional 1D/7D/30D filters for your research.
📦 GMGN wallet data you can extract
Each output item represents one GMGN copytrade wallet. Fields include:
walletAddress,chain,sourceRank,sourceUrl, andgmgnWalletUrltraderType,traderTypeLabel,sourceSortBy, andsourceSortDirectionlastActiveTimestampandlastActiveAtrealizedProfit1d,realizedProfit7d, andrealizedProfit30dpnl1d,pnl7d,pnl30d,winRate1d,winRate7d, andwinRate30dtransactions,buys, andsellsfor totals, plus separate fields ending in1d,7d, or30dfor each periodbalance,ethBalance,solBalance,trxBalance,bnbBalance, andmonadBalancevolume1d,volume7d,volume30d,netInflow1d,netInflow7d, andnetInflow30davgCost1d,avgCost7d,avgCost30d,avgHoldingPeriod1d,avgHoldingPeriod7d, andavgHoldingPeriod30dfollowCountandremarkCounttags,profile,dailyProfit7d, andpnlBuckets7d
Some optional GMGN fields are empty for some wallets. When GMGN does not expose a value, the Actor returns null for optional scalar fields and empty arrays for lists.
What this Actor does
- Scrapes GMGN copytrade wallet leaderboards for Solana, BSC, Ethereum, Base, Tron, and Monad.
- Lets you choose a trader category, such as Smart Money or key opinion leaders and venture investors.
- Ranks wallets by 7-day realized profit, highest first, by default.
- Lets you cap saved wallets with
maxWallets, to keep first runs small. - Adds optional 1D/7D/30D min and max filters for PnL, realized profit, win rate, transactions, volume, net inflow, and average cost.
- Saves one dataset item for each wallet the run collects.
- Includes source rank, source URL, GMGN wallet URL, normalized timestamps, profile fields, tags, PnL buckets, and 7-day daily profit when GMGN exposes them.
This Actor is focused on GMGN leaderboard discovery. It does not deep-scrape a submitted wallet portfolio, token holdings, live buy-signal feeds, token holder lists, or rugcheck data.
🚀 How to run the GMGN leaderboard
- Choose a Blockchain.
- Choose a Trader category.
- Keep Wallet limit at
1for a small test, or raise it to get more wallets. Leave it empty to return all available wallets until the source is exhausted. The source may have fewer matching wallets. - Check Sort by and Sort direction. The default ranks wallets by 7-day realized profit, highest first.
- Optional: add 1D/7D/30D filters for PnL, profit, win rate, transactions, volume, net inflow, or average cost.
- Run the Actor and open the dataset.
Results go to an Apify dataset. You can view it in Apify Console or read it through the Apify API. You can also schedule repeat runs and compare the saved rows yourself.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
chain | string | Choose the GMGN chain leaderboard to scrape. |
traderType | string | Choose the GMGN wallet group. Use All wallets for the broad leaderboard, or choose a smart-money category for a narrower copytrade wallet list. |
maxWallets | integer | Maximum number of wallets to save. Leave empty to return all available wallets until the source is exhausted. |
sortBy | string | Metric used to rank the GMGN wallet leaderboard. |
sortDirection | string | Use descending for top wallets by the selected metric, or ascending for the lowest values. |
minPnl1d | number | Keep only wallets with at least this 1-day PnL percentage. Leave empty to skip this filter. |
maxPnl1d | number | Keep only wallets with at most this 1-day PnL percentage. Leave empty to skip this filter. |
minProfit1d | number | Keep only wallets with at least this realized 1-day profit in USD. Leave empty to skip this filter. |
maxProfit1d | number | Keep only wallets with at most this realized 1-day profit in USD. Leave empty to skip this filter. |
minWinRate1d | number | Keep only wallets with at least this 1-day win rate. Use 40 for 40%. Leave empty to skip this filter. |
maxWinRate1d | number | Keep only wallets with at most this 1-day win rate. Use 80 for 80%. Leave empty to skip this filter. |
minTxs1d | integer | Keep only wallets with at least this many 1-day transactions. Leave empty to skip this filter. |
maxTxs1d | integer | Keep only wallets with at most this many 1-day transactions. Leave empty to skip this filter. |
minVolume1d | number | Keep only wallets with at least this 1-day trading volume in USD. Leave empty to skip this filter. |
maxVolume1d | number | Keep only wallets with at most this 1-day trading volume in USD. Leave empty to skip this filter. |
minNetInflow1d | number | Keep only wallets with at least this 1-day net inflow in USD. Leave empty to skip this filter. |
maxNetInflow1d | number | Keep only wallets with at most this 1-day net inflow in USD. Leave empty to skip this filter. |
minAvgCost1d | number | Keep only wallets with at least this 1-day average trade cost in USD. Leave empty to skip this filter. |
maxAvgCost1d | number | Keep only wallets with at most this 1-day average trade cost in USD. Leave empty to skip this filter. |
minPnl7d | number | Keep only wallets with at least this 7-day PnL percentage. Leave empty to skip this filter. |
maxPnl7d | number | Keep only wallets with at most this 7-day PnL percentage. Leave empty to skip this filter. |
minProfit7d | number | Keep only wallets with at least this realized 7-day profit in USD. Leave empty to skip this filter. |
maxProfit7d | number | Keep only wallets with at most this realized 7-day profit in USD. Leave empty to skip this filter. |
minWinRate7d | number | Keep only wallets with at least this 7-day win rate. Use 40 for 40%. Leave empty to skip this filter. |
maxWinRate7d | number | Keep only wallets with at most this 7-day win rate. Use 80 for 80%. Leave empty to skip this filter. |
minTxs7d | integer | Keep only wallets with at least this many 7-day transactions. Leave empty to skip this filter. |
maxTxs7d | integer | Keep only wallets with at most this many 7-day transactions. Leave empty to skip this filter. |
minVolume7d | number | Keep only wallets with at least this 7-day trading volume in USD. Leave empty to skip this filter. |
maxVolume7d | number | Keep only wallets with at most this 7-day trading volume in USD. Leave empty to skip this filter. |
minNetInflow7d | number | Keep only wallets with at least this 7-day net inflow in USD. Leave empty to skip this filter. |
maxNetInflow7d | number | Keep only wallets with at most this 7-day net inflow in USD. Leave empty to skip this filter. |
minAvgCost7d | number | Keep only wallets with at least this 7-day average trade cost in USD. Leave empty to skip this filter. |
maxAvgCost7d | number | Keep only wallets with at most this 7-day average trade cost in USD. Leave empty to skip this filter. |
minPnl30d | number | Keep only wallets with at least this 30-day PnL percentage. Leave empty to skip this filter. |
maxPnl30d | number | Keep only wallets with at most this 30-day PnL percentage. Leave empty to skip this filter. |
minProfit30d | number | Keep only wallets with at least this realized 30-day profit in USD. Leave empty to skip this filter. |
maxProfit30d | number | Keep only wallets with at most this realized 30-day profit in USD. Leave empty to skip this filter. |
minWinRate30d | number | Keep only wallets with at least this 30-day win rate. Use 40 for 40%. Leave empty to skip this filter. |
maxWinRate30d | number | Keep only wallets with at most this 30-day win rate. Use 80 for 80%. Leave empty to skip this filter. |
minTxs30d | integer | Keep only wallets with at least this many 30-day transactions. Leave empty to skip this filter. |
maxTxs30d | integer | Keep only wallets with at most this many 30-day transactions. Leave empty to skip this filter. |
minVolume30d | number | Keep only wallets with at least this 30-day trading volume in USD. Leave empty to skip this filter. |
maxVolume30d | number | Keep only wallets with at most this 30-day trading volume in USD. Leave empty to skip this filter. |
minNetInflow30d | number | Keep only wallets with at least this 30-day net inflow in USD. Leave empty to skip this filter. |
maxNetInflow30d | number | Keep only wallets with at most this 30-day net inflow in USD. Leave empty to skip this filter. |
minAvgCost30d | number | Keep only wallets with at least this 30-day average trade cost in USD. Leave empty to skip this filter. |
maxAvgCost30d | number | Keep only wallets with at most this 30-day average trade cost in USD. Leave empty to skip this filter. |
Input example
This is the public input from a successful current-beta run that used the default Solana Smart Money settings. The form starts Maximum 30D transactions at 1000, so clear that field to match this example.
{"chain": "sol","traderType": "smart_degen","maxWallets": 1,"sortBy": "profit_7d","sortDirection": "desc"}
chain selects the GMGN blockchain leaderboard. traderType selects the wallet group. maxWallets controls how many wallet rows are saved. sortBy and sortDirection control the leaderboard order. Optional filters support min and max thresholds across 1D, 7D, and 30D PnL, realized profit, win rate, transactions, volume, net inflow, and average cost. PnL and win rate inputs use percentages, so 40 means 40%.
🧾 Output
Run output link
| Field | Type | What it does |
|---|---|---|
results | string | Opens the saved wallet dataset in its overview view. |
Wallet row fields
| Field | Type | What it does |
|---|---|---|
walletAddress | string | Wallet address on the selected chain. |
chain | string | Blockchain for this wallet. |
sourceRank | integer | Position in the returned GMGN leaderboard. |
traderType | string | Wallet group used for this leaderboard. |
traderTypeLabel | string | Name of the wallet group. |
sourceSortBy | string | Metric used to sort the leaderboard. |
sourceSortDirection | string | Sort direction used for the leaderboard. |
sourceUrl | string | GMGN leaderboard request URL. |
gmgnWalletUrl | string | GMGN page for this wallet. |
lastActiveTimestamp | number or null | Last wallet activity time as a Unix timestamp. |
lastActiveAt | string or null | Last wallet activity time in ISO 8601 format. |
transactions | integer | Total transaction count across all periods. |
buys | integer | Total buy count across all periods. |
sells | integer | Total sell count across all periods. |
realizedProfit1d | number or null | Realized profit in USD over 1 day. |
realizedProfit7d | number or null | Realized profit in USD over 7 days. |
realizedProfit30d | number or null | Realized profit in USD over 30 days. |
pnl1d | number or null | PnL ratio over 1 day. |
pnl7d | number or null | PnL ratio over 7 days. |
pnl30d | number or null | PnL ratio over 30 days. |
winRate1d | number or null | Win rate ratio over 1 day. |
winRate7d | number or null | Win rate ratio over 7 days. |
winRate30d | number or null | Win rate ratio over 30 days. |
transactions1d | integer or null | Transaction count over 1 day. |
transactions7d | integer or null | Transaction count over 7 days. |
transactions30d | integer or null | Transaction count over 30 days. |
buys1d | integer or null | Buy count over 1 day. |
buys7d | integer or null | Buy count over 7 days. |
buys30d | integer or null | Buy count over 30 days. |
sells1d | integer or null | Sell count over 1 day. |
sells7d | integer or null | Sell count over 7 days. |
sells30d | integer or null | Sell count over 30 days. |
avgCost1d | number or null | Average trading cost reported by GMGN over 1 day. |
avgCost7d | number or null | Average trading cost reported by GMGN over 7 days. |
avgCost30d | number or null | Average trading cost reported by GMGN over 30 days. |
volume1d | number or null | Trading volume in USD over 1 day. |
volume7d | number or null | Trading volume in USD over 7 days. |
volume30d | number or null | Trading volume in USD over 30 days. |
netInflow1d | number or null | Net inflow in USD over 1 day. |
netInflow7d | number or null | Net inflow in USD over 7 days. |
netInflow30d | number or null | Net inflow in USD over 30 days. |
avgHoldingPeriod1d | number or null | Average holding duration reported by GMGN over 1 day. |
avgHoldingPeriod7d | number or null | Average holding duration reported by GMGN over 7 days. |
avgHoldingPeriod30d | number or null | Average holding duration reported by GMGN over 30 days. |
balance | number or null | Wallet balance reported by GMGN. |
ethBalance | number or null | ETH balance reported by GMGN. |
solBalance | number or null | SOL balance reported by GMGN. |
trxBalance | number or null | TRX balance reported by GMGN. |
bnbBalance | number or null | BNB balance reported by GMGN. |
monadBalance | number or null | Monad balance reported by GMGN. |
followCount | number or null | GMGN tracked count reported by GMGN. |
remarkCount | number or null | GMGN renamed count reported by GMGN. |
pnlBuckets7d | object | GMGN PnL distribution counts for seven days. |
pnlBuckets7d.belowMinus50Percent | number or null | Count below minus 50% PnL. |
pnlBuckets7d.minus50PercentToBreakeven | number or null | Count from minus 50% PnL to break even. |
pnlBuckets7d.below2x | number or null | Count in the GMGN below 2x bucket. |
pnlBuckets7d.between2xAnd5x | number or null | Count in the GMGN 2x to 5x bucket. |
pnlBuckets7d.above5x | number or null | Count in the GMGN above 5x bucket. |
dailyProfit7d | array of objects | Dated daily profit values from the seven-day history. |
dailyProfit7d[].timestamp | number | Source Unix timestamp for this day. |
dailyProfit7d[].date | string or null | Date in ISO 8601 format. |
dailyProfit7d[].profit | number or null | Daily profit reported by GMGN. |
tags | array of strings | GMGN wallet classification tags. |
profile | object | Available wallet names and social profile details. |
profile.nickname | string or null | Wallet nickname. |
profile.name | string or null | Wallet name. |
profile.avatarUrl | string or null | Profile image URL. |
profile.twitterUsername | string or null | Twitter username. |
profile.twitterName | string or null | Twitter display name. |
profile.twitterDescription | string or null | Twitter profile description. |
profile.twitchChannelName | string or null | Twitch channel name. |
Wallet row example
This complete row came from a successful current-beta run using the default Solana Smart Money input.
{"walletAddress": "HSeCG7T2KCTuVAARGXZuxBNZg6pas1EdJdjn7Xyy1ENB","chain": "sol","sourceRank": 1,"traderType": "smart_degen","traderTypeLabel": "Smart Money","sourceSortBy": "profit_7d","sourceSortDirection": "desc","sourceUrl": "https://gmgn.ai/defi/quotation/v1/rank/sol/wallets/7d?orderby=profit&direction=desc&limit=1&tag=smart_degen","gmgnWalletUrl": "https://gmgn.ai/sol/address/HSeCG7T2KCTuVAARGXZuxBNZg6pas1EdJdjn7Xyy1ENB","lastActiveTimestamp": 1791979505,"lastActiveAt": "2026-10-14T12:05:05.000Z","realizedProfit1d": 3417.349968742037,"realizedProfit7d": 44740.78828597485,"realizedProfit30d": 103076.51971168588,"pnl1d": 0.4135034683110725,"pnl7d": 0.3531958607085998,"pnl30d": 0.2982568007524423,"winRate1d": 0.8333333333333334,"winRate7d": 0.7792207792207793,"winRate30d": 0.6981919332406119,"transactions": 9228,"transactions1d": 126,"transactions7d": 1861,"transactions30d": 3697,"buys": 5377,"buys1d": 51,"buys7d": 1000,"buys30d": 2105,"sells": 3851,"sells1d": 75,"sells7d": 861,"sells30d": 1592,"balance": 609.030944274,"ethBalance": 609.030944274,"solBalance": 609.030944274,"trxBalance": 609.030944274,"bnbBalance": null,"monadBalance": 609.030944274,"followCount": 1563,"remarkCount": 1464,"avgCost1d": 153.71504368558706,"avgCost7d": 122.53900000752506,"avgCost30d": 153.3532017043059,"volume1d": 19521.197620648705,"volume7d": 293639.2875233041,"volume30d": 749197.2093802402,"netInflow1d": 0,"netInflow7d": -28142.8234582063,"netInflow30d": -26849.08754474225,"avgHoldingPeriod1d": 158429.97297297296,"avgHoldingPeriod7d": 97274.76451612903,"avgHoldingPeriod30d": 1080331.2156368222,"pnlBuckets7d": {"belowMinus50Percent": 8,"minus50PercentToBreakeven": 60,"below2x": 237,"between2xAnd5x": 13,"above5x": 5},"dailyProfit7d": [{"timestamp": 1791331200,"date": "2026-10-07T00:00:00.000Z","profit": 12310.675319314569},{"timestamp": 1791417600,"date": "2026-10-08T00:00:00.000Z","profit": 3083.2150499094905},{"timestamp": 1791504000,"date": "2026-10-09T00:00:00.000Z","profit": 7357.749351635719},{"timestamp": 1791590400,"date": "2026-10-10T00:00:00.000Z","profit": 5451.847829097474},{"timestamp": 1791676800,"date": "2026-10-11T00:00:00.000Z","profit": 8333.04780647963},{"timestamp": 1791763200,"date": "2026-10-12T00:00:00.000Z","profit": 7182.994375179918},{"timestamp": 1791849600,"date": "2026-10-13T00:00:00.000Z","profit": 10516.360068313383}],"tags": ["smart_degen","arbitrager","axiom"],"profile": {"nickname": null,"name": null,"avatarUrl": null,"twitterUsername": null,"twitterName": null,"twitterDescription": null,"twitchChannelName": null}}
The exact wallet data changes as GMGN updates its leaderboards.
💳 Pricing
This Actor uses pay-per-event pricing. You pay $0.00375 for each GMGN wallet saved by the Actor, or $3.75 per 1,000 saved wallets. A run that saves no wallets has no wallet charges. Keep the wallet limit small for a test run, then increase it when you are ready to collect more leaderboard rows.
🔌 Integrations
Use Apify schedules for repeat runs, webhooks to start your next step, or the Apify API to read saved wallet rows in your app.
❓ FAQ
Does this scrape a specific wallet portfolio?
No. This Actor scrapes GMGN copytrade wallet leaderboards. It does not accept wallet addresses as targets or return a full token-by-token portfolio for a submitted wallet.
Which blockchains does this Actor cover?
It covers Solana, BSC, Ethereum, Base, Tron, and Monad. Choose one of these six chains in the Blockchain field.
What happens when no wallets match my filters?
The run saves no wallet rows. It writes a warning to the run log that explains the empty result. You pay only for saved wallets.
Why are some fields empty?
GMGN does not expose every optional field for every wallet. Empty optional scalar values are returned as null, and missing lists are returned as empty arrays.
Do I need GMGN cookies or an API key?
No. The Actor is built for public GMGN leaderboard data and does not ask you for GMGN credentials.
Can I use it for recurring smart money monitoring?
Yes, but the comparison is yours. The Actor does not monitor wallets or report changes between runs. Schedule repeat runs on Apify and compare the saved rows over time. Each row includes sourceRank, sourceUrl, and gmgnWalletUrl to help you trace a wallet across runs.
Can I call this GMGN wallet scraper through an API?
Yes. Run the Actor through the Apify API and read its dataset. See the Apify API documentation to learn how to start runs and read datasets. This Actor provides GMGN leaderboard data, not a full GMGN API or a submitted-wallet tracker.
Do I need to host this myself?
No. This Actor runs on the Apify platform. Start it in Apify Console or through the Apify API.
Limits and caveats
GMGN leaderboard data changes often, especially for active wallets and short time windows. Treat each run as a snapshot of the public GMGN leaderboard at the time the Actor ran.
The Actor only returns data exposed by the public GMGN leaderboard response. It does not require your GMGN account, cookies, wallet connection, private API key, or login details. It also does not create trading signals, financial advice, or investment recommendations.
📝 Changelog
v1.0 (14-10-2026)
- Removed the 1D Profit sort option. Runs that use it are no longer accepted. Pick another sort option, such as 1D Profit and Loss %.
- API runs must now include
chainandtraderType. They no longer use Solana and Smart Money when left out. - A blank or missing Wallet limit (
maxWallets) now saves every matching wallet GMGN returns, up to 500, instead of 1. Enter a number to keep a fixed limit. - Saved wallet rows no longer include the
scrapeStatusandscrapedAtfields. - You can now choose HyperEVM, MegaETH, Robinhood, and X Layer as a Blockchain.
- Top Dev wallets now get win rates from GMGN's leaderboards where they are listed. Other Top Dev win rates stay empty instead of showing zero.
- Top Dev runs sorted by a 30-day metric no longer come back empty.
- Win rates are empty for any period with zero trades, because the rate is unknown.
- Last active time is empty when GMGN reports no time, instead of showing 1970.
- A run that reaches its time limit now ends cleanly, with the wallets it already saved.
- A run that reaches its time limit before saving any wallet now ends with a clear warning, unless some wallet reads also failed.
- In the form, the Maximum 30D transactions field starts at 1000. Wallets with more than 1000 30-day transactions are left out unless you raise the number or clear the field. Wallets with an unknown count are left out unless you clear the field.
- Output table columns use plainer names, such as Realized profit (1 day).
- Wallet scans run faster by default.
v0.2
- Added 1D, 7D, and 30D min/max filters for PnL, profit, win rate, transactions, volume, net inflow, and average cost.
- Lowered wallet pricing to $0.00375 per saved wallet.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- GMGN Wallet Activity Scraper collects trades, transfers, and liquidity events for wallets you found here.
- Etherscan Gas Tracker Scraper collects top ETH holders from Etherscan to compare with large Ethereum wallets from this leaderboard.
- Bitget Tickers Scraper collects live Bitget prices, 24-hour volume, and funding rates for coins you are researching.
- Crypto Twitter Tracker collects current public posts from curated crypto accounts for market context around KOL wallet research.
- Crypto Fear and Greed Index Scraper adds the daily crypto fear and greed value so you can compare each leaderboard snapshot with market mood.
Made with ❤️ by Maxime Dupré