The Honesty Index reads fifteen synthetic dollars once an hour. For each one it takes the yield the protocol advertises on its own surface, quoted verbatim and dated, computes what the vault actually paid over the trailing thirty days from its share price on chain, and prints the difference. It has been running since July 14. Usually it gets read one row at a time. Read as a dataset, this hour's snapshot says two things worth publishing on their own.
The first is that three protocols realize slightly more than they advertise. The second is that four of the fifteen have stopped paying anything at all, with share prices that have not moved in months. Neither of those is an accusation, and the second one in particular is not a scandal.
Before either: our own row is the worst on the board, at plus three points, and it has been the worst since the board went up. That is not a disclaimer bolted to the end. It is the reason the board is worth reading at all, because a scoreboard whose author always wins is a marketing page with a table in it.
Everything below was read at 2026-08-02 02:37 UTC from the signed snapshot at /api/honesty-index. These figures move by tenths of a point per hour and they cross zero. Avant sat at plus 0.68 two hours before this was written and plus 0.67 when it was. Treat every number here as a dated read, not a standing fact, and treat the live row as the authority over this page.
The three that pay more than they say
Of the fifteen rows, seven can be compared like for like this hour, meaning the protocol publishes a figure on a basis that can honestly be set against our realized window. Three of those seven come out negative, which on this board means the vault paid more than the label promised.
| Dollar | Advertised, their own surface | Realized, 30d on chain | Gap |
|---|---|---|---|
| Ethena sUSDe | 3.92%, their 30 day average | 3.97% | -0.05 points |
| Sky sUSDS | 3.52%, the Sky Savings Rate | 3.57% | -0.05 points |
| Neutrl sNUSD | 4.20%, their 30 day average | 4.21% | -0.01 points |
Three qualifications, because a compliment that omits them is just flattery. Sky's match is structural rather than virtuous: the Sky Savings Rate is a governance set rate, not a strategy return, so advertised and realized agree almost by construction. That is a property of the design, not a discipline Sky has and others lack, though it does mean a holder gets what the label says.
Ethena and Neutrl both also publish a since inception average that is roughly twice their current rate, near 10.86 and 8.6 percent respectively. Both figures are correctly labelled as since inception on their own surfaces, which is the whole difference between context and a claim, and both are shown on our board with those labels intact. We are noting them here because leaving them out would be the same omission we score other people for.
And Neutrl labels the basis on every rate it publishes and stamps its performance page with the date the figures were computed, which is better discipline than most of this sector manages. That is the part worth copying, more than the number.
The four that have stopped, and why that is not a scandal
Four of the fifteen vaults returned a realized figure of exactly zero this hour. Not a low number. Zero, because the share price has not moved at all over the window, and in three of the four cases it has not moved in the better part of a year.
| Dollar | Share price last moved | What the protocol itself says |
|---|---|---|
| Level slvlUSD | 2025-10-31 | Its own docs carry a redeem only notice and direct holders to unstake |
| Elixir sdeUSD | 2025-11-05 | Its own docs state the asset has been sunset and direct holders to one to one USDC claims |
| Stables Labs sUSDX | 2025-11-07 | Nothing we could find, which is why this row says dormant and not sunset |
| Resolv wstUSR | 2026-03-22 | Most operations paused after a disclosed incident; its staking rate endpoints now return a deprecation notice instead of a number |
Say the obvious thing plainly, because a table like that invites the wrong reading. None of these four is advertising a yield it is not paying. All four publish no rate at all, which is the correct behaviour for a protocol that has stopped accruing. A frozen share price on a vault whose issuer has announced a wind down is a record of the wind down, not a hidden fee, and reading it as deception would be wrong.
The fourth row is the one worth dwelling on, because it is where the method could have gone wrong. Stables Labs announced nothing we could find. Its documentation carries no yield figure and was last updated about a year ago, and on the day we checked, usdx.money, app.usdx.money and stableslabs.com all returned a Cloudflare origin error while their separately hosted docs stayed up. So the row is labelled dormant rather than sunset, because asserting a wind down a company never declared would be exactly the kind of unsourced claim about a named business this board exists to catch. What we can show, we show: a share price that has not moved since 2025-11-07, verified against two independent archive providers at seven, thirty, ninety and one hundred eighty days.
Level and Elixir are the same discipline in the other direction. Both accrue by share price appreciation by their own documentation, so a flat share price is their own measure of their own yield, not an artifact of ours. Without that check the rows would have been indefensible.
The four rows we refuse to score, including two that would have flattered
Seven of the fifteen rows state a gap. Eight do not, and four of those are the dormant rows above, which publish no rate at all. The remaining four decline for a reason worth spelling out, and it is the part of the board we would most like other people to copy.
Cap, Falcon Finance and Tori all publish on a trailing seven day basis. Our realized column is a thirty day window. Subtracting a seven day advertised average from a thirty day realized figure is the single easiest way to manufacture a gap that is not there, so those three rows print no gap and say why instead.
Here is why that rule costs us something. On the raw numbers, two of the three come out well. Falcon realized 5.28 percent against 4.81 advertised. Tori realized 12.26 against 11.26. Both would read as flattering, and we are not going to bank a comparison we have just called invalid for everybody else. If either protocol wants that comparison made, the fix is theirs and it is easy: publish a thirty day average next to the seven day one.
The fourth is Usual, which publishes no rate for sUSD0 at all. Its app renders figures for staking and locking the USUAL token, which are different products with different risk, and its own documentation says the sUSD0 rate is governance set without naming a number. Taking one of the visible figures and calling it sUSD0's rate would have manufactured a double digit gap against a claim Usual never made. So that row measures 4.09 percent realized and compares it to nothing.
The badge on every row is free, and it is yours
Every one of the fifteen rows has three things attached to it: a permalink, a one sentence citation, and a dated SVG badge served from our origin. The badge is free, needs no key, is served with an open CORS header so it renders inside anyone else's page, and prints its own read time on its face. That last part is the point. A yield figure detached from the instant it was read is a claim about a named company that outlives its own evidence, so a screenshot of one of these cannot quietly become a claim about a number that has since moved.
One line of markdown embeds any row, including in a README:
[](https://kerne.fi/honesty-index#row-YOUR-ROW-KEY)
Row keys are the key field of each row in /api/honesty-index, which also returns the permalink, the badge URL and the citation line for every row under cite.rows. There is a dark theme, and an HTML variant with fixed dimensions so it does not reflow a host page while it loads. Both are on the board under "Take a row with you", along with a per row copy line under each entry. An unknown key renders a card that says so, rather than a broken image on somebody else's site.
To be exact about what the badge is not, since it will travel further than this page: it measures one axis and it is not a grade. There is no seal, no letter, no colour that means a protocol is safe. The dot on it describes whether our own snapshot verified, not whether the protocol named on it is any good. The reserve side of the question is a different page, the reserve transparency scorecard.
And if you run a synthetic dollar with an ERC-4626 vault and a published APY, you can ask for a row at the bottom of the board. It costs nothing and it buys nothing.
Our own row, which is the worst one
Kerne sits first on the board and last on the measurement, at plus three points: 3.12 percent advertised against 0.12 percent realized. The realized figure deserves less credit than even that, and we would rather say so than let it stand. It derives from a single 0.10 kUSD distribution on 2026-07-09, which our own deployment registry records as a plumbing smoke test proving the strategist topology works. That is not one distribution among several. It is the only one the live vault has ever received, so annualizing it is annualizing a test transfer, and absent further distributions the figure decays daily toward zero.
There is a second thing on that row that happened two days ago. Between 2026-07-30 and 2026-08-01 our advertised figure read 10.5 percent, a total made of organic carry plus a funded Genesis incentive. The escrow is real money, USDC on chain at an address we publish. What did not exist was any path from the escrow to a holder: it sits in a 2-of-3 Safe, holders are paid in kUSD out of the strategist buffer, and no scheduled job, script or contract joins the two. For two days our own headline carried a component that had never been paid and had no mechanism to be paid, while the share price sat unchanged. Anyone could have refuted it with one RPC call, which is precisely the check this page tells everyone else to run.
We withdrew it on 2026-08-01, back to organic carry alone. Note the direction: withdrawing it made our own gap narrower, from a much larger number down to three points. We would rather record that than be flattered by it, because the only gap worth closing is one that closes because yield actually landed, and ours has not. The escrow stays published and stays excluded from the rate at /api/apy.
How to check any of this without us
None of these numbers requires trusting the page they are printed on, which is the only reason we are comfortable printing them about other companies. For any row: read the vault's decimals, call convertToAssets on one whole share at a block thirty days back and again at a recent block, divide the two, and annualize over the real elapsed time between them. That is the entire method, the exact block heights and timestamps used for each row ship inside the API response, and the recipe is in the verify block of /api/honesty-index so you do not have to take our arithmetic either. The same check runs against anything you hold, including us, with the free tool at /verify-anything.
If you think a row about you is wrong, the useful thing is that it is falsifiable in one call. That has already happened to us, on our own row, and the record of it is two paragraphs up.
All figures read from the signed snapshot at https://kerne.fi/api/honesty-index with generated_at 2026-08-02T02:37:18.944Z, EIP-191 signed by 0x84949170e0ad0f9bd8686a4aa4922c10f5fdc4ea, and the badges linked above read the same instant. Advertised figures are quoted verbatim from each protocol's own surface with the date they were captured, and are shown with the basis label the protocol itself used; where a protocol publishes several figures, the board picks the one comparable to a thirty day realized window and lists the rest as context. Realized figures are computed from vault share price at two block heights via archive RPC and are recomputable by anyone. These figures change every hour and the live row supersedes this page. Kerne's own row uses a 28.9 day window because skUSD v2 was deployed on 2026-07-03 with its share price reset to 1.000000, and is labelled as such on the board. Our first external audit, by Hexens, is complete and published in full at /security/audits, and where the deployed bytecode differs from the audited source we publish the difference at /security/deployed-vs-source. An audit is a review of specific contracts at a specific commit and is not a guarantee of safety or a solvency opinion. Nothing here is investment advice, nothing here is an offer of any token, and no rate here is a promise. This board measures disclosure accuracy on one axis and is not a security review, a solvency opinion, a rating, or a compliance statement about any protocol named on it. Our open gaps are listed at /legible.
Verify it yourself
Run the same check on any reserve, or have it run for you.
Paste any issuer's signed attestation into the free verify tool and recover the signer, rehash the figures, and check freshness in your own browser. If you would rather have it run for you, there is a machine-signed instant read of an address you name, a human-reviewed version of the same read, a commissioned teardown like this one on any target, and an independent read of a counterparty you hold or allocate to. Rates are on each page. Attestation tooling, not an audit, and not a solvency opinion.