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
- 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. - 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.
- 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 · Texture Finance
- Sequence
- #1
- Score
- →
- Cluster
- mainnet-beta
- Slot
- 422573686
- Off-chain at
- 2026-05-27T20:21:15.720Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- FGLAxfoaBSBZhtLRqWqL5fqmtuoxxwd6vW8Krc5Wh3Y
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (4947 chars)
{"actor":"system:backfill","investigation_id":"161f648c-7701-4e1d-a30d-efbefd4836d7","kind":"publish","page_slug":"texture","published_at":"2026-05-27T20:21:15.672Z","sequence_num":1,"snapshot":{"content_type":"investigation","entity_name":"Texture Finance","sections":[{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://texture.gitbook.io/texture","type":"other","url":""},{"credibility":3,"name":"https://blockonomi.com/texture-finance-5-million-funding-round/","type":"other","url":""},{"credibility":3,"name":"https://tracxn.com/d/companies/texture-finance/__KJGEqO5NqgsaOMdbtR3E0uCPQUe-f709WyDzMTa0rR0","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://www.web3isgoinggreat.com/?id=texture-hack","type":"other","url":""},{"credibility":3,"name":"https://www.quadrigainitiative.com/hackfraudscam/texturefinancevaultrebalancemissingownershipchecktheft.php","type":"other","url":""},{"credibility":3,"name":"https://cryptorank.io/news/feed/9a6a3-texture-finance-hacker-refunds-loot","type":"other","url":""},{"credibility":3,"name":"https://www.ainvest.com/news/texture-finance-recovers-90-2-2-million-usdc-hacker-bounty-2507/","type":"other","url":""},{"credibility":3,"name":"https://www.okx.com/en-us/learn/defi-security-vulnerabilities-hacks","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://www.quadrigainitiative.com/hackfraudscam/texturefinancevaultrebalancemissingownershipchecktheft.php","type":"other","url":""},{"credibility":3,"name":"https://cryptorank.io/news/feed/9a6a3-texture-finance-hacker-refunds-loot","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://blockonomi.com/texture-finance-5-million-funding-round/","type":"other","url":""},{"credibility":3,"name":"https://coincodex.com/article/20870/texture-raises-5-million-to-build-solana-based-yield-management-tools/","type":"other","url":""},{"credibility":3,"name":"https://cryptonews.net/news/defi/15539521/","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://cryptorank.io/news/feed/9a6a3-texture-finance-hacker-refunds-loot","type":"other","url":""},{"credibility":3,"name":"https://www.web3isgoinggreat.com/?id=texture-hack","type":"other","url":""},{"credibility":3,"name":"https://www.ainvest.com/news/hacker-returns-90-stolen-funds-texture-protocol-2507/","type":"other","url":""}]},{"content":"","heading":"","severity":"medium","sources":[{"credibility":3,"name":"https://tracxn.com/d/companies/texture-finance/__KJGEqO5NqgsaOMdbtR3E0uCPQUe-f709WyDzMTa0rR0","type":"other","url":""}]}],"sources_used":[],"summary":"Texture Finance is a Solana-based decentralized lending protocol founded in 2021 and backed by $5 million in venture funding from P2P Capital, Sino Global Capital, Wintermute, and Jane Street Capital. In July 2025, a missing ownership check in its USDC vault smart contract allowed an attacker to steal approximately $2.2 million in user funds; the protocol negotiated a 10% greyhat bounty and recovered roughly $1.98 million. User withdrawals remained disabled following the exploit, and a formal repayment timeline had not been published as of mid-2025.","timeline":[{"date":"2021-01-01","event":"Texture Finance founded by Oleg Ravnushkin and Igor Burlakov in Lisbon, Portugal as a Solana-based DeFi yield management protocol.","source":""},{"date":"2022-11-02","event":"Texture Finance announces completion of $5 million funding round co-led by P2P Capital and Sino Global Capital, with Wintermute, Semantic Ventures, and Jane Street Capital participating.","source":""},{"date":"2024-09-01","event":"Texture launches Texture 2.0, a modular lending protocol on Solana built on SuperLendy, allowing permissionless creation and management of lending pools and vaults.","source":""},{"date":"2025-07-09","event":"Texture Finance detects and discloses a critical exploit in its USDC vault smart contract. A missing ownership check in the rebalance function allows an attacker to drain approximately $2.2 million in USDC. The team activates safe mode, disables withdrawals, and sends an on-chain message offering a 10% bounty for return of the remaining 90% of stolen funds.","source":""},{"date":"2025-07-10","event":"The attacker returns approximately $1.98 million in USDC to Texture Finance's designated Solana address, retaining $220,000 as the agreed greyhat bounty. Texture states it will not pursue legal action.","source":""},{"date":"2025-07-11","event":"Texture Finance publishes follow-up update confirming fund recovery, noting that the patched contract is undergoing review with auditing partner Certora and that a post-mortem analysis is forthcoming. Withdrawals remain suspended pending redeployment.","source":""}]},"v":1}