The Index League

Best basket wins

$250prize pool 1st · $100 2nd · $60 3rd · $40 4th · $30 5th · $20

Build a custom basket of 2+ tokens, hold at least 100M $MXMX, and hold your picks. The best-performing baskets of the 21-day season share the prize. Every score is computed in your browser from the published daily snapshots, so you can check the winner yourself.

Join in three steps

1

Hold 100M $MXMX

That's the entry bar. Hold it every day you're competing. No staking, no lockup, it just sits in your wallet.

Buy $MXMX
2

Pick 2+ tokens

Save a custom basket of at least 2 memes & stocks. It's one small transaction, and it's the same basket that decides what your drops pay out in.

Build my basket
3

Hold. That's it.

No signup. Your streak starts at the next daily snapshot and you are on the board at the one after it — a price has to move before there is anything to score. Changing your picks restarts the clock.

reads your balance & picks straight off the chain, right now

Standings

#WalletBasketEnteredDays held vs indexTime weightScore
Loading snapshots…

The math, in the open

Raw inputs: memeindex.fun/data/comp (one JSON per day, published as it is taken). Scoring code: view-source of this page. No server computes anything — the board is built in your browser from those files, and you can rebuild it yourself.

1 · Daily snapshot

Once a day, scheduled for 00:15 UTC, a bot records every holder's balance and picks and every basket token's USD price, then publishes it at /data/comp. Scores come from those files and never from a live feed, so yesterday's standings can still be re-checked tomorrow. Both sources are public too: the chain itself, and DexScreener for prices.

2 · Your entry day

Your entry is the first day of your current unbroken streak: same picks, at least 100M $MXMX, on every daily snapshot. Change your basket and the streak restarts. Dip under the bar and it restarts. Streaks that began before the season count from day 1. A league basket needs at least 2 tokens — one-coin baskets are lottery tickets, and someone running a wallet per token would win every time.

3 · Beat the index

Each pick's move from your entry price to the closing price, averaged equally, minus the whole index over your own window. The index is what you would have got by not picking at all, so what is left is the part your picking actually added.

R = mean( your picks ) − mean( all 21 )

Up 25% while the index is up 30% is a loss to the default. Down 5% while the index is down 20% is one of the best baskets in the league. Nobody wins for entering on a lucky week.

4 · Both prices are medians

Your entry price is the median of your first snapshots and the close is the median of the season's last ones, over the same number of days at both ends. A median cannot be moved by a single snapshot, so pumping a token for the minute the bot reads it does nothing — you would have to hold the price up for most of the window.

That window grows to 3 days as the season does: one snapshot each end at the start, three from day six on. It is always the widest that still leaves your entry window clear of the close, because a window that overlapped the close would have no move in it to measure.

5 · Score

R × √( days held ÷ season length ), as points out of 10,000

5000 points is the index. Above it you beat the market you were actually in, below it you did not. Ten thousand and zero are the far ends and nobody reaches them; the scale bends rather than stopping, so an extraordinary season never gets flattened onto the same number as a merely great one.

The square root keeps conviction rewarded but leaves the door open: a late joiner with a genuinely better basket can still win, while a day-20 tourist cannot. On the way down a loss divides by that factor instead of multiplying, so holding longer is always better in both directions. If every basket ends the season red, the one that lost the least wins.

Your $MXMX balance adds a thumb on the scale, and only a thumb. Ten times the entry bar is worth about a tenth of a point, against roughly 0.13 between neighbouring real scores — so holding more decides between wallets that did the same thing, and cannot buy a place off one that picked better. Over a whole season it moves a score by about a fifth of a percent. It counts per ten times the bar rather than per token, or the largest wallets would simply be the leaderboard. Balances are not published here; the score is.

6 · Prize and ties

The pool splits across the top five — 40% / 24% / 16% / 12% / 8% — and it grows with the field: $250 to start, plus $10 for every 10 NEW wallets that qualify after the season opens, up to $1,000. Wallets already holding a basket on day 1 set the baseline, so the pool only moves when someone new arrives.

Balance is already inside the score, so two wallets that picked the same tokens on the same day are ordered by who holds more without anyone's holdings being put on screen. A true tie needs the same picks, the same entry day and the same balance to the token, and those share a rank rather than being put in an invented order. Blatant on-chain price manipulation of a basket token disqualifies.

Worked example

Wallet A: entered day 1, held all 21 days, beat the index by +8%
    0.08 × √(21/21) = 0.080  →  8320.2 points
Wallet B: joined day 11 with sharper picks, +12% over the index in its 10 days
    0.12 × √(10/21) = 0.083  →  8397.2  ← wins
Wallet C: jumped in on day 19 chasing a token that had already run
    That run happened BEFORE C's entry price, so C's measured margin starts near 0%.
    Even +20% over the index: 0.20 × √(2/21) = 0.062  →  7745.9. Not enough.
Wallet D: set a basket on the final day to snipe a score
    Its entry window IS the close, so there is no move to measure. Not scored at all.
Wallet E: same picks as A, same days, but holds ten times the entry bar
    8325.8 — five points ahead of A, which decides a tie and nothing else.