Tori strUSD
Live . ethereum . 0x280839980a7eD0D7717F64125fE241012E5F5815
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
10.67%
7 day average
Realized
10.57%
30 day window
Gap
not comparable
advertised on a trailing-7d basis against a 30 day realized window, so no gap is stated.
What Tori published.
"apy":10.67,"apySource":"slot","sharePrice":1.018532
Figure we recorded
10.67%
Basis
7 day average (trailing-7d)
Label on their surface
Current APY
Read on
2026-08-31
Age at the end of our window
27.8 days, limit 10
Source
https://app.tori.finance/api/apy
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.
This capture is older than we will difference against a live reading, so no gap is stated above. That is our own staleness, not theirs. Both numbers stay visible with their dates.
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
0x280839980a7eD0D7717F64125fE241012E5F5815
Method
convertToAssets(uint256)
Argument
1000000000000000000 (one whole strUSD share, 18 decimals)
eth_call data
0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000
Returns
trUSD, 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
25855872 (0x18a8780)
Timestamp
1787945819 (2026-08-28 19:36 UTC)
Share price returned
1.017638868267885528
At the end of the window
Block
26070919 (0x18dcf87)
Timestamp
1790537819 (2026-09-27 19:36 UTC)
Share price returned
1.026081005249828983
Start of window, cast
RPC_URL=... cast call 0x280839980a7eD0D7717F64125fE241012E5F5815 "convertToAssets(uint256)(uint256)" 1000000000000000000 --block 25855872 --rpc-url "$RPC_URL"End of window, cast
RPC_URL=... cast call 0x280839980a7eD0D7717F64125fE241012E5F5815 "convertToAssets(uint256)(uint256)" 1000000000000000000 --block 26070919 --rpc-url "$RPC_URL"Start of window, raw JSON-RPC
{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x280839980a7eD0D7717F64125fE241012E5F5815","data":"0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"0x18a8780"]}End of window, raw JSON-RPC
{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0x280839980a7eD0D7717F64125fE241012E5F5815","data":"0x07a2d13a0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"0x18dcf87"]}Both calls return an integer in the smallest unit of trUSD. Divide by 10 ** 18 to get the share price printed above. Set RPC_URL to any archive endpoint you trust.
The arithmetic
growth = 1.026081005249828983 / 1.017638868267885528
elapsed = 1790537819 - 1787945819 = 2592000 seconds
annualized = (growth ^ (31536000 / 2592000) - 1) * 100
= 10.5741% (0.829581% 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.
Tori's right of reply.
Tori did not ask to be measured and has not sent a reply. This slot is open, free, permanent and published unedited, including a reply arguing that our method is wrong. Nothing is charged for it and nothing is offered in exchange.
The terms, and the form, are at the Right of Reply. If the disagreement is about arithmetic rather than framing, the faster door is the checker: send the two block heights and the two share prices you read, and the figure is corrected in public.
Context for this row.
Live and accruing, and one of the two dollars on this board that grew while the category shrank. strUSD is an ERC-4626 vault that began accruing in early July, so its realized figure here is measured over the few weeks it has actually paid rather than a full thirty days, and is labelled as such. Tori's own app reports a current APY near 10.7 percent, taken from the last week of vault profit, after about 12.3 percent when we first read the same endpoint in July and about 11.3 percent across August, and our realized reading sits above it, so we show both and state no gap between a seven day figure and our window. Two things deserve a reader's attention rather than a verdict. The 13.75 percent this token was widely quoted at when this row was added is DefiLlama's computed figure, not one Tori itself publishes: Tori's own surfaces showed about 11.3 percent then and about 10.7 percent on 2026-08-31, and market a 15 percent target and 'the highest delta-neutral yield in the market'. And the trUSD behind it, about 54 million dollars now, has pushed past Tori's own stated 50 million dollar pre-deposit cap, earns a points program paying 30 Cores per dollar per day, and is only partly staked into the strUSD this row measures. Audited by Sherlock and Nethermind.
This protocol publishes a 7 day average and our realized column is a 30 day window, so the two are not directly comparable. We show both and state no gap rather than manufacture one out of a unit mismatch.
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 Tori 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/tori-strusdCitation
Kerne Honesty Index, 2026-09-27: Tori (strUSD) advertised 10.67%, realized 10.57% from on-chain share-price growth, gap not comparable (advertised on a trailing-7d basis against a 30 day realized window, so no gap is stated). Source: https://kerne.fi/honesty-index#row-tori-strusdBadge, markdown
[](https://kerne.fi/honesty-index#row-tori-strusd)Badge, HTML
<a href="https://kerne.fi/honesty-index#row-tori-strusd"><img src="https://kerne.fi/honesty-badge.svg?row=tori-strusd" 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/tori-strusdWhere these numbers came from.
Snapshot generated
2026-09-27 19:37 UTC
Snapshot source
live store
Signature
verified, signer 0x84949170e0ad0f9bd8686a4aa4922c10f5fdc4ea
Row key
tori-strusd
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-09-27. Every figure on this page is regenerated from https://kerne.fi/honesty-index and none of them is stored in this file.