Skip to main content
Sign in
← avoid.net

Verify a decision

Every moderation decision on AVOID.NET is anchored to the Solana blockchain. You don't have to trust us — you can verify cryptographically that we committed to a verdict at a specific moment and have not rewritten it.

How verification works

  1. We commit. When a moderator accepts/rejects a submission, we serialize the decision into deterministic UTF-8 bytes (payload_canonical_string), hash it with SHA-256, encode the digest as base58, and write it to Solana inside an SPL Memo v2 transaction.
  2. We store the bytes. The exact bytes we hashed are stored alongside the decision in our database. Anyone can read them and recompute the hash in any language.
  3. You compare three values. Database hash, your independently-recomputed hash, and the hash inside the on-chain memo. If all three match, the decision is authentic and timestamped.
The on-chain memo format is AVOID.NET|v1|h:<b58-sha256>|d:<id>|t:<iso>

Find a signature on any investigation page's decision log, or run python -m src.verify_decision --signature <sig> for a CLI check.

Decision
publish · Sturdy V1
View on Solana ↗
Sequence
#1
Score
Cluster
mainnet-beta
Slot
422980007
Off-chain at
2026-05-29T17:03:34.168Z
Anchored at
Block time

Independent verification

1. Database (off-chain)
Fs5zX9XgYpnssc61ZtjEwpi1Dep3d8Mu2ARZJ7ijQMrS
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (6381 chars)
{"actor":"system:backfill","investigation_id":"299815f1-eacc-4b93-ab24-10d1c6de9f95","kind":"publish","page_slug":"sturdy-v1","published_at":"2026-05-29T17:03:34.065Z","sequence_num":1,"snapshot":{"content_type":"investigation","entity_name":"Sturdy V1","sections":[{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://sturdyfinance.medium.com/introducing-sturdy-f8b9c21a9b96","type":"other","url":""},{"credibility":3,"name":"https://medium.com/sentora/a-deep-dive-into-sturdy-finance-eaa7598e36ae","type":"other","url":""},{"credibility":3,"name":"https://www.ycombinator.com/companies/sturdy-finance","type":"other","url":""},{"credibility":3,"name":"https://defillama.com/protocol/sturdy","type":"other","url":""},{"credibility":3,"name":"https://sturdyfinance.medium.com/sturdy-ethereum-launch-f545140b7c4e","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://cointelegraph.com/news/attacker-drains-800k-from-defi-protocol-sturdy-finance","type":"other","url":""},{"credibility":3,"name":"https://decrypt.co/144188/defi-lending-protocol-sturdy-finance-hit-by-exploit-over-750k-drained","type":"other","url":""},{"credibility":3,"name":"https://immunebytes.com/blog/sturdy-finance-hack-june-12-2023-detailed-analysis/","type":"other","url":""},{"credibility":3,"name":"https://www.certik.com/resources/blog/oracle-dependency-decrypting-the-sturdy-finance-attack","type":"other","url":""},{"credibility":3,"name":"https://rekt.news/sturdy-rekt","type":"other","url":""},{"credibility":3,"name":"https://eigenphi.substack.com/p/sturdy-finance-exploit-forensic-analysis","type":"other","url":""},{"credibility":3,"name":"https://beincrypto.com/defi-sturdy-finance-exploited/","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://www.certik.com/resources/blog/oracle-dependency-decrypting-the-sturdy-finance-attack","type":"other","url":""},{"credibility":3,"name":"https://immunebytes.com/blog/sturdy-finance-hack-june-12-2023-detailed-analysis/","type":"other","url":""},{"credibility":3,"name":"https://eigenphi.substack.com/p/sturdy-finance-exploit-forensic-analysis","type":"other","url":""},{"credibility":3,"name":"https://olympix.security/blog/sturdy-finance-hit-by-reentrancy-exploit","type":"other","url":""},{"credibility":3,"name":"https://rekt.news/sturdy-rekt","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://cointelegraph.com/news/defi-protocol-sturdy-finance-offers-100k-bounty-to-hacker-if-funds-are-returned","type":"other","url":""},{"credibility":3,"name":"https://www.theblock.co/post/234376/sturdy-finance-bounty","type":"other","url":""},{"credibility":3,"name":"https://beincrypto.com/defi-sturdy-finance-exploited/","type":"other","url":""},{"credibility":3,"name":"https://news.bitcoin.com/sturdy-finance-falls-victim-to-exploit-losing-442-eth-in-latest-defi-hack/","type":"other","url":""},{"credibility":3,"name":"https://decrypt.co/144188/defi-lending-protocol-sturdy-finance-hit-by-exploit-over-750k-drained","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://cointelegraph.com/news/sturdy-finance-defi-stablecoin-market-launches-after-exploit","type":"other","url":""},{"credibility":3,"name":"https://crypto.news/defi-protocol-sturdy-finance-reopens-stablecoin-market-despite-falling-tvl/","type":"other","url":""},{"credibility":3,"name":"https://sturdyfinance.medium.com/introducing-sturdy-v2-4a0135aca675","type":"other","url":""},{"credibility":3,"name":"https://sturdyfinance.medium.com/sturdy-v2-1-month-recap-caf43e1a8ddc","type":"other","url":""},{"credibility":3,"name":"https://defillama.com/protocol/sturdy","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://cointelegraph.com/news/attacker-drains-800k-from-defi-protocol-sturdy-finance","type":"other","url":""},{"credibility":3,"name":"https://decrypt.co/144188/defi-lending-protocol-sturdy-finance-hit-by-exploit-over-750k-drained","type":"other","url":""},{"credibility":3,"name":"https://eigenphi.substack.com/p/sturdy-finance-exploit-forensic-analysis","type":"other","url":""},{"credibility":3,"name":"https://rekt.news/sturdy-rekt","type":"other","url":""}]}],"sources_used":[],"summary":"Sturdy V1 was a DeFi lending protocol on Ethereum and Fantom that offered interest-free borrowing by routing collateral into yield-bearing positions via third-party protocols such as Lido, Curve, and Yearn Finance. On June 12, 2023, the protocol suffered a read-only reentrancy exploit that drained approximately 442 ETH (roughly $800,000) from its lending pools by manipulating the Balancer B-stETH-STABLE price oracle. Stolen funds were laundered through Tornado Cash within 20 minutes and were never recovered, despite a $100,000 bounty offer to the attacker. ZachXBT flagged the protocol in connection with the exploit. Sturdy subsequently launched a redesigned V2 architecture.","timeline":[{"date":"2022-03-01","event":"Sturdy Finance launches on Fantom mainnet","source":""},{"date":"2022-01-25","event":"CertiK audit of Sturdy Finance completed; Balancer dependency explicitly excluded from scope","source":""},{"date":"2022-06-03","event":"Sturdy Finance launches on Ethereum mainnet","source":""},{"date":"2023-02-01","event":"Balancer issues vulnerability notice warning dependent protocols about read-only reentrancy risk; Sturdy Finance allegedly does not implement recommended protections","source":""},{"date":"2023-06-12","event":"Read-only reentrancy exploit drains 442.6 ETH (~$800K) from Sturdy V1; attacker uses $191M Aave flash loan; stolen funds moved to Tornado Cash within 20 minutes; PeckShield and BlockSec report the attack","source":""},{"date":"2023-06-13","event":"Founder Sam Forman publicly addresses exploit; Sturdy sends on-chain message to attacker offering $100,000 bounty and no-prosecution pledge","source":""},{"date":"2023-06-16","event":"Sturdy Finance reopens stablecoin market; TVL has declined from ~$12.8M to ~$10.78M","source":""},{"date":"2023-07-01","event":"Sturdy V2 architecture announced with isolated lending pairs and two-tier modular design","source":""}]},"v":1}