Methodology

How Menfiso counts

Every figure on this site is rebuilt from public Solana data by the rules below. Where the data cannot answer, we say “unknown” — never zero, never a guess.

1. Data

We read each wallet's transactions straight from the Solana blockchain through a standard RPC node, newest first. A first analysis reads up to 90 days or 3,000 transactions, whichever comes first; a wallet with more is analysed on a partial history, and every figure built on it says so.

Raw transactions are stored as they came from the chain. When a rule changes, figures are recomputed from the stored data, and each result carries the version of the rules that produced it.

The dollar price of SOL comes from CoinGecko's hourly history; current token prices and token names come from Jupiter. Token names are chosen by their creators, so we show them as labels, not as claims about a project.

2. Reading a transaction

A transaction's meaning for a wallet is taken from the wallet's own balance changes, not from any “swap” label. That way a route through several pools collapses into one trade, and a venue we have never seen still shows up as a change of balances.

  • Buy: a recognised trading program ran, one token came in, and SOL, USDC or USDT went out. Sell is the reverse.
  • SOL and wrapped SOL count as one asset. Network fees are kept apart, and tips and bot fees paid alongside a trade count as part of its cost.
  • Deposits for accounts a trade creates (a venue's per-user records) do not move the trade's price, but they are still counted as money spent.
  • Transfers, failed transactions and shapes we cannot interpret are recorded as what they are. They are never counted as trades.

Recognised venues: Jupiter, Pump.fun, PumpSwap, Raydium (AMM v4, CPMM, CLMM, LaunchLab), Orca Whirlpool, Meteora (DLMM, DAMM v2).

3. Profit and loss

Every figure is computed in both SOL and US dollars. A trade paid in SOL is converted at SOL's price in the hour of the trade; one paid in USDC or USDT counts at one dollar.

  • Cost of a buy = what was paid + tips and bot fees + the network fee. Proceeds of a sell = what was received − tips − the network fee.
  • Each buy opens a lot. A sell closes the oldest lots first (FIFO). The profit of each closed piece is its proceeds minus its share of the lot's cost.
  • Realized PnL is the sum over sells in the period, even when the lot was bought earlier. Return on cost is realized PnL divided by the cost of what was sold.
  • Win rate is the share of tokens sold in the period whose summed result in SOL is positive. A win is a trade that beat simply holding SOL.
  • Unrealized PnL: tokens still held, valued at the current price, minus what they cost.

4. What we do not know

Tokens that arrive without a trade — a transfer, an airdrop, a leftover of an aggregator route, or anything bought before the history we read — have no known cost. We do not treat them as free.

  • A sale of such tokens is shown as sold at unknown cost next to realized PnL. It is not added to it.
  • The share of sell proceeds with a known cost is shown for every period.
  • A trade with no SOL price for its hour has a SOL figure and no dollar figure.
  • A token with no current price is left out of the totals, and we say how many are left out.
  • Token-for-token swaps are not priced yet.

The public RPC lists only transactions that name the wallet itself, so tokens sent to an existing token account of the wallet may not appear. A later sale of them then shows as sold at unknown cost.

5. Data confidence

Each period is rated high, medium or low, with the reasons shown. The rating is the worst of these checks:

  • whether the history read reaches the start of the period (low below half of it);
  • the share of sell proceeds with a known cost (medium below 95%, low below 75%);
  • the share of activity we could not interpret (medium from 5%, low from 20%);
  • the number of sells (medium under 20, low under 5);
  • missing SOL prices, or token-for-token swaps that are not priced yet (medium).

6. Finding and ranking traders

Our system samples recent transactions of each recognised venue. A signer becomes a candidate only if that transaction was a buy or a sell for it. Candidates are analysed by the rules above, and every one keeps a record of where it was found.

Bots are flagged and not ranked: over 150 trades a day, sells within 20 seconds of buying as a habit, or most transactions failing.

A wallet qualifies for the leaderboard when, over 30 days, it has:

  • at least 10 sells across 5 or more tokens, and a trade in the last week;
  • data confidence that is not low;
  • a known cost for at least 75% of its sell proceeds;
  • at least $100 of realized PnL and a positive return on cost.

The score weighs realized profit (35%, log scale), return on cost (25%), win rate (25%) and breadth (15%), discounted by 15% at medium confidence.

The leaderboard can be narrowed three ways. Consistent: realized profit over each of 7, 30 and 90 days. High profit: at least $1,000 of realized profit in 30 days. Active: a trade in the last 24 hours. These describe past behaviour and are not a forecast.

7. What this is not

This is analytics of public data. A wallet's past results describe what it did, not what it will do. Copying a trade later usually gets a worse price. Nothing here is financial advice, and we never ask for a seed phrase or a private key.