YieldTruth - What On-Chain Yield Actually Pays, After Costs
Oleh VitovskyiSubmission for Superteam Ukraine IDEATHON Author: Oleh Vitovskyi, 15, Ukraine Track: Onchain Credit and DeFi · Developer Infrastructure · AI Agents and Machine Payments
Tagline: Every protocol advertises APY. Nobody publishes what is left after costs — or which strategies lose money. We measured both. This publishes it.
1. problemStatement — the problem and who has it
Advertised APY is not a return. It is a headline before fees, slippage, impermanent loss, borrow costs, gas, and the price impact of getting in and out at real size. The number a newcomer sees and the number they end up with are different, and nothing on-chain tells them by how much.
I know the size of the gap because I measured it, not because I read it. Over two weeks I built 22 scripts and measured claimed versus realised returns across seven independent strategy classes. The full measurement record — every result, the method notes that changed a result's sign, and the six errors I had to retract — is public:
https://telegra.ph/YieldTruth--measurement-record-seven-yield-strategies-three-work-09-13 The result was not "everything is a scam." It was stranger and more useful:
strategy classmeasured result
Funding-rate carryworks — ~4–5% a year after costs, not the double digits quoted
Stablecoin depegsworks — +0.43% net per event, 86% hit rate, but only 19 events a year = +5.8%/yr
Uniswap v2 LPworks — +8.8%/yr in fees against −0.4% impermanent loss
Volatility risk premiumreal (t=+4.21 on independent samples) but decayed: +48.9% in 2021 → +1.5% in 2026
Liquidation cascadesreal (t=+3.23 across 602 independent windows) but the edge fell 7× since 2020
Pair trading / cointegrationnegative before fees: −2.33% and −3.96%
Funding harvest at extremeslooked like +20.3%/yr; actually CAGR +1.1% with a 46.6% drawdown
The finding that matters is not which ones failed. It is that every one that works converges on the same 4–6% a year — carry, depegs, LP fees. These are independent mechanisms arriving at an identical number, which is not a coincidence: it is the price of capital. Strategies do not change that price, they only extract it differently. No advertised APY page says this, and it is the single most decision-relevant fact a small allocator can have.
I also caught myself being wrong, twice, and that is the part that makes the rest credible. First: I hypothesised that NFT collections which stopped minting would appreciate; the correlation supported it at −0.65. Measuring transfer volume reversed the causation — the "stopped" collections had almost no transfers, so they were abandoned, not scarce. I retracted it. Second: I reported that a chart pattern lost money, then was asked whether testing on historical candles was itself the problem. It was: in 3.5% of trades the stop and target sat inside the same candle, and that ambiguity alone flipped the sign of the entire result (−0.052R if all assumed stops, +0.054R if all assumed targets). Resolving it with minute data settled it honestly.
Who has this problem. Three groups, and the pain is different for each:
- Newcomers put in money at an advertised rate and quietly underperform. They rarely find out why, because nobody publishes the counterfactual.
- Small builders integrate a yield source using its marketing number and ship a product whose economics do not hold.
- Serious allocators already know they must measure. They pay analysts or build private tooling — which is exactly the evidence that the public version does not exist.
Why nobody has published it. Negative results have no sponsor. A protocol will not fund a page saying its strategy nets 4% after costs, and an aggregator earns referral revenue on deposits, so it is paid to show the biggest number that is defensible. The incentive to publish honest numbers sits with the people who have no budget: the users.
2. technicalApproach — how it works and what it integrates
A public, auto-updating dashboard that measures net realised yield after all costs for each venue, and — equally prominently — publishes strategies that do not work, with the numbers that killed them.
Pipeline 1. Ingest. Read venue state directly from Solana RPC and indexed data (Helius for history, Pyth and Switchboard for prices). Lending and borrow rates from Kamino, marginfi and Drift; routing and realistic slippage from Jupiter quotes at several notional sizes, not at zero size. 2. Cost model. For each strategy subtract what the headline omits: swap slippage at real size, protocol and performance fees, borrow cost for levered positions, funding paid or received, impermanent loss measured against a held baseline, and transaction fees. 3. Measure, don't model. Report realised outcomes over trailing windows, not projections. Where a strategy needs a position to exist, run a small reference position and report what it actually did. 4. Publish and freeze. Each daily measurement is written as an on-chain attestation containing the result hash and the parameters used. 5. Serve. A public dashboard for humans; a JSON API for builders.
Why Solana, and not "because blockchain." Three reasons that are specific, not decorative:
- The data is on-chain by nature. Positions, rates and flows are public state. There is no equivalent dataset for a bank product, which is why this measurement is possible here and not elsewhere.
- Measuring net yield honestly requires a reference position at small notional taken repeatedly. On Solana a probe transaction costs about $0.0003, so measuring daily across dozens of venues is affordable. At cent-level fees the measurement would cost more than the yield it measures.
- The attestation is the product's integrity. A yield dashboard is only worth reading if yesterday's number cannot be quietly edited after the fact. Writing each measurement on-chain makes the record append-only, so anyone can verify we published a bad result before it became obvious. That guarantee is the entire reason to trust the site, and it is not available off-chain.
The same number, but for agents. The JSON endpoint is not a nice-to-have. An autonomous agent allocating capital on-chain faces exactly the problem a newcomer faces, only faster: it reads an advertised APY, acts on it, and has no way to know what the position actually returns after costs. Today an agent either trusts the headline number or re-derives the cost model itself on every call. A machine-readable feed of net realised yield, with the cost assumptions attached and each measurement frozen on-chain, is infrastructure that agent frameworks currently have to fake. That is why the same product serves two audiences with one pipeline: humans read the dashboard, agents read the endpoint, and both get a number that cannot be quietly rewritten afterwards.
What already exists. The measurement scripts, the raw data, and the negative results are written and running. This is not a proposal to start; it is a proposal to publish and maintain work that exists.
3. targetAudience — first user and their current workflow
First user: me. I built this because I was about to allocate my own money on an advertised number and wanted to know the real one. I am user number 1 in the literal sense — the tool existed before the idea of publishing it did.
Their workflow today. A user opens an aggregator, sorts by APY, picks a top row, deposits, and never computes what they actually earned. If they do compute it, they have no baseline to compare against, so they cannot tell whether they were unlucky or whether the number was never real.
Beachhead. Small allocators in the $100–$10,000 range and builders choosing a yield source to integrate. This group is large, underserved, and harmed most by the gap: at that size, a two-point error is the whole return, and they cannot afford an analyst.
Expansion. From measuring venues to measuring anything with a claimed number and public state — validator performance, market-maker quality, protocol revenue quality. The method transfers; only the data source changes.
4. businessModel — how this is sustainable
linepricewho pays
Public dashboardfreenobody — it is the distribution
Builder API$20/monthteams integrating a yield source who need the net number in their own product
Historical dataset$99 one-offresearchers, funds, dashboards wanting the archive
Custom measurementfrom $300a protocol that wants an independent audit of its own net yield published
The revenue does not depend on deposits, referrals, or traffic to any protocol. That is deliberate: the moment this site earns money when someone deposits, it stops being able to publish that the deposit is a bad idea. Independence is not a nice-to-have here, it is the product.
Costs are low and known: RPC and indexer access, and a small amount of capital tied up in reference positions. The API pays for both at a few dozen subscribers.
5. competitiveLandscape — what exists and why this is different
what they showwho pays them
DefiLlamaheadline APY and TVL, broad coveragegrants and integrations
Protocol dashboardstheir own advertised ratethe protocol
Yield aggregatorsbest available APYreferral and deposit fees
Analyst reportsdeep but occasional, paywalledsubscribers
YieldTruthnet realised yield after costs, plus what does not workAPI subscribers, not depositors
The gap is not coverage — DefiLlama has more venues than we ever will. The gap is subtraction and disclosure of failure. Everyone publishes the gross number because that is what the incentives pay for. Nobody publishes "we tested this and it loses money after costs," because there is no one to fund that sentence.
Why this is defensible. The moat is not the code — the pipeline is straightforward and could be rebuilt. It is the accumulating public record of predictions and retractions, written on-chain as it happens. A competitor can copy the dashboard in a month; they cannot copy a year of timestamped measurements that include the times we were wrong and said so. Trust in a measurement service is built from admitted errors, and that takes real time.
Honest risks, stated plainly
- Cost models can be wrong. Every assumption will be published alongside the number so the calculation can be checked and disputed.
- Protocols will dislike some results. That is the point, and it is also why revenue must never come from them.
- This is a tool, not a marketplace. It will not compound through network effects the way a platform does. It compounds through track record instead — slower, but harder to displace.