TL;DR
Save is Solend renamed. Same program, same team keys, same 2021 and 2022 incident record. This run replaced doc-reading with a full on-chain sweep: all 1,821 reserves across all 200 Save markets, plus the program's entire deploy history. Three things came out of it, and all three are first-hand reads.
First, the admin question is settled and the answer is worse than the previous report assumed. That report guessed "multisig-plus-timelock is a reasonable assumption." It is not a multisig. The upgrade authority RY93CZYe5g6drtG7W9PmHRPzaBLZ1uwihTzayQTmJfh lies on the ed25519 curve, and program-derived addresses (which is what a Squads vault or any program-controlled authority would be) are off-curve by construction. It also has no on-chain account at all, so there is no multisig state anywhere. It signed at the top level of three transactions on 2026-04-04, which only a real keypair can do. Both actual code upgrades in the record, 2025-05-17 and 2025-07-02, were signed by one key with nothing but the BPF loader in the transaction. A single key can replace the code behind every Save reserve, instantly, because BPF loader upgrades have no timelock.
Second, the audit trail is thinner than either the previous report or this month's draft made it. Save's risks page names Kudelski, Neodyme and OSEC. Save's own audit page, on the same docs site, names only Kudelski plus a Soteria scanner run. Exactly one artifact is published anywhere: solend-audit-v1.0.pdf, undated. Neodyme's public report index has no Solend or Save entry. OtterSec's index has three Solend-family reports (Suilend, Solend Liquid Staking, Solend Steamm) and every one of them is on Sui, a different chain and a different codebase from the Solana program that holds this money. Two of the three named firms cannot be tied to the thing being audited.
Third, and this is the one that matters for our own site: the money is not where the numbers say it is. Protocol-wide, Save reserves report $238.11M of supply. $124.11M of that, 52.1%, sits in reserves pinned at 99.5% or higher utilization with essentially zero withdrawable balance. The largest single one is a USDC reserve holding a nominal $93.79M at exactly 100.0000% utilization, in a market called ScarCoin that is owned by Save's own market-owner key. Its cToken exchange rate is 12,929x, meaning almost the entire balance is interest compounded at a 200% to 255% borrow rate against a loan that is not coming back. That is the same machine that prints the 758% APY on our lending board.
Caution, not avoid. The main pool is genuinely fine: $92.38M supplied, $63.69M available, zero dollars stuck, USDC at 75.69% utilization with a sane 70/77 risk config, priced by Pyth, no emissions, no incident since 2022. Everything above happens outside it.
Checklist
Audits and contracts. Two Save doc pages disagree with each other. getting-started/risks names Kudelski, Neodyme and OSEC with no dates and a bug bounty of "up to $1MM". protocol/audit names only Kudelski, plus a Soteria scanner run the team says cleared all vulnerabilities, and mentions no bounty at all. The single published artifact is solend-audit-v1.0.pdf (2,986,548 bytes, undated) in the GitHub audit directory, which is also DeFiLlama's only audit link. Neodyme has no Solend or Save report in its public index; its known 2021 Solend-adjacent work was the coordinated disclosure of a math bug in the upstream SPL token-lending program shared by several Solana lenders, not an engagement on Save's code. OtterSec's three Solend-family reports are dated 2024-04-20, 2024-10-18 and 2025-02-04 and are all Sui. Nothing confirms an audit of the post-rebrand Solana stack (sUSD, saveSOL, the permissionless pool factory), and the program was last upgraded 2025-07-02 with no post-upgrade audit found. Red, and this is a downgrade from the draft's yellow.
Admin control. Two separate single keys, both verified. The program So1endDq2YkqhipRh3WViPa8hdiSpxWy6z3Z6tMCpAo is owned by the BPF upgradeable loader and executable, so it is not immutable. Its ProgramData account names RY93CZYe... as authority. That address is on-curve and has no account, which together rule out both a PDA-based multisig and an SPL multisig; it is a plain keypair. On 2026-04-04 the authority moved between 2Fwvr3MK... and RY93CZYe... three times inside 57 seconds and settled on the latter, consistent with a manual key rotation. Separately, the main pool's on-chain LendingMarket.owner is 5pHk2Tmn..., a bare System-Program wallet holding 1.44 SOL that signed ten consecutive Solend instructions alone on 2026-07-23. That key adds reserves and sets LTV, liquidation threshold and caps on the main pool. Who can add a market: 5pHk2Tmn... on the curated markets, and anyone at all elsewhere, since 179 of Save's 202 markets are permissionless across 133 distinct owners. This is not academic. The August 2021 exploit worked by creating a lending market the attacker owned and passing it into UpdateReserveConfig to bypass the owner check.
Oracle. The lending market registers Pyth and Switchboard V2 at the program level, and Save's docs say only that it "relies on Pyth and Switchboard for their price feeds to power liquidations." There is no main-versus-backup framing in the docs, so the previous report and this month's draft both attributed a claim to Save that Save does not make. Per reserve, the main pool is in decent shape: of 90 reserves, 41 are Pyth-only, 8 carry both, and all 41 Switchboard-only reserves are retired, with LTV 0, liquidation threshold 0, deposit limit 0 and $49,922 of dust between them. Of the 22 main-pool reserves that still accept deposits, 19 are Pyth-only and 3 (SOL, USDT, soETH) carry both. The draft called this red on the strength of a partial sample; on a full sweep that argument does not hold.
What does hold is worse and lives one market over. ScarCoin, a market flagged not-permissionless and owned by Save's own 5pHk2Tmn... key, holds three reserves for the identical STCC mint, all Switchboard-only with Pyth null. Two of them price STCC at about $0.999 through one feed; the third prices it at $0.001510 through a different feed. That is a 662x disagreement on the same asset inside one Save-curated market, and the asset itself has zero DexScreener pairs and no Jupiter price, so neither number is anchored to a market that exists. DeFiLlama carries $5.04M of it as Save TVL. An unbacked memecoin marked at a dollar by a lone Switchboard feed is precisely the configuration that cost $1.26M in November 2022. Red, for a verified reason rather than the draft's.
Liquidity and exit. Split, and the split is the whole point. The main pool works: USDC there holds $5.13M available against $15.97M borrowed on $21.10M supplied, and that available figure matches DeFiLlama's independently reported pool TVL to within 0.23%, which is how the byte offsets used throughout this report were validated. Zero dollars of main-pool supply sit in a saturated reserve. Outside it, $124.11M of the protocol's $238.11M supply sits in 14 reserves at 99.5% or higher utilization holding nothing withdrawable: $93.79M in ScarCoin USDC, $7.58M in a "stacc eco" SOL reserve, $6.85M in GNME/USDC, $4.84M in TRUNK/USDC, and so on down. Save's own docs state the consequence plainly: "When an asset is fully utilized (100% of supply is lent out), there are no tokens left in the pool, which means that withdrawals and borrows will fail." Protocol TVL is down 3.7% over 30 days, 21.4% over 90 days and 71.5% over a year, and sits 93.0% below the November 2021 peak of $928.5M.
Yield: real versus emission. Genuinely real. apyReward is 0 on all 77 Save pools DeFiLlama tracks, so no token subsidy props up any rate. The main pool's on-chain rate curve (optimal utilization 92%, rates 1% / 4% / 12%) reproduces DeFiLlama's 2.52% USDC supply APY at the observed 75.69% utilization, which is a clean cross-check in both directions. The caveat is collectability. A supply APY quoted on a reserve at 100% utilization is interest accruing on a balance nobody can touch, and on these reserves the borrow curve is punitive by design: the ScarCoin USDC reserve runs a 200% minimum borrow rate and a 255% maximum, the GNME one a 150% maximum.
Holder concentration. SLND sits at $0.158549 with 100M max supply, a $15.86M FDV, and is down 99.05% from its all-time high. CoinGecko reports circulating supply and market cap as 0, so the actual float is unknown and no distribution figure can be given. The structural risk is unchanged from 2022: when governance over a $65.6M protocol costs six figures to sway, quorum is the only defence. In June 2022 one wallet reportedly spent about $700k to take roughly 90% of the SLND1 vote, which passed on barely 1% quorum.
Track record. Three marks, and the first one is not clean. On 2021-08-19 at 12:40 GMT an attacker exploited an insecure authorization check in UpdateReserveConfig, created their own lending market to pass the owner check, and rewrote risk parameters so that nearly every borrowing account became liquidatable, with borrow APY set to 250%. Save's own statement at the time was that no funds were stolen, and that is true about theft, but five users were wrongfully liquidated by Solend's own liquidator bot for about $16,000. Both the previous report and this month's draft recorded that incident as loss-free; it was not. June 2022: SLND1 passed, granting the team emergency power over a whale's account to head off a liquidation cascade, then SLND2 reversed it a day later after backlash. That is a governance precedent, not a hack, and it belongs on the record. November 2, 2022: a price-oracle attack for $1.26M, the sole Save entry in DeFiLlama's hacks registry; Solend froze the affected pools, absorbed the debt into treasury and later said funds were restored, so no user wallet was drained. Since then, nothing. The hacks registry logs 76 incidents dated 2026-06-01 or later and Save is not among them, and no 2026 incident surfaced in search.
Worst case
The clean kill is the upgrade key. One compromised keypair, no second signature, no delay, and arbitrary code sits behind every reserve in all 202 markets. No insurance fund is named in the docs, and the $1M bounty is an order of magnitude below what is at stake.
The slower version is a 2022 replay, and the setup is already assembled. A Switchboard-only feed marks a token with no market at a dollar, someone borrows real USDC against it, and walks. The 2022 precedent says treasury eats the bad debt, but treasury size today is unverified and TVL has fallen 71.5% in a year, so the cushion is thinner than it was.
The version already happening needs no attacker at all. A market reaches 100% utilization, the supplier's screen shows a spectacular APY, and the money is simply gone from reach while the number on the screen keeps climbing. That is the live state of $124.11M of nominal Save supply, most of it compounded interest rather than principal, and the largest instance of it has been running inside a market owned by Save's own admin key.
Bottom line
Caution, and a firmer one than last time. The upgrade authority is a single key, proved rather than assumed, and that alone keeps Save off solid. Add an audit trail where two of three named firms have nothing covering this program, a live 662x oracle disagreement on a zero-liquidity asset in a Save-owned market, half of protocol supply frozen at full utilization, and a year of 71.5% TVL decline.
It is not avoid, and the reason is specific rather than charitable. The main pool is measurably healthy: liquid, Pyth-priced, sanely configured, no emissions, no stuck reserves, no incident in almost four years. The rot is in the markets around it.
Practical reading: the main pool at 2 to 3% is an ordinary Solana lending position, size it small. Anything on a permissionless or isolated Save market, including the ones Save itself owns, should be treated as unrated third-party code that merely shares a program. Save's own market metadata makes the point better than we can: it describes one of its markets, xpP9zdDE..., as "this pool is fraudulent do not deposit", and DeFiLlama still reports about $7.98M of TVL inside it.
One action for us, not for readers. Our lending board's ~$229.7M supply figure for Save reconciles to the $238.11M we measured on-chain, so the board is reading correctly, but roughly half of that number is compounded paper interest on defaulted loans in pools nobody can exit. The 758% row is the visible symptom: it is one of two Save permissionless pools carrying an identical APY series, both at zero available liquidity, and DeFiLlama flags it outlier: true with a "Down" prediction at 98% confidence. Sorting a board by APY and putting that row above Aave at 2% tells a reader the opposite of the truth. Respecting the outlier flag and requiring tvlUsd > 0 would drop 14 of the 77 Save pools in that feed, including both 758% rows. The deeper fix is to stop reporting supply on reserves whose cToken exchange rate has run away from 1, because that is where the phantom half of the $229.7M lives.
Data appendix
- TVL: $65.62M (verified input, DeFiLlama "save", 2026-08-11). A re-read later the same day returned 65,231,648.996 from
api.llama.fi/tvl/saveand the identical figure to the cent fromapi.llama.fi/tvl/solend, which is the cross-check confirming Save and Solend are one protocol under two slugs. The figure moves intraday; today's range is $65.2M to $65.6M. Trend from the protocol endpoint: 30d -3.7% (from $67.74M), 90d -21.4% (from $83.03M), 365d -71.5% (from $229.20M). ATH $928,478,641 on 2021-11-12, so current TVL is 93.0% below peak. DeFiLlama lists Save on Solana and Eclipse; only the Solana deployment was examined. - TVL versus our board: different measures, both correct. DeFiLlama's protocol figure is available liquidity, net of borrows. Our lending board's ~$229.7M is supply, gross of borrows. On-chain across all 1,821 reserves: supply $238.11M, available $84.83M, borrowed $153.27M. Our board is therefore reconciled to within about 3.5% of the on-chain supply total, timing and pricing aside. Not reconciled: DeFiLlama's own pool feed sums to $79.44M of tvlUsd against its $65.23M protocol figure (refresh).
- Frozen supply: $124,111,752 of the $238.11M (52.1%) sits in reserves at 99.5% or higher utilization; 14 such reserves exceed $100k. Largest:
9wXKZmEwNoUZ4phqNpdtSVL6UWhiJZQicedygefPuvYE(ScarCoin market USDC), available 0, borrowed 93,836,540 USDC, utilization 100.0000%, cToken supply 7,258.08 for an exchange rate of 12,929x, liquidity token account balance 0.000001 USDC, config LTV 90 / liquidation threshold 95 / borrow rate curve 200% / 200% / 255%. The marketE2PfMAjUWkTZG81nWY9bm1DRi72uZkfL79RWrRxVWw6sis named "ScarCoin", flaggedisPermissionless: false, owner5pHk2Tmn..., and is now the largest Save market by nominal supply ($98.85M) ahead of the main pool. - The 758% pool: DeFiLlama pool
7f14fb7b-2a04-43c6-a3de-880e0c62fb91,poolMeta"GNME / USDC Pool",outlier: true, prediction "Down" at 98%,apy757.62% withtvlUsd0 andapyReward0. Chart: 136 points, 111 at zero TVL, last non-zero $1,015 on 2024-11-19. Our board's 758.01% falls between DeFiLlama's 2026-08-10 (757.94%) and 2026-08-09 (758.55%) readings. A second pool, "Helium SubDAO's" SOL (3020cbef-11bb-4217-8d25-58ba8d2433fa), carries the byte-identical APY series, so the two cannot be distinguished by rate alone. On-chain reserveGYWUemgmdmnZv7L5dwgR76FG6q3xcmheVHRF778xNPnN: available 0, borrowed 6,854,542.246317 USDC, utilization 100.0000%, cToken supply 36,768.98 for an exchange rate of 186.4x, config LTV 45 / liquidation threshold 60 / max borrow rate 150%. That 150% ceiling does not by itself produce 757.62%, and the identical series on an unrelated pool suggests the printed figure is not derived from this reserve's curve; the derivation is refresh, which is a further reason not to publish it as a yield. MarketEX8Zp5L13fu2oq5vRzh1y5CYwKNqfR3E98Bj2hNUw7VH,isPermissionless: true, owner9R8Z4jjedoAcmJQvoSmyp5SRvTS1cTX4NGX3BdvaSjR6(System-Program wallet, 0.0175 SOL, unaffiliated with Save). - Audits: Kudelski, Neodyme and OSEC named at
docs.save.finance/getting-started/risks, no dates, bug bounty "up to $1MM".docs.save.finance/protocol/auditnames only Kudelski plus a Soteria scanner and no bounty; the two pages disagree. Only published artifact issolend-audit-v1.0.pdf(2,986,548 bytes, undated) ingithub.com/solendprotocol/solana-program-library/tree/master/token-lending/audit, which is DeFiLlama's sole audit link (DeFiLlama'sauditsfield reads 2). Neodyme's public report index: no Solend or Save entry. OtterSec's public audit index: Suilend 2024-04-20 (Sui), Solend Liquid Staking 2024-10-18 (Sui), Solend Steamm 2025-02-04 (Sui); none on Solana. Report dates, scope, and any audit of sUSD / saveSOL / the permissionless pool factory: refresh. - Admin and governance: Program owned by
BPFLoaderUpgradeab1e11111111111111111111111, executable, so upgradeable rather than immutable. ProgramDataDMCvGv1fS5rMcAvEDPDDBawPqbDRSzJh2Bo6qXCmgJkR, last deploy slot 350,614,570, authority option set, authorityRY93CZYe5g6drtG7W9PmHRPzaBLZ1uwihTzayQTmJfh. That address decompresses to a valid ed25519 curve point, which excludes every PDA-based multisig, andgetAccountInforeturns null, which excludes any on-chain multisig state. It appears as a top-level signer in all three 2026-04-04 transactions. ProgramData history: 80 transactions back to 2021-08-13, not ten. Last twoupgradeinstructions 2025-05-17 and 2025-07-02, each with a single signer (2Fwvr3MKhHhqakgjjEWcpWZZabbRCetHjukHi1zfKxjk, the prior authority) and only the BPF loader in the transaction. ThreesetAuthorityCheckedcalls on 2026-04-04 at 08:07:24, 08:08:09 and 08:08:21, alternating between2Fwvr3MK...andRY93CZYe...and ending on the latter. Main pool4UpD2fh7xH3VP9QQaXtsS1YY3bxzWhtfpks7FatyKvdYhasLendingMarket.owner=5pHk2TmnqQzRF9L6egy5FfiyBgS7G9cMZ5RFaJAvghzw, System-Program owned, 0 bytes of data, 1.4427 SOL, sole signer on ten consecutive Solend instructions on 2026-07-23. Markets: 202 total, 179 permissionless, 23 not, 133 distinct owners (api.save.financeandapi.solend.fireturn identical responses). No timelock exists on BPF loader upgrades. Off-chain custody of these keys: refresh. - Oracle: Lending market registers
oracle_program_idFsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH(Pyth) andswitchboard_oracle_program_idDtmE9D2CSB4L5D6A15mraeEjrGMm6auWVzgaD8hK2tZM(Switchboard V2). Main pool: 90 reserves on-chain (89 in the published API config), split 41 Pyth-only, 41 Switchboard-only, 8 both. All 41 Switchboard-only reserves have LTV 0, liquidation threshold 0 and deposit limit 0, with $49,922 of combined supply. Of the 22 reserves still accepting deposits, 19 are Pyth-only and 3 carry both (SOL, USDT, soETH). Main USDC uses PythDpw1EAVrSB1ibxiDQyTAW6Zip3J4Btk2x4SgApQCeFbXwith Switchboard nulled. Protocol-wide, 306 of 1,821 reserves are Switchboard-only and 206 of those still accept deposits. ScarCoin market, mintCstPrRuU13B6QHmNr4J24Qto48HC5uQ2WXZbWiWef4a6(STCC), three reserves, all Pyth-null:7mYFEmyPHVxaG...reports $0.999000 via feedETAaeeuQ...on 5,050,033 tokens ($5.04M),H6sqZmV95bwhR...reports $0.999870 via the same feed on zero supply,7MpyjrvzpFATw...reports $0.001510 via feed2Qo6j9ag...on 6,002,210 tokens ($9,066). STCC returns zero pairs from DexScreener and no Jupiter price. Stored reserve prices are last-refresh caches, so part of the gap may be staleness; the absence of any market to price against is not. - Holder concentration: CoinGecko id
solend, symbol SLND, $0.158549, FDV $15,855,244, total and max supply 100,000,000, down 99.05% from ATH. Circulating supply and market cap both reported as 0, so float is unknown. DeFiLlama lists the protocol ticker as SAVE with nogecko_id; whether an SLND-to-SAVE ticker migration occurred is refresh. On-chain distribution refresh. - Yield:
apyRewardis 0 on all 77 Save/Solend pools in the DeFiLlama yields feed, so no emissions. Thirteen pools report zero TVL and five carryoutlier: true; atvlUsd > 0and not-outlier filter drops 14 of 77. Main-pool USDC 2.52% supply APY at 75.69% utilization, against an on-chain curve of optimal utilization 92% and rates 1% / 4% / 12% and a 70 / 77 LTV and liquidation threshold. Main pool totals: supply $92.38M, available $63.69M, borrowed $28.67M, $0 in saturated reserves. - Recent-news scan (2026-08-11): DeFiLlama's hacks registry contains exactly one Save entry: 2022-11-02, $1,260,000, "Price Oracle Attack", classification "Ecosystem", chain Solana. The registry logs 76 incidents dated 2026-06-01 or later; none is Save or Solend. No 2026 Save incident found in web search. Prior marks confirmed: 2021-08-19
UpdateReserveConfigauth-check exploit (attacker created their own lending market to bypass the owner check, set borrow APY to 250%, no funds stolen but five users wrongfully liquidated for about $16,000), June 2022 SLND1 account-seizure vote reversed by SLND2, November 2022 $1.26M oracle attack absorbed by treasury. The "~$6.5M bad debt / ~$22M treasury" figures that circulate in search results trace to reporting on the late-2022 whale liquidation, not to today; current bad debt and treasury size are refresh.
Maintained monthly. Methodology: DeFi Research Instruction v2.