The first honest, real-data run of the solv1-alpha harness (run f02ed44f) has rendered its go/no-go on the Solana meme-coin copy-trading thesis: NO-GO for naive copy-trading. The cohort did make money — +23.0% decayed and after fees — but a random 50-meme basket returned +109.5% over the same bull window, and the cohort fell below the SOL-hold+10pp floor. The one durable signal buried in the loss: the edge lives entirely in long/position holds, and entry decay destroys it on fast scalps.
VERDICT: NO-GO (naive copy-trading)
Copying the selected cohort net +23.0% (real-kline-decayed, after fees) vs a seeded random 50-meme basket at +109.5% — the cohort was crushed by ~86.5pp in a bull window and sits below the SOL-hold+10pp bar. Two of the four GO conditions fail outright (beat-SOL-hold-by-10pp, beat-random-basket). Because the wallet universe is leaderboard-selected, +23.0% is a survivorship ceiling — live would be strictly worse. Naive, whole-book copy-trading is a hard NO-GO.
For Agents
First real verdict from solv1-alpha — run
f02ed44f, 3-week train / 1-week test, 28-day GMGN harvest, local Docker Postgres. Decay was priced from real GMGN 1-second klines across 231 positions (not a fixed haircut) — this is the first run with genuine follower-fill decay. Result = NO-GO on naive copy-trading. The single actionable finding: segment the book — position/long-holds carry the edge (+296.1%), scalps destroy it (−20.5%). Do NOT restart whole-book copy-trading; the next test is position-holds-only (see the refinement below). This verdict gates the shelved solv1-rig latency harness — which stays shelved.
The Run (f02ed44f)
The first end-to-end run on the GMGN-ingester data path — the RPC path was dead (non-archival node) — so this is the first time the harness reached a verdict on real data.
| Parameter | Value |
|---|---|
| Run id | f02ed44f |
| Walk-forward split | 3 weeks train / 1 week test |
| Harvest window | 28 days of GMGN wallet_activity |
| Storage | local Docker Postgres (throwaway) |
| Priced positions | 231, decayed from real 1-second klines |
| Verdict | NO-GO (naive copy-trading) |
Cohort Funnel — the leaderboard doesn’t survive re-derivation
graph LR H["121 harvested<br/>leaderboard wallets"] -->|"84 bots<br/>auto-rejected (G1)"| C["37 copyable"] C -->|"unprofitable 12 · min_winrate 10<br/>min_trades 1 · + adverse-selection"| COH["cohort of 8"] COH --> M["231 positions<br/>priced w/ real 1s-kline decay"] style COH fill:#2d2d2d,stroke:#e9c46a,color:#fff style M fill:#264653,stroke:#2a9d8f,color:#fff
- 121 leaderboard wallets harvested → 84 auto-rejected as bots by the G1 pre-filter (activity-rate + GMGN smartmoney flag) → 37 copyable survive to scoring.
- Scoring + adverse-selection filters cut the 37 down to a cohort of 8. Dominant cut-reasons: unprofitable 12, min_winrate 10, min_trades 1.
- Takeaway: ~1/3 of nominally “top leaderboard” wallets fail an honest on-chain re-derivation — the leaderboard’s advertised PnL simply does not survive re-computation from actual fills. Selection discipline is doing real work before any strategy question is asked.
Headline Result
| Strategy (test window) | Net return | vs cohort |
|---|---|---|
| Copied cohort — real-kline-decayed, after fees | +23.0% | — |
| Random 50-meme basket (seeded) | +109.5% | cohort loses by ~86.5pp |
| SOL-hold + 10pp bar | (the GO floor) | cohort below the bar |
The cohort is profitable in isolation but loses to buying 50 memes at random in the same window — i.e. in a bull tape the “skill” signal is swamped by meme-beta, and paying for wallet selection buys you less than a coin-flip basket.
Segment Breakdown — the key insight
Splitting the mirrored book by hold horizon is what turns an uninformative aggregate into a real hypothesis:
| Segment | Net return | Read |
|---|---|---|
| Scalp | −20.5% | Entry decay destroys fast copies — the follower lands after the leader, so the price it pays has already moved. |
| Swing | +3.4% | Roughly flat — no meaningful edge either way. |
| Position (long hold) | +296.1% | The edge concentrates here — long, decay-tolerant holds where a few-hundred-ms entry lag is noise, not signal. |
The positive aggregate (+23.0%) is therefore carried entirely by a handful of position holds, while scalps bleed. The two are being averaged together in the naive verdict, which is exactly why the naive verdict is a NO-GO.
Refined hypothesis worth a future test — copy positions, never scalps
The aggregate NO-GO masks a real, decay-tolerant edge. A future run should filter the paper-mirror to position / long-hold trades only (drop scalps and swings) and re-test against the same SOL-hold and random-basket benchmarks. The mechanism is sound: entry decay is fatal to fast copies but negligible over long holds, and the position segment cleared the random basket by ~187pp on its own. This is the single most valuable output of run
f02ed44f.
Why NO-GO — the four GO conditions
The harness gates a GO on four conditions, all of which must hold:
| # | Condition | Result |
|---|---|---|
| 1 | Beat SOL-hold by ≥ 10pp | FAIL — cohort below the SOL-hold+10pp bar |
| 2 | Beat the random meme basket | FAIL — +23.0% vs +109.5% |
| 3 | Edge is not scalp-only / survives at size | Reframed — scalps are outright −20.5%; the edge is position-only (concentrated, not broad). See segment split above. |
| 4 | Filtered cohort outperforms raw | PASS — filtered − raw = +14.8pp |
Conditions 1 and 2 fail hard, so the composite verdict is NO-GO regardless of 3 and 4.
What the Filters Bought
Condition 4 passing is the one unambiguous win: the adverse-selection filters (wash / copy-bait / age-funding) delivered filtered − raw = +14.8pp. The filters are not just shrinking the sample — they genuinely add value by removing wallets whose realized edge is unrepeatable by a follower. This machinery is worth keeping in any future position-holds-only test.
Upper bound → the NO-GO is hard, not marginal
The wallet universe is still leaderboard-selected (wallets that already won), so +23.0% is a survivorship ceiling — live forward performance is strictly lower. A number that already loses to a random basket at its ceiling cannot be rescued by going live. That is why naive copy-trading is a hard NO-GO rather than a close call. The refined position-holds hypothesis inherits the same caveat and must be tested with the same survivorship discipline.
Related
- solv1-alpha-validation-backtest-2026-07-04 — the harness that produced this verdict (pipeline, walk-forward integrity, the four GO conditions)
- solv1-alpha-gmgn-ingester-increment-2026-07-04 — the built GMGN-ingester + 1s-kline decay path this run ran on
- solv1-alpha-data-source-pivot-2026-07-04 — why the data path is GMGN-harvest, not RPC
- slv1-copy-trading-feasibility-2026-07-03 — the feasibility study this verdict adjudicates
- solv1-rig-increment-1-build-2026-07-03 — the shelved latency rig this verdict gates (stays shelved)
- slv1 — project overview / strategy pipeline
- LOG · TOPICS