Kerne Logo

Kerne Honesty Index

Neutrl sNUSD

Live . ethereum . 0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313

What this vault advertises, against what it actually paid, measured from its own share price on chain over a 30 day window. Everything below is recomputed hourly and every figure on this page comes from the snapshot named at the bottom. Nothing here is typed by hand.

Advertised

4.10%

30 day average

Realized

4.11%

30 day window

Gap

-0.01 points

100.2 percent of advertised

A negative gap means it realized more than it advertised.

advertised and realized measured over the same 30 day window.

This row cleared its own number.

Paid 100.2 percent of its advertised 30 day average over a 30 day window, measured on chain. We state this on exactly the terms we state a shortfall on: the advertised figure has to be on a basis comparable to a 30 day realized window, and it has to have been read from Neutrl's own surface within 10 days of the end of that window. If either stops being true, this section disappears and so does the claim on the image below.

Kerne Honesty Index: Neutrl sNUSD realized yield as a share of its advertised rate

Embed, markdown

[![Kerne Honesty Index](https://kerne.fi/honesty-badge.svg?row=neutrl-snusd&claim=delivery)](https://kerne.fi/honesty-index/neutrl-snusd)

Embed, HTML

<a href="https://kerne.fi/honesty-index/neutrl-snusd"><img src="https://kerne.fi/honesty-badge.svg?row=neutrl-snusd&claim=delivery" width="384" height="152" loading="lazy" alt="Kerne Honesty Index: realized yield measured against advertised yield"></a>

Dark theme

https://kerne.fi/honesty-badge.svg?row=neutrl-snusd&claim=delivery&theme=dark
  • The image is generated from the same hourly snapshot as the board, and it carries the read time and both block heights on its face.
  • If the row stops clearing its advertised figure, or the advertised figure goes unread for longer than we will difference against, the image quietly becomes the plain measurement card. It will not keep making a claim that has stopped being true.
  • It is free, needs no key, and we do not log who embeds it. There is nothing to sign and nothing to buy.
  • It measures one axis, realized yield against advertised yield. It is not a rating, not an audit, and says nothing about whether a protocol is safe.

What Neutrl published.

30D AVERAGE APY 4.1%

Figure we recorded

4.1%

Basis

30 day average (trailing-30d)

Label on their surface

30 day average APY

Read on

2026-08-12

Age at the end of our window

2.8 days, limit 10

Source

https://www.neutrl.finance/performance

Open the page we read it from. It is a first-party surface by rule. An aggregator figure is never recorded in this column, whatever it says.

Other figures this protocol publishes

  • 3.9% 7 day average APY (7 day average, read 2026-08-12)
  • 8.3% ITD APY (since inception, read 2026-08-12)

Recompute it yourself.

The realized figure is two calls and one exponent. Both calls are pinned to a block height, so they return the same values for you as they did for us, forever. Use any archive endpoint. We deliberately do not name one: a reproduction that runs on our RPC is not a reproduction.

The call

Chain

ethereum

Contract

0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313

Method

convertToAssets(uint256)

Argument

1000000000000000000 (one whole sNUSD share, 18 decimals)

eth_call data

0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000

Returns

NUSD, 18 decimals

The argument is one whole share in the SHARE token's own decimals, which is not always eighteen. Kerne's own skUSD reports twenty four, so calling it with 1e18 returns a millionth of the right answer. Ask the vault for its decimals rather than assuming, exactly as our collector does.

At the start of the window

Block

25539888 (0x185b530)

Timestamp

1784140607 (2026-07-15 18:36 UTC)

Share price returned

1.060395860241909329

At the end of the window

Block

25755112 (0x188fde8)

Timestamp

1786732607 (2026-08-14 18:36 UTC)

Share price returned

1.063912099713634866

Start of window, cast

RPC_URL=... cast call 0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313 "convertToAssets(uint256)(uint256)" 1000000000000000000 --block 25539888 --rpc-url "$RPC_URL"

End of window, cast

RPC_URL=... cast call 0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313 "convertToAssets(uint256)(uint256)" 1000000000000000000 --block 25755112 --rpc-url "$RPC_URL"

Start of window, raw JSON-RPC

{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313","data":"0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"0x185b530"]}

End of window, raw JSON-RPC

{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x08EFCC2F3e61185D0EA7F8830B3FEc9Bfa2EE313","data":"0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"0x188fde8"]}

Both calls return an integer in the smallest unit of NUSD. Divide by 10 ** 18 to get the share price printed above. Set RPC_URL to any archive endpoint you trust.

The arithmetic

growth = 1.063912099713634866 / 1.060395860241909329

elapsed = 1786732607 - 1784140607 = 2592000 seconds

annualized = (growth ^ (31536000 / 2592000) - 1) * 100

= 4.11% (0.331597% over the window)

Simple compounding at the observed rate, on a 365 day year. No fee assumption, no reinvestment assumption, no smoothing. If your arithmetic lands somewhere else, that disagreement is the finding and we want it: liam@kerne.fi.

Context for this row.

Live and accruing. Neutrl labels the basis on every APY it publishes, which is better discipline than most of this sector manages, it stamps its performance page with the date it was computed, and its own 30 day average lands within a basis point or two of what we compute independently on chain. It leads that page with a since inception figure of 8.3 percent, more than twice its current 7 day rate. That label is present and accurate on their own surface, so the figure is shown here as context and not as a claim about what a holder earns today.

This page measures one axis and one only: advertised yield against realized yield. It is not a rating, not an audit, and it says nothing about whether Neutrl is safe or whether its reserves are what it says they are. A protocol in an announced wind down paying nothing is behaving correctly. The reserve axis is a different page, at the reserve transparency scorecard.

Take this row with you.

This page

https://kerne.fi/honesty-index/neutrl-snusd

Citation

Kerne Honesty Index, 2026-08-14: Neutrl (sNUSD) advertised 4.10%, realized 4.11% from on-chain share-price growth, gap -0.01 points (advertised and realized measured over the same 30 day window). Source: https://kerne.fi/honesty-index#row-neutrl-snusd

Badge, markdown

[![Kerne Honesty Index](https://kerne.fi/honesty-badge.svg?row=neutrl-snusd)](https://kerne.fi/honesty-index#row-neutrl-snusd)

Badge, HTML

<a href="https://kerne.fi/honesty-index#row-neutrl-snusd"><img src="https://kerne.fi/honesty-badge.svg?row=neutrl-snusd" width="360" height="112" loading="lazy" alt="Kerne Honesty Index: advertised versus realized yield"></a>

Row in the API

https://kerne.fi/api/honesty-index/row/neutrl-snusd
Kerne Honesty Index badge for Neutrl

Where these numbers came from.

Snapshot generated

2026-08-14 18:37 UTC

Snapshot source

live store

Signature

verified, signer 0x84949170e0ad0f9bd8686a4aa4922c10f5fdc4ea

Row key

neutrl-snusd

The signature is checked on every render rather than assumed from the presence of a field. A snapshot that does not verify is served with that said plainly instead of borrowing the word.

Board last read 2026-08-14. Every figure on this page is regenerated from https://kerne.fi/honesty-index and none of them is stored in this file.