← Blend Pools V25 decisions on this page
Audit log
Every state-changing event for Blend Pools V2: moderation decisions on community submissions, plus corrections and updates from the news pipeline. URL-based decisions are designed to carry three independent witnesses — the original source, an Internet Archive snapshot, and a Solana memo signed by our publicly-disclosed publisher key. Archive coverage is still being backfilled, so each decision below reports its own snapshot status rather than assuming one exists.
- #1publishby system:backfill2026-05-19 21:18:10ZScore: ? → ? (no score change)anchoranchored
- chain
- ●mainnet-betaslot 420,849,045
- sig
2iA9fFY96yc9…fZkbC1Uvexplorer ↗- hash
FAXf63xsmzbq…FGFYrt2Vsha256 → base58
verifying row…full verify ↗canonical bytes (5214 B) ▸
{"actor":"system:backfill","investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","kind":"publish","page_slug":"blend-pools-v2","published_at":"2026-05-19T21:18:10.630Z","sequence_num":1,"snapshot":{"content_type":"investigation","entity_name":"Blend Pools V2","sections":[{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"","type":"other","url":"https://medium.com/script3/introducing-blend-95aaf66bdf41"},{"credibility":3,"name":"","type":"other","url":"https://docs.blend.capital/users/general-faq"},{"credibility":3,"name":"","type":"other","url":"https://defillama.com/protocol/blend-pools-v2"},{"credibility":3,"name":"","type":"other","url":"https://thedefiant.io/news/defi/meet-blend-stellar-s-modular-liquidity-layer"}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"","type":"other","url":"https://docs.blend.capital/blend-whitepaper"},{"credibility":3,"name":"","type":"other","url":"https://docs.blend.capital/users/general-faq"},{"credibility":3,"name":"","type":"other","url":"https://docs.blend.capital/users/blnd-token"}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"","type":"other","url":"https://www.certora.com/reports/blend"},{"credibility":3,"name":"","type":"other","url":"https://blocksec.com/blog/yieldblox-dao-incident-on-stellar-oracle-misconfiguration-enabled-a-10m-drain"},{"credibility":3,"name":"","type":"other","url":"https://www.halborn.com/blog/post/explained-the-yieldblox-hack-february-2026"},{"credibility":3,"name":"","type":"other","url":"https://crypto-economy.com/stellar-based-lending-protocol-hit-by-oracle-manipulation-attack/"},{"credibility":3,"name":"","type":"other","url":"https://www.bankless.com/read/news/lending-market-blend-suffers-10m-exploit"},{"credibility":3,"name":"","type":"other","url":"https://www.quillaudits.com/blog/hack-analysis/yeildblox-10m-hack-explained"},{"credibility":3,"name":"","type":"other","url":"https://github.com/blend-capital/blend-contracts-v2"}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"","type":"other","url":"https://www.linkedin.com/in/markuspaulsonluna/"},{"credibility":3,"name":"","type":"other","url":"https://thedefiant.io/news/defi/meet-blend-stellar-s-modular-liquidity-layer"},{"credibility":3,"name":"","type":"other","url":"https://communityfund.stellar.org/project/blend-mfy"},{"credibility":3,"name":"","type":"other","url":"https://testnet.blend.capital/"}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"","type":"other","url":"https://docs.blend.capital/users/general-faq"},{"credibility":3,"name":"","type":"other","url":"https://blocksec.com/blog/yieldblox-dao-incident-on-stellar-oracle-misconfiguration-enabled-a-10m-drain"},{"credibility":3,"name":"","type":"other","url":"https://www.halborn.com/blog/post/explained-the-yieldblox-hack-february-2026"},{"credibility":3,"name":"","type":"other","url":"https://medium.com/@cryip/10-8m-oracle-manipulation-exploit-on-stellars-blend-protocol-6bdcbb1568c0"}]}],"sources_used":[],"summary":"Blend Pools V2 is a modular, permissionless lending protocol built on the Stellar blockchain by Script3, launched as an upgrade to Blend V1 with additions including flash loans and a reduced backstop threshold. In February 2026, a community-managed pool built on top of the protocol (YieldBlox DAO Pool) suffered a $10.8 million oracle manipulation exploit; Script3 stated the core V2 contracts were not at fault, attributing the incident to pool-operator misconfiguration of the Reflector VWAP oracle.","timeline":[{"date":"2023-04-03","event":"Script3 publicly introduces Blend as a liquidity protocol primitive for Stellar's Soroban smart contract platform, announcing it as pre-testnet.","source":""},{"date":"2024-01-25","event":"Certora publishes formal audit of the Blend protocol covering the emitter, liquidity pool instances, and backstop module.","source":""},{"date":"2024-04-09","event":"Co-founder Markus Paulson-Luna discusses Blend's architecture and Stellar DeFi positioning in a public interview with The Defiant.","source":""},{"date":"2026-02-23","event":"Attacker manipulates USTRY/USDC price 100x on SDEX via thin liquidity, exploiting the YieldBlox DAO Pool on Blend V2 and borrowing 61.25M XLM and 1M USDC — approximately $10.8M total.","source":""},{"date":"2026-02-23","event":"Stellar Tier 1 validators coordinate to freeze approximately 48 million XLM (roughly $7.2M) in attacker accounts before bridging to Ethereum is complete.","source":""},{"date":"2026-02-24","event":"Script3 issues public statement attributing the exploit to pool-operator misconfiguration, stating core Blend V2 contracts are unaffected.","source":""},{"date":"2026-02-24","event":"YieldBlox Security Council offers a 10% white-hat bounty with a 72-hour deadline in exchange for return of funds. Attacker does not respond.","source":""},{"date":"2026-02-25","event":"BlockSec and Halborn publish independent post-mortems confirming oracle misconfiguration as root cause; net user loss estimated at approximately $3.6M after frozen XLM is accounted for.","source":""}]},"v":1}Verify offline (run on your own machine)python -m src.verify_decision b2ce5c95-983a-4dc5-abf2-1d6fff6227f0 - #2rescoreby systemsystem2026-10-10 18:46:04ZScore: 32 → 58 (+26)Rescored under Scoring v2, the published formula (avoid.net/scoring): 32 → 58. Problems weighed by who is responsible: concerns that are not fraud −6.4, incidents the subject suffered −3.2, problems around the subject, caused by others −1.6; legitimacy credit long-running +4.anchoranchored
- chain
- ●mainnet-betaslot 455,365,796
- sig
7xkHhTagDYgL…ra4nv8ZQexplorer ↗- hash
G1A5cejHqaDB…dWcM2NSUsha256 → base58
verifying row…full verify ↗canonical bytes (645 B) ▸
{"actor":"system","decided_at":"2026-10-10T18:46:04.021Z","decision":"rescore","investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","new_score":58,"page_slug":"blend-pools-v2","prev_score":32,"reason":"Rescored under Scoring v2, the published formula (avoid.net/scoring): 32 → 58. Problems weighed by who is responsible: concerns that are not fraud −6.4, incidents the subject suffered −3.2, problems around the subject, caused by others −1.6; legitimacy credit long-running +4.","score_delta":26,"score_model":"v2","sequence_num":2,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}Verify offline (run on your own machine)python -m src.verify_decision 7f6a8510-3f57-477f-a20d-20496c424547 - #3reviewby reviewerreviewer2026-11-02 03:33:39ZScore: 58 → 58 (no score change)The core exploit narrative is well supported. The mechanism, amounts, price manipulation, 48M XLM freeze, bounty and BlockSec's conclusion match independent sources. The exploit date is wrong in two places: the page says Feb 23 but sources show Feb 22, 2026 UTC. The 'before the attacker could complete the bridge' wording overstates the freeze. The $3.6M net-loss figure is derived and not sourced. The Certora audit predates V2, so it does not establish a 'clean' V2 posture. The page omits Script3's pledge to compensate depositors. I did not verify the TVL, tokenomics and team claims.anchoranchored
- chain
- ●mainnet-betaslot 464,345,590
- sig
5YwdiC88U5T9…73DkTX5kexplorer ↗- hash
DS8x1AsoiM2m…KHf6SK6Csha256 → base58
verifying row…full verify ↗canonical bytes (1480 B) ▸
{"actor":"reviewer","artifact_identity":"3b3ef4e79b7cc09cf19f287c2bda4cf3","blocked_count":1,"decided_at":"2026-11-02T03:33:39.713Z","decision":"review","disputed_pct":0.3636,"findings_hash":"AX2AzdEHn5LnXqu1g1Lbx19Th8zd54dzWae1hpBwACB7","investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","judge_def_hash":"8800307026131ea9d5da939d32b9a1f1884b2b84a5de33c8e87931d36f38d0f8","new_score":58,"omissions":{"material":1,"total":2},"page_content_hash":"0686de2749975cd336b232c3bceae3eeb75244ebd78f3cfcf9668c6acc4a945f","page_slug":"blend-pools-v2","prev_score":58,"reason":"The core exploit narrative is well supported. The mechanism, amounts, price manipulation, 48M XLM freeze, bounty and BlockSec's conclusion match independent sources. The exploit date is wrong in two places: the page says Feb 23 but sources show Feb 22, 2026 UTC. The 'before the attacker could complete the bridge' wording overstates the freeze. The $3.6M net-loss figure is derived and not sourced. The Certora audit predates V2, so it does not establish a 'clean' V2 posture. The page omits Script3's pledge to compensate depositors. I did not verify the TVL, tokenomics and team claims.","reviewer_def_hash":"bc11388ce4bc4deea1b064fea362663ae06e3f4f687f99604769044d6ffba770","score_delta":0,"scored_claims":11,"sequence_num":3,"subject_status":"exploited","subject_status_contradicts_page":false,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}Verify offline (run on your own machine)python -m src.verify_decision 12687e7e-f0d5-40c4-86b1-a9f9a6e7c4f5 - #4review reviseby judgejudge2026-11-02 03:33:39ZScore: 58 → 58 (no score change)Of 11 checkable claims (the DefiLlama TVL claim was blocked and is excluded), 2 were disputed and 2 could not be verified, so 36% were disputed or unverifiable. The disputed items are the exploit date, given as February 23 when sources show February 22, 2026 UTC (claim_findings[0] and [1]). The unverifiable items are the validator-freeze date and the claim that Script3 holds no upgrade keys (claim_findings[2] and [11]). The core exploit account (mechanism, amounts, price manipulation, freeze, bounty, BlockSec's conclusion) is confirmed, and the reviewer's confidence is moderate, so the penalty sits at the lower end of the band. The page also overstates the freeze ('before the attacker could complete the bridge'), presents an unsourced $3.6M net-loss figure, calls the 2024 Certora audit a 'clean' posture for V2, and omits Script3's depositor-compensation pledge. The V2-specific audit gap is high priority.anchoranchored
- chain
- ●mainnet-betaslot 464,345,594
- sig
CrN3XApbxeWd…hkVvPbn9explorer ↗- hash
3iMdunYABBYb…TuNzdBqxsha256 → base58
verifying row…full verify ↗canonical bytes (1966 B) ▸
{"actor":"judge","artifact_identity":"3b3ef4e79b7cc09cf19f287c2bda4cf3","band_override":null,"blocked_count":1,"decided_at":"2026-11-02T03:33:39.713Z","decision":"review_revise","delist_requested":false,"disputed_pct":0.3636,"investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","judge_def_hash":"8800307026131ea9d5da939d32b9a1f1884b2b84a5de33c8e87931d36f38d0f8","new_score":58,"page_slug":"blend-pools-v2","prev_score":58,"reason":"Of 11 checkable claims (the DefiLlama TVL claim was blocked and is excluded), 2 were disputed and 2 could not be verified, so 36% were disputed or unverifiable. The disputed items are the exploit date, given as February 23 when sources show February 22, 2026 UTC (claim_findings[0] and [1]). The unverifiable items are the validator-freeze date and the claim that Script3 holds no upgrade keys (claim_findings[2] and [11]). The core exploit account (mechanism, amounts, price manipulation, freeze, bounty, BlockSec's conclusion) is confirmed, and the reviewer's confidence is moderate, so the penalty sits at the lower end of the band. The page also overstates the freeze ('before the attacker could complete the bridge'), presents an unsourced $3.6M net-loss figure, calls the 2024 Certora audit a 'clean' posture for V2, and omits Script3's depositor-compensation pledge. The V2-specific audit gap is high priority.","reviewer_def_hash":"bc11388ce4bc4deea1b064fea362663ae06e3f4f687f99604769044d6ffba770","score_delta":0,"scored_claims":11,"sequence_num":4,"severity_override":{"applied":true,"band":"significant","from_band":"significant","reason":"The review reports a material omission: Script3 stated that all affected EURC, USDC and XLM depositors would be fully compensated, but the page presents roughly $3.6M as the net user loss. This supports holding the page in the significant band rather than a lower one."},"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}Verify offline (run on your own machine)python -m src.verify_decision df85988c-1a16-4ca5-9bd3-90fa15dfdbd3 - #5rescoreby systemsystem2026-11-02 03:33:40ZScore: 58 → 59 (+1)Recalculated after the fact-check of 2026-11-02. Rescored under Scoring v2, the published formula (avoid.net/scoring): 58 → 59. Problems weighed by who is responsible: concerns that are not fraud −6.4, incidents the subject suffered −3.2; legitimacy credit long-running +4; 2 section(s) set aside until a failed fact-check is resolved.anchoranchored
- chain
- ●mainnet-betaslot 464,345,600
- sig
2eKn1xirwK7v…MBSVpVkYexplorer ↗- hash
697RGmGPJT4S…1NYhruJdsha256 → base58
verifying row…full verify ↗canonical bytes (703 B) ▸
{"actor":"system","decided_at":"2026-11-02T03:33:39.713Z","decision":"rescore","investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","new_score":59,"page_slug":"blend-pools-v2","prev_score":58,"reason":"Recalculated after the fact-check of 2026-11-02. Rescored under Scoring v2, the published formula (avoid.net/scoring): 58 → 59. Problems weighed by who is responsible: concerns that are not fraud −6.4, incidents the subject suffered −3.2; legitimacy credit long-running +4; 2 section(s) set aside until a failed fact-check is resolved.","score_delta":1,"score_model":"v2","sequence_num":5,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}Verify offline (run on your own machine)python -m src.verify_decision b8edbfce-c412-4bac-9ad8-88a5e37cd4de
How verification works. The “Row integrity” check above is computed in your browser — your machine recomputes the SHA-256 of the canonical bytes and compares against the stored hash. No avoid.net server can fake that check. The “full verify” link goes one level deeper: your browser fetches the on-chain transaction from a Solana RPC node and confirms the same hash is in the memo. If you don’t want to trust either avoid.net or the public RPC, run the CLI verifier on your own machine —
python -m src.verify_decision <event_id>.