Wallet Resolution
FOMO Won't Connect a Trader to Their Wallet or Their X Account. We Do.
FOMO surfaces a trader handle and in-app activity but never links it to a real on-chain wallet or a public X account. The address it shows is a custodial Privy wallet with zero transactions, and there is no handle-to-X lookup. We resolve the real Solana and EVM wallets, verified against on-chain activity, and return the linked X identity wherever it exists, all from one GET /v2/users/{handle} call.
When you open the FOMO app and find a trader worth watching, you get two things: a handle and a stream of their in-app trades. That is enough to be curious. It is not enough to act. The moment you try to answer a basic follow-up question, the trail goes cold.
The two questions are always the same. Who is this person outside the app? And where do they actually trade on-chain, so I can follow their real positions? FOMO surfaces a handle and some activity, but it does not hand you a queryable link from that handle to a real wallet or to a public X account. The identity graph you need is there in pieces, but the pieces are not connected in any way you can use.
This post explains exactly where the linkage breaks, and how one API call at fomoapi.io closes both gaps at once.
The wallet FOMO shows you is not the wallet the trader uses
Start with the address. When you look at a trader inside FOMO, the wallet you can see is a custodial embedded wallet created by Privy, the auth layer FOMO uses. It exists to hold the account, not to trade from.
The tell is on-chain: that address has zero transactions. No swaps, no transfers, nothing to inspect. It is a container, not a trading history. If you copy it into a Solana or EVM explorer expecting to reconstruct the trader's book, you get an empty page. You cannot verify a single trade against it, because there is nothing there to verify.
The wallet where the trading actually happens is a different address, and FOMO does not expose it. So the address you can see is the one that tells you nothing, and the address that would tell you everything is the one you cannot get.
We resolve the real one. GET /v2/users/{handle} returns the trader's actual on-chain wallets, both Solana and EVM where they exist, and those addresses are checked against real on-chain activity. Once you have the real address, the rest is ordinary blockchain work: open it in an explorer, follow new positions as they happen, reconstruct cost basis yourself. The wall is the resolution step, and that is the step we handle.
FOMO does not give you a handle-to-X lookup
The second gap is identity. A FOMO handle is a display name inside one app. It is not a link to a person you can evaluate anywhere else.
Plenty of traders also have a public presence on X, where their reputation is visible: what they call, how they talk about risk, whether their followers trust them, whether they have been right before. That context is exactly what you want before you copy anyone. But FOMO does not expose a structured link from the in-app handle to that X account. There is no "this handle belongs to this X user" field you can query. If you want to make the connection, you are left guessing from a username that may or may not match, with no way to confirm.
Two honest caveats here. First, this is not about FOMO hiding anything maliciously. The app is built to show in-app activity, and the cross-app linkage simply is not part of what it surfaces. Second, not every trader has an X account to link. Many are anonymous by choice and always will be. We do not invent a link where none exists. What we do is provide the link wherever it genuinely does exist, as a structured field you can read programmatically.
One call connects handle to wallet to X
Here is the request. You pass the FOMO handle you already have and get back the resolved identity.
curl https://api.fomoapi.io/v2/users/degenspartan \
-H "x-api-key: YOUR_KEY"
A response looks like this:
{
"handle": "degenspartan",
"wallets": {
"solana": "7Xw3mVrQ4kH2pL9vGbT8sDj6yCfE1gAzRnKuM5oTqBv",
"evm": "0x3a1f9c8b2e7d4a06f15c9b8e2d7a4c0f18e6b3d9"
},
"profile": {
"twitter": "https://x.com/degenspartan",
"twitterHandle": "degenspartan",
"bio": "on-chain since 2021. positions over opinions.",
"followerCount": 41800
},
"stats": {
"realizedPnlUsd": 128400.55,
"winRate": 0.61,
"tradeCount": 1943
}
}
That single object closes both gaps. The wallets block gives you the real Solana and EVM addresses, the ones with actual transactions behind them. The profile block gives you the linked X account, the handle, the bio, and the follower count, when the trader has one. The stats block gives you trade performance computed from on-chain trades, not from anything the trader typed about themselves.
When a trader is anonymous with no public X, the profile fields are simply absent. You still get the resolved wallets, which is often the more important half anyway.
Why the linkage is the whole point
Three concrete jobs get easier the moment handle, wallet, and X sit in one record.
Verifying that a trader is who they claim. A loud handle inside one app is easy to manufacture. An X account with years of public calls and a real follower base is much harder to fake, and a wallet with a genuine transaction history is harder still. Cross-checking the in-app handle against both gives you a way to tell a real track record from a fresh persona.
Following the real wallet on-chain. Copy-trading and research both depend on watching what a trader actually does, not what an app chooses to display. With the resolved address you can monitor entries and exits directly on Solana or EVM, on your own schedule, with your own tools.
Avoiding impersonators. Popular traders get copied by name. Someone spins up a lookalike handle and rides the reputation. When you can pin a handle to a specific wallet and a specific X account, a copycat has nothing real to point to, and the mismatch is obvious.
Underneath all three is one property that matters more than the rest: the performance numbers are derived from on-chain trades. A trader cannot self-report a win rate into existence, because the trades that produce it are public transactions. Screenshots can be edited. A chain of transfers and swaps cannot.
What we are and are not claiming
To be precise, because precision is the point of this whole product. We are not the FOMO app and we are not affiliated with fomo.family. We do not claim FOMO withholds anything on purpose. We do not claim every trader has an X account, because many do not. We do not tell you how we do the resolution, only that the API returns it.
What we claim is narrow and testable. Given a FOMO handle, we return the real on-chain wallets verified against activity, and the linked X identity wherever one exists, in a single structured response. The linkage that was missing becomes one field you can read.
Getting started
The endpoint is GET /v2/users/{handle}. It returns the resolved wallets, the profile block with the X link when present, and on-chain trade stats. Pass a handle you found in FOMO, read back the identity, and go verify it yourself on-chain. The product is free to use. Point it at a trader you already follow and see how much of the picture was missing.
Ship on verified trader data
Both-chain wallets, real PnL, and a realtime feed. One API.
Get an API key