← Texture Finance1 decision on this page
Audit log
Every state-changing event for Texture Finance: moderation decisions on community submissions, plus corrections and updates from the news pipeline. URL-based decisions carry three independent witnesses — the original source, an Internet Archive snapshot taken at submission time, and a Solana memo signed by our publicly-disclosed publisher key.
- #1publishby system:backfill2026-05-27 20:21:15ZScore: ? → ? (no score change)anchoranchored
- chain
- ●mainnet-betaslot 422,573,686
- sig
5undruCcwPSD…5cjLgPMeexplorer ↗- hash
FGLAxfoaBSBZ…Krc5Wh3Ysha256 → base58
verifying row…full verify ↗canonical bytes (4947 B) ▸
{"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}Verify offline (run on your own machine)python -m src.verify_decision 30c5d655-f8e4-4291-be64-1a7182f09038
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>.