DeFiPunk'd

Sky

3 deployments · $6.3B aggregate TVL · CDP

Deployments

Each deployment is rated independently. Pick one to see its rating, risk analysis, and stage.

TVL $6.1B
Type CDP
Chain Ethereum
View on DeFiLlama ↗
Control criteria
Upgradeability Mixed Bug bounty immunefi.com Governance forum forum.sky.money Docs developers.skyeco.com
About

Sky Lending (formerly MakerDAO MCD) is a Collateralized Debt Position (CDP) protocol on Ethereum that allows users to lock accepted collateral assets (ETH, WBTC, stETH, RWAs, and others) into Vaults and generate USDS (or DAI) stablecoins pegged to the US dollar as overcollateralized loans. Users repay USDS plus a stability fee to retrieve their collateral; undercollateralized positions are liquidated via on-chain auctions. The system is governed by SKY token holders who vote through the Chief contract to elect executive spells that pass through a DSPause timelock, with an Emergency Shutdown Module (ESM) allowing token holders to trigger global settlement as a last resort. The protocol rebranded from MakerDAO to Sky in August 2024, introducing USDS as the upgraded stablecoin and SKY as the upgraded governance token, while retaining backwards compatibility with DAI and MKR.

Risk analysis

One card per dimension, sorted by severity. Only Verifiability and Autonomy carry automated signals in Phase 0. See methodology for scope.

Audit a dimension yourself · DEFI@home Contribute an LLM-run assessment — any model, any dimension. Three agreeing runs merge automatically into the public record.

DEFI@home is a distributed audit network modeled on SETI@home: instead of CPU cycles, it crowdsources LLM reasoning. Paste a slice prompt into Claude, ChatGPT, Gemini, or any browsing-capable model, and submit the JSON output as a pull request. The quorum bot merges it once ≥3 independent runs (from different models) reach the same grade — no single model, and no single contributor, can move the needle alone. How it works →

  • Address discovery 27 addresses on file · 1 run Submit run ↗
  • Verifiability ✓ 3/3 models agree AI-only weak green — weak consensus margin; only 0/3 sources have a public chat share link; total support weight 0.12 below confidence floor (1.5) Submit run ↗
  • Control ✓ 3/3 models agree AI-only weak orange — only 0/3 sources have a public chat share link; total support weight 0.12 below confidence floor (1.5) Submit run ↗
  • Ability to exit ✓ 3/3 models agree AI-only weak green — weak consensus margin; only 0/3 sources have a public chat share link; total support weight 0.12 below confidence floor (1.5) Submit run ↗
  • Autonomy ✓ 3/3 models agree AI-only weak orange — weak consensus margin; only 0/3 sources have a public chat share link; total support weight 0.12 below confidence floor (1.5) Submit run ↗
  • Open Access ✓ 3/3 models agree AI-only weak orange — only 0/3 sources have a public chat share link; total support weight 0.12 below confidence floor (1.5) Submit run ↗
  • Audit all 5 dimensions · one prompt Submit run ↗
  1. Verifiability tentative 3/3 models agree AI-only 0/3 with chat share link
    Core Sky/Maker contracts verified on Etherscan with extensive ChainSecurity + Cantina audit coverage and a $10M Immunefi bounty.
    Verdict

    Choosing green because every contract I personally fetched on Etherscan (Vat, Dog, USDS proxy + Usds implementation, SKY, MCD_PAUSE) is exact-match verified, public source repos exist and structurally match, and the audit catalogue at security.makerdao.com / developers.skyeco.com lists multiple recognized-firm audits including a recent 2025 stUSDS audit by ChainSecurity and Cantina — the orange steel-man's appeal to ledger-contract age is overridden by the fact that those exact contracts were audited by Tier-1 firms at deployment and have been unchanged since, and the red steel-man's per-spell concern is mitigated by the documented per-spell review process and Immunefi coverage.

    Steelman argument
    Steelman argument All assessed core contracts (Vat, Dog, USDS proxy + implementation, SKY token, MCD_PAUSE) are exact-match verified on Etherscan; canonical public source repos exist at github.com/makerdao and github.com/sky-ecosystem; multiple audits from broadly recognized firms (ChainSecurity, Trail of Bits, Cantina, Sherlock, Quantstamp, PeckShield) cover both legacy MCD and new Sky-era contracts including a 2025 stUSDS review; a $10M Immunefi bounty live since 2022 provides ongoing coverage.
    Evidence (6)
    V1
    Vat (0x35d1...92b) and Dog (0x1359...f1b) show 'Source Code Verified — Exact Match' on Etherscan; both are non-proxy direct implementations compiled with Solidity 0.6.12. USDS token proxy (0xdC03...384F, ERC1967Proxy) and its implementation (0x1923...4102, contract name 'Usds', Solidity 0.8.21) are independently verified. SKY token (0x5607...9279) is a verified non-proxy ERC20. MCD_PAUSE (0xbe8e...98fb) verified as DSPauseProxy with custom proxy pattern.
    V2
    Public repos exist at github.com/makerdao (dss — 826 stars, Solidity, contains Vat/Dog) and github.com/sky-ecosystem (multi-repo org with 346 repos including stusds, dss-lite-psm, spells-mainnet updated as recently as Apr 2026). Repo structure corresponds to explorer-visible source. No bytecode-diff or commit SHA pinning was performed this run.
    V3
    security.makerdao.com (mirrored on developers.skyeco.com) lists multiple in-scope audits: ChainSecurity + Cantina + Sherlock + ABDK on Endgame Launch (USDS, Sky token, sUSDS, Lockstake, VoteDelegate, Endgame Toolkit) in 2024; ChainSecurity + Cantina on stUSDS dated Aug 2025; ChainSecurity + Cantina on dss-lite-psm; Trail of Bits + PeckShield on Multi-Collateral Dai; Quantstamp + Trail of Bits + ChainSecurity + Gauntlet on Liquidations 2.0 (Dog/Clipper).
    V4
    Auditors are recognized firms: ChainSecurity, Trail of Bits, Quantstamp, PeckShield, Sherlock, Cantina, ABDK — all listed in the prompt's recognized-firm catalog or otherwise broadly known in Solidity security.
    V5
    Most recent audits (stUSDS Aug 2025, Endgame component audits 2024) are within or near the 6-month freshness window for the new Sky-era contracts. Legacy MCD core (Vat, Dog) was deployed 2019-2021 and audited at deployment by Trail of Bits / PeckShield / ChainSecurity / Quantstamp; the dss codebase has been very stable since (governance changes happen via spells layered on top), so post-audit drift on the core ledger is minimal. Drift on individual spells is mitigated by per-spell reviews before casting.
    V6
    USDS proxy (ERC1967Proxy, 'Similar Match' to standard pattern) AND implementation 'Usds' at 0x1923...4102 are both source-verified independently — satisfies V6.
    Why is this consensus tentative?
    • weak consensus margin
    • only 0/3 sources have a public chat share link
    • total support weight 0.12 below confidence floor (1.5)

    A fresh independent run can strengthen (or overturn) the verdict.

    Run your own prompt Submit run ↗
    Sources claude-opus-4-7 no url gpt-5.5 no url gemini-3-flash-preview no url View raw submissions ↗
  2. Control tentative 3/3 models agree AI-only 0/3 with chat share link
    T1 power reachable via SKY-weighted Chief through DSPause with only 24h delay (well below 7-day exit-window bar).
    Verdict

    Choosing orange because the rubric grades on the highest tier reachable on the uncontested fast path and the on-chain DSPause.delay() = 86400s sits squarely in the rubric's orange band (T1 reachable with delay >0 but <7 days). The green steelman fails because the 7-day exit-window bar is unmet (24h ≠ ≥7 days) and Chief — a plurality continuous-approval contract with no quorum, no proposal threshold and no minimum lock — does not satisfy the 'broad token distribution + active on-chain governance' carve-out the rubric grants for sub-rubric T1-with-7d governance: the bar is the delay, and the delay is half. The red steelman is not the closest fit because the upgrade authority is a smart contract (Chief + DSPause + PauseProxy chain), not an EOA or 2-of-3 multisig, and Protego provides a credible cancel-after-plot defense; ESM being disabled (min=max-uint) is a real concern but is captured in C6 and noted in the orange-vs-green tension rather than tipping into red.

    Steelman argument
    Steelman argument A T1 path exists (Vat.rely / USDS implementation upgrade / DSPause.setDelay) reachable via DSPause with a verified on-chain delay of 86400s — strictly between 0 and 7 days, the rubric's orange band; Chief is a smart contract with on-chain SKY-weighted voting (not an EOA or 2-of-3) and Protego provides cancel-after-plot defense, so it is not red.
    Evidence (10)
    C1
    MCD_VAT (0x35d1b3...) Read Contract returns wards[MCD_PAUSE_PROXY=0xBE8E3e...]=1, confirming the PauseProxy is an authorized ward of the core accounting contract; Vat itself is non-proxy (proxy_type: null on Blockscout) and live()=1.
    C1
    MCD_PAUSE (DSPause at 0xbE286431...) Read Contract: owner()=0x0 (immutable, no separate proxy admin), authority()=0x929d9A1435662357F54AdcF64DcEE4d6b867a6f9 (the new SKY-based Chief, deployed 2025-04-28), proxy()=0xBE8E3e3618f7474F8cB1d074A26afFef007E98FB (PauseProxy).
    C1
    USDS token (0xdC035D45...) is an EIP-1967 transparent proxy with implementation 0x1923DfeE...; wards[MCD_PAUSE_PROXY]=1 and wards[Chief]=0 — only the PauseProxy can mint/upgrade the implementation slot of USDS.
    C2
    Mixed upgradeability. Legacy MCD core (Vat, Dog, Vow, DSPause itself) is non-proxy bytecode — immutable code, but mutable authority via wards/authority slots. USDS is EIP-1967 upgradeable. Both surfaces are reachable from PauseProxy, so a successful Chief vote can replace USDS implementation (T1) or rely a new ward on Vat (T1).
    C3
    Execution path: voters lock SKY in Chief (0x929d9A14...) → vote() to give a spell address majority approval-weighted SKY → anyone calls Chief.lift(spellAddr) to set hat → spell.schedule() calls DSPause.plot() which requires ds-pause-authorized via authority (Chief.canCall via hat) → wait delay → DSPause.exec() calls PauseProxy.exec(target, calldata). DSPause.delay() Read Contract returns 86400 seconds (24h). Sum of delays on the uncontested fast path = 86400s.
    C4
    Single multisig role enumerated: PauseProxy (0xBE8E3e36...) is a DSPauseProxy (not a Gnosis Safe — its only authorized caller is the DSPause contract itself; it has no signer set, no threshold, no off-chain quorum). There is no separate emergency Gnosis Safe with reachable T1 power on the legacy core. Auxiliary subDAO/Star multisigs (Spark proxy, Star proxies) operate within sub-allocations and do not hold ward on Vat/Dog/USDS implementation, so they are not on the T1 fast path; they were not enumerated individually here.
    C5
    Chief is a continuous-approval DSChief-style contract, not a Governor. Chief.GOV() Read Contract = 0x56072C95... (SKY token, total supply ~23.46B SKY, 13245 holders); Chief.MAX_YAYS=5; Chief.live()=1; Chief.hat()=0x06851b52... (current hat spell). Voting is plurality of locked SKY — there is no on-chain proposal threshold, no quorum, no voting period: the candidate with the most approval votes among holders who have voted at any time is the hat. Effective security comes solely from the GSM Pause Delay downstream.
    C6
    ESM (MCD_ESM at 0x09e05fF6...) Read Contract: min()=2^256-1 (1.158e77, max-uint), Sum()=~1.30e15 (1.3M SKY currently burned toward trigger). With min set to max-uint, ESM cannot fire — emergency shutdown is effectively disabled in the post-Endgame configuration. There is no separate emergency-pause guardian role on the legacy MCD core; emergency action requires the same 24h DSPause path. Protego (cancel-an-already-plotted-spell module, see Maker exec May 15 2025) is a defensive cancellation tool, not an offensive emergency upgrade — it does not shorten the upgrade fast path.
    C7
    Highest tier reachable on uncontested fast path = T1. Concrete T1 functions: PauseProxy.exec → Vat.rely(newWard) (no on-chain bound on number of wards), then newWard.suck/frob/grab to mint unbacked debt or alter ilk parameters; PauseProxy.exec → upgrade EIP-1967 implementation slot of USDS at 0xdC035D45 (replaces token logic, can mint USDS unbacked); PauseProxy.exec → DSPause.setDelay(0) (DSPause is mutable via its own auth — could collapse future delays). All three reach T1 with a single passed spell + 86400s wait.
    C7
    GSM Pause Delay was reduced from 48h to 24h via Maker governance (Out-of-Schedule Executive Vote, March 8, 2024 — 'Decrease GSM Delay'); Read Contract on MCD_PAUSE today returns 86400s confirming the on-chain value matches the historical change. 24h < 7-day exit-window bar.
    Why is this consensus tentative?
    • only 0/3 sources have a public chat share link
    • total support weight 0.12 below confidence floor (1.5)

    A fresh independent run can strengthen (or overturn) the verdict.

    Run your own prompt Submit run ↗
    Sources claude-opus-4-7 no url gpt-5.5 no url gemini-3-flash-preview no url View raw submissions ↗
  3. Ability to exit tentative 3/3 models agree AI-only 0/3 with chat share link
    Permissionless on-chain exits via vault wipe, PSM swap, sUSDS redeem; no pause-gate on user redemptions; emergency-shutdown End functions are caller-agnostic.
    Verdict

    Choosing green because the verified deployed bytecode of USDS (0x1923Dfee...4102), sUSDS (0x4e7991e5...74f9F61e0), Vat (0x35d1b3f3...0492b), and End (0xBB856d1742fD182a90239D7AE85706C2FE4e5922) contains no paused()/blocklist/freeze on user redemption or transfer paths, the LitePSM 'halt' lever requires a 48h GSM-delayed Spell rather than a unilateral guardian action, sUSDS is a no-queue ERC-4626 with no per-user cap, and the ESM-triggered shutdown is structurally pro-user (free()/cash() require live==0). The orange steelman about upgradeability is real but constrained by the same 48h GSM_PAUSE_DELAY governance path — that is upgrade risk, not a current pause guard. The red steelman is hypothetical (would require a malicious upgrade Spell), not a property of the system as deployed today.

    Steelman argument
    Steelman argument On the deployed contracts as of 2026-04-29 there is no admin function that can pause sUSDS withdraw/redeem, no blocklist on USDS transfers, no queue/cap on user exits, swaps and wipes are callable directly from Etherscan, and the Emergency Shutdown path explicitly opens (not closes) user exits and is fire-able by anyone holding 100k MKR-equivalent — meeting the green rubric of permissionless exit with no pause on claims of finalized exits.
    Evidence (7)
    E1
    Three independent exit paths in the live Sky/MCD stack: (a) CDP wipe-and-free via Vat.frob (repay USDS-equivalent debt, withdraw collateral) and CDP-manager wrappers; (b) LitePSM-DAI-USDC sellGem/buyGem swap (USDC<->DAI, USDS routes via LitePSMWrapper at 0xA188EEC8...0f98c); (c) sUSDS ERC-4626 withdraw/redeem (proxy 0xa3931d71...c27fbd, impl 0x4e7991e5...74f9F61e0); plus the Emergency-Shutdown End functions free(ilk), skim(ilk,urn), pack(wad), cash(ilk,wad), thaw(), flow(ilk) on End at 0xBB856d17...e5922.
    E2
    Function-level gating: USDS token (impl 0x1923Dfee...4102) is a plain ERC-20/permit with no transfer pause/blocklist/freeze (only mint/burn are wards-gated). sUSDS withdraw/redeem have NO paused() modifier; only ssr (savings rate) is wards-mutable. LitePSM sellGem/buyGem are open to any caller; sellGemNoFee/buyGemNoFee are toll-gated to whitelisted bud[] addresses. End.cage() is auth-only (governance) but End.cage(ilk), free(ilk), skim, pack, cash, thaw, flow are callable by anyone once live==0.
    E3
    There is no paused()/whenNotPaused on USDS, sUSDS, Vat, or End. The only LitePSM 'halt' lever is governance setting tin/tout to type(uint256).max via wards-only file() — a parameter change requiring a Spell, not a unilateral guardian pause. There is no PAUSE_INFINITELY function; user redemption surface is structurally unpausable.
    E4
    Emergency vs governance distinction: governance changes traverse MCD_PAUSE with GSM_PAUSE_DELAY (raised to 48 hours in the April 30 2025 executive vote), so any 'halt swap by setting tin=MAX' or new spell to alter wards waits ≥48h. The fast path is the ESM (0x09e05ff6...4c58): once Sum >= min (currently 100,000 MKR-equivalent), anyone can call fire() which calls End.cage() with no delay — but this triggers the user-favorable shutdown that opens free()/cash() exits, it does not block exits.
    E5
    sUSDS has no queued redemption, no daily cap, no withdrawal cooldown (ERC-4626 maxWithdraw = balance, immediate). LitePSM has a buf parameter capping DAI inventory but rush()/fill() refill the buffer permissionlessly when consumed; there is no documented per-user/per-day cap and no queue.
    E6
    Forced-exit / escape hatch: Emergency Shutdown is the documented adversarial-admin escape. Anyone holding 100k+ MKR-equivalent can fire ESM; thereafter free(ilk) returns surplus collateral to vault owners and cash(ilk,wad) lets DAI/USDS holders redeem proportional collateral basket. All End user functions require live==0 (NOT live==1), so they survive any governance pause attempt.
    E7
    All exit functions are directly callable on Etherscan write tab or any wallet without sky.money frontend: Vat.frob/CDP-manager wipe (0x35d1b3f3...0492b), LitePSM sellGem/buyGem (0xf6e72Db5...3042), sUSDS withdraw/redeem (0xa3931d71...7fbD), End.free/cash (0xBB856d17...e5922). USDS is plain ERC-20 — transferable on any DEX/wallet.
    Why is this consensus tentative?
    • weak consensus margin
    • only 0/3 sources have a public chat share link
    • total support weight 0.12 below confidence floor (1.5)

    A fresh independent run can strengthen (or overturn) the verdict.

    Run your own prompt Submit run ↗
    Sources claude-opus-4-7 no url gpt-5.5 no url gemini-3-flash-preview no url View raw submissions ↗
  4. Autonomy tentative 3/3 models agree AI-only 0/3 with chat share link
    Sky CDP relies on Chronicle oracle feeds (1h OSM delay) and is structurally pegged to USDC via LitePSM (~29% of collateral) plus off-chain RWA custody (~29%, BlockTower Andromeda via Coinbase Prime); ~58% of TVS is exposed to fiat-rail / centralized-custodian failure that the OSM does not mitigate.
    Verdict

    Choosing orange because the orange steel-man best fits the evidence: oracle and keeper dependencies (A1, A2, A8) ARE meaningfully mitigated by the OSM (LIVE, 1h hop=3600s confirmed in source) and ESM, but two large unmitigated external exposures exist — (1) the LitePSM at 0xf6e72Db5454dd049d0788e411b06CfAF16853042 hard-pegs USDS to USDC with no oracle/sanity-check (DefiScan-confirmed, ~29% of collateral), and (2) BlockTower Andromeda holds ~29% of collateral as off-chain T-bills custodied at Coinbase Prime (forum thread confirms USDC→Coinbase Prime deposit flow). Neither alone causes red because (a) USDC depegs have historically been transient and recoverable rather than principal-destroying, (b) RWA exposure is bounded and isolated to specific vaults rather than cross-cutting all USDS, and (c) the 18h DSPauseProxy delay falls short of the 7d exit window orange anchor but is non-zero. Red would require an unmitigated single-dependency wipe path; the steel-man for green fails because USDC custody and RWA custodian risk are external dependencies that survive zero-loss only under benign assumptions about Circle and Coinbase.

    Steelman argument
    Steelman argument Oracle dependency is mitigated by 1h OSM delay + Chronicle's 22-validator committee + ESM; the centralized USDC and RWA exposures are real but bounded (USDC dislocations historically resolved within days, RWA is ~29%) and governance changes go through an 18h pause — failures impair performance and tail-risk principal but the core CDP architecture is conservative.
    Evidence (9)
    A1
    Core contracts read prices from Chronicle Labs medianizers per ilk, fronted by per-collateral OSMs (hop=3600s, 1h delay). DefiScan classifies Chronicle as Medium centralization (validators changeable with 7d exit window). USDC LitePSM (0xf6e72Db5454dd049d0788e411b06CfAF16853042) does not consult an oracle — USDC is priced 1:1 by construction, so a USDC depeg propagates immediately to USDS without OSM protection.
    A2
    Chronicle Protocol oracle committee = ~22 validator node operators (MakerDAO/Sky, Infura, Etherscan, Gnosis, Nethermind, Euler, Block Analitica, Bitcoin Suisse, Steakhouse, etc.). Median of reported prices feeds OSM. Validator set is changeable by Sky governance with 7-day exit window per DefiScan. Mis-reporting propagates to vault liquidation pricing after 1h OSM delay.
    A3
    Sky Lending core CDP system is Ethereum-mainnet only; no required cross-chain bridge for the lending function itself. USDS exists on other chains but the CDP/PSM/oracle TVS stack assessed here lives on L1 — no bridge dependency in the core flow.
    A4
    Spark sub-module (~20% of debt) introduces nested dependency: SparkLend, Spark DAI Vault on Morpho ($300M), Spark Aave Lido Market ($50M). Spark consumes USDS/DAI from Sky via D3M and re-deploys into Morpho Blue and Aave-Lido — failures in those downstream pools could create bad debt Sky has to absorb. Underlying-asset risk for ETH/wstETH/WBTC vaults (~19%) is opted-in per ilk.
    A5
    Sky Lending is the rebrand-evolution of MakerDAO Multi-Collateral DAI (MCD); not a fork of a third-party codebase — the codebase IS the canonical Maker codebase under makerdao/dss + sky-ecosystem/* repos.
    A6
    Mitigations actually live on-chain today: (i) OSM 1-hour delay on every price feed (LIVE), (ii) ESM (Emergency Shutdown Module 0x09e05fF6142F2f9de8B6B65855A1d56B6cfE4c58, 100k MKR/SKY trigger, LIVE), (iii) OsmMom (0x76416A4d5190d071bfed309861527431304aA14f) can stop() a feed without timelock under governance authority (LIVE), (iv) DSPauseProxy (0xBE8E3e3618f7474F8cB1d074A26afFef007E98FB) 18h pause delay (recently reduced from 30h, LIVE). These mitigate oracle-mis-report attacks. They do NOT mitigate USDC depeg (LitePSM has no oracle) or off-chain RWA custodian failure (BlockTower Andromeda assets sit at Coinbase Prime / Wedbush / Celadon).
    A7
    Ethereum L1 only — no sequencer or DA committee dependency beyond substrate.
    A8
    Liquidation auctions (Dog/Clipper) require permissionless keepers to bid. Historic Black Thursday March 2020 incident showed keeper-liveness failure can produce 0-bid auctions and bad debt. Mitigation since: chip+tip incentives and price-takedown circuit breakers, but architectural keeper dependency remains. Failure mode: bad debt accumulates rather than instant principal loss for non-vault holders.
    A9
    Governance can swap external dependency surface via on-chain spell executed through DSPauseProxy after 18h delay: (a) add new ilk wired to a new oracle address, (b) point Spotter at a different OSM/Median, (c) add new RWA allocator/PSM. 18h is below the orange-tier 7d exit-window benchmark — users cannot realistically exit USDS/sUSDS or unwind a CDP within 18h if a hostile oracle swap is queued. OsmMom.stop() bypass is also without timelock (governance-trusted).
    Why is this consensus tentative?
    • weak consensus margin
    • only 0/3 sources have a public chat share link
    • total support weight 0.12 below confidence floor (1.5)

    A fresh independent run can strengthen (or overturn) the verdict.

    Run your own prompt Submit run ↗
    Sources claude-opus-4-7 no url gpt-5.5 no url gemini-3-flash-preview no url View raw submissions ↗
  5. Open Access tentative 3/3 models agree AI-only 0/3 with chat share link
    Contracts admit anyone (no whitelist/KYC); official frontend self-discloses geo-blocking and VPN detection but A3b-ii independent paths exist (cp0x pi-sky-interface, direct contract).
    Verdict

    Choosing orange because the contract layer is unambiguously permissionless (USDS/sUSDS/LitePSM expose no user-side whitelist, KYC, or blocklist — confirmed via Etherscan-verified source for 0xdC035D..., 0x1923Df..., 0xa3931d..., 0xf6e72D...) but the official Interface self-admits A3-active enforcement in writing ('to implement geo-blocking and VPN-detection measures, IP addresses are collected and stored') and surfaces 'Currently unavailable in the US' banners on sUSDS / stUSDS / Sky Ecosystem Rewards tiles — this is type (a)+(d) evidence under A3-active, not inferred. The cp0x pi-sky-interface (https://sky.cp0x.com, source d5a584d9a5c8..., GPL-3.0, Docker self-hostable, operated by cp0x as a separate legal entity from Skybase) plus direct Etherscan-write-tab interaction are real A3b-ii mitigations, but they are not promoted by Sky itself and require the user to know about them, so they soften but do not erase the orange. The green steelman is weaker than the orange one because the green requires the alternative paths to be either documented by the protocol itself or reachable by non-technical users; the red steelman is weaker because the contract layer demonstrably has no whitelist/KYC/blocklist and no single operator gates user actions.

    Steelman argument
    Steelman argument All Sky contracts (USDS, sUSDS, LitePSM, DaiUsds converter) admit any address unconditionally with no whitelist/KYC/blocklist; the gating is only at the official frontend layer (self-disclosed geo-block + VPN-detection) and the rubric maps frontend-only A3-active enforcement plus partially-mitigated A3b-ii to orange.
    Evidence (13)
    A1
    USDS token (proxy 0xdC035D...) and its implementation 0x1923Df... use the MakerDAO 'wards' authority pattern: only ward-authorized addresses can mint/burn, but transfer/approve/balanceOf are open ERC-20 with no whitelist, blacklist, KYC modifier, freeze or pause on user transfers.
    A1
    sUSDS at 0xa3931d... is an ERC1967Proxy; deposit/withdraw/redeem on the implementation expose standard ERC-4626 entry points with no per-user gate.
    A1
    LitePSM USDC-A (0xf6e72D...) exposes permissionless buyGem/sellGem (no caller whitelist) for USDC<>USDS swaps; the bud()/wards-gated functions are only the no-fee variants buyGemNoFee/sellGemNoFee, which are ALMProxy-only and do NOT gate ordinary user admission.
    A2
    No off-chain operator approval (keeper, sequencer, signed message, attestation) is required to deposit, mint, transfer, swap via PSM, or redeem sUSDS. The Chronicle oracle posts prices that affect liquidations of legacy Maker vaults but does not gate user admission for USDS/sUSDS/PSM functions.
    A3-active
    Sky Privacy Policy explicitly self-discloses active enforcement: 'IP Addresses: For security purposes, to ensure the proper functioning of the Interface, and to implement geo-blocking and VPN-detection measures, IP addresses are collected and stored using Third-Party Services and Service Providers.' This is a self-admitted enforcement mechanism, not just policy text.
    A3-active
    ToS narrative confirms tiered restriction enforcement: 'Certain functionalities of the Web App, including the Sky Savings Rate and Sky Token Rewards are subject to geographical restrictions and are unavailable in specific jurisdictions including the United States. Furthermore, the Trade feature is explicitly restricted in all European Union member states. Users residing in these restricted jurisdictions are provided a limited version of the Web App and are expressly prohibited from accessing or attempting to access any restricted features.' Live fetch of sky.money product cards shows banners 'Currently unavailable in the US' on sUSDS, stUSDS, and Sky Ecosystem Rewards tiles.
    A3-passive
    Standard sanctions-attestation, OFAC SDN, EU/UK/UN/CIMA representations, and VPN-circumvention prohibition clauses are present (verbatim quoted under evidence). These are A3-passive boilerplate.
    A3b-i
    The ToS defines 'Interface' as 'https://sky.money ... and https://app.sky.money ... as well as any other websites, apps, interfaces or dashboards, available through the sky.money domain, its subdomains, or any other means'. Subdomain redistributions of the official UI are bound by the same ToS and are NOT independent paths. ToS also notes 'Independent Subdomains' that are NOT controlled by Skybase, but those operators may impose their own ToS.
    A3b-ii
    cp0x pi-sky-interface is a verified independent A3b-ii path: live at https://sky.cp0x.com (HTTP 200, Vite SPA index served by nginx, title 'Sky Permissionless Interface by cp0x'), source at https://github.com/cp0x-org/pi-sky-interface (GPL-3.0, latest main commit d5a584d9a5c87d44f089d1bc4cfedc76d1ff118d, Dockerfile present for self-hosting), operated by cp0x — a separate legal entity from Skybase International / Sky Foundation — and therefore not bound by sky.money ToS or the Skybase geo-blocking/VPN-detection enforcement. Open-source + self-hostable + independent operator: qualifies on all three axes.
    A3b-ii
    Direct on-chain interaction via Etherscan Write Contract tabs is available for USDS (0xdC035D45d973E3EC169d2276DDab16f1e407384F), sUSDS (0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD), and LitePSM-USDC-A (0xf6e72Db5454dd049d0788e411b06CfAF16853042); all three contracts are verified on Etherscan and require no off-chain operator.
    A4
    No on-chain OFAC/Chainalysis/TRM oracle integration was found in the user-entry contracts (USDS Usds.sol, sUSDS, LitePSM). The compliance enforcement disclosed in Sky's Privacy Policy is at the frontend / IP layer (geo-block + VPN-detection on the official Interface), not at the smart-contract layer.
    A5
    Read access is fully open (verified contracts, public RPC, public state). Write access at the contract layer is unconditionally open for ordinary user actions (mint USDS by depositing DAI via converter / by buyGem on PSM, deposit/redeem sUSDS, transfer USDS). Write access via the official frontend is gated by self-disclosed IP geo-block + VPN-detection; write access via cp0x pi-sky-interface or direct contract calls is not.
    A6
    ToS verbatim 'Prohibited Jurisdictions' clause located and quoted: 'You represent and warrant that you are not a resident of any of the following countries or regions ("Prohibited Jurisdictions"): Afghanistan, Belarus, Burma, Burundi, Central African Republic, China, Crimea, Cuba, Democratic Republic of the Congo, Donetsk, Ethiopia, Guinea, Guinea-Bissau, Haiti, Hong Kong, Iran, Iraq, Kherson, Lebanon, Libya, Luhansk, Mali, Nicaragua, Niger, North Korea (DPRK), Russia, Somalia, South Sudan ... Venezuela, Yemen, Zaporizhzhia, and Zimbabwe.' Eligibility/sanctions/VPN clauses also quoted verbatim under evidence.
    Why is this consensus tentative?
    • only 0/3 sources have a public chat share link
    • total support weight 0.12 below confidence floor (1.5)

    A fresh independent run can strengthen (or overturn) the verdict.

    Run your own prompt Submit run ↗
    Sources claude-opus-4-7 no url gpt-5.5 no url gemini-3-flash-preview no url View raw submissions ↗

Stage

Preview of the Phase-3 maturity framework. DeFiPunk'd will adopt DeFiScan v2's stages verbatim; the section is rendered below in its intended shape so the structure is visible today.

Sky Lending has not yet been assessed under the DeFiScan v2 stage framework.
The walkaway test is the central criterion. Once stages land, protocols reach Stage 1 only if users can exit in the presence of malicious operators even when the emergency council disappears.
Scope of assessment
Stages are assessed per-protocol against DeFiScan v2's criteria: governance structure, upgradeability path, timelock durations, emergency-council scope, and the walkaway test. The analysis depends on onchain discovery (roles, owners, timelocks) and deeper review of deployed contracts — neither of which DeFiPunk'd automates at Phase 0.
Stage 0 requirements pending
Governance is largely off-chain, contracts are upgradeable with short or no timelock, and the protocol depends on a multisig or team with full discretion. At Phase 0 DeFiPunk'd does not automatically evaluate these; the assessment lands with crawler-based onchain discovery.
Stage 1 requirements pending
Users can exit or opt out on their own terms even if the team disappears. Upgrades run through a meaningful timelock with an emergency security council clearly scoped. The walkaway test is the headline criterion.
Stage 2 requirements pending
Protocol is fully permissionless and immutable, or upgrades require a supermajority of token holders with a long timelock and no emergency override. This is the terminal stage of the DeFiScan v2 framework.
Learn more about DeFiScan v2 stages →
Stages are an opinionated assessment of maturity, not a rating of security or safety. A protocol can sit at Stage 2 and still carry substantial technical or economic risk; the framework exists to incentivize decentralization, not to rank protocols.

Contract surface

Every contract in scope for this protocol — pooled from DeFiLlama's TVL adapter (mechanical) and DEFI@home discovery submissions (LLM-curated). Verified-source flags come from Etherscan + Sourcify; owner / multisig metadata is read on-chain when available. Reviewer audit context, not a slice score. A lending protocol's adapter set will list third-party collateral tokens alongside its own contracts; attribution is the grader's job.

  • 29addresses
  • 4verified source
  • 2proxies
  • 0of 1 owners are Safes

TVL adapter pinned at 683d369. Sourcecode fetched 2026-05-06. Control fetched 2026-05-14.

ethereumLockstakeEngine0xce01…a6a3TVLproxy
ethereumDai0x6b17…1d0fTVL
ethereumSky0x5607…9279TVL + discgovernance
ethereumFiatTokenProxy0xa0b8…eb48TVLproxy0xfcb1…ae3a
Ethereumadmin (MkrAuthority — authority contract for MKR token minting)0x6eeb…dfb8discoverytoken
Ethereumgovernor (Chief / MCD_ADM — SKY-weighted continuous approval voting, sets hat)0x929d…a6f9discoverygovernance
Ethereumguardian (DssLitePsmMom — no-timelock LitePSM halt control)0x467b…b425discoverytimelock
Ethereumguardian (ESM — Emergency Shutdown Module, cages the system)0x09e0…4c58discoveryguardian
Ethereumguardian (MCD_END — Emergency Shutdown settlement contract)0xbb85…5922discoveryguardian
Ethereumguardian (OsmMom — no-timelock per-ilk Oracle Security Module stop)0x7641…a14fdiscoverytimelock
Ethereumguardian (SplitterMom — no-timelock splitter pause control)0xf51a…230ediscoverytimelock
Ethereumother (ChainLog — canonical on-chain address registry v1.20.15, 502 entries)0xda0a…740fdiscoveryfactory
Ethereumother (DSPauseProxy implementation contract — logic for pause proxy)0x3f86…92b0discovery
Ethereumother (DssSpell — current executive spell / hat, done=true, 2026-04-23)0x0685…b125discovery
Ethereumother (MCD_CAT — CDP liquidation trigger contract)0x78f2…523ediscovery
Ethereumother (MCD_DEPLOY — original MCD system deployer contract)0xbaa6…d3f4discoveryfactory
Ethereumother (MCD_JOIN_DAI — DAI token adapter, mint/burn bridge between Vat and ERC-20 DAI)0x9759…1a28discoverybridge
Ethereumother (MCD_POT — Dai/USDS Savings Rate accumulator)0x197e…7cf7discovery
Ethereumother (MCD_PSM_USDC_A — USDC Peg Stability Module)0x89b7…cc5adiscovery
Ethereumother (MCD_VOW — surplus and debt auction manager)0xa950…4466discovery
Ethereumother (PSM-USDC-A GemJoin5 — collateral adapter for PSM USDC-A)0x0a59…2199discovery
Ethereumother (SpellAction — action contract for 2026-04-23 executive spell)0x1f8f…82a1discovery
Ethereumproxy_admin (MCD_PAUSE_PROXY — governance executor, calls delegatecall on spells)0xbe8e…98fbdiscoverytimelock
Ethereumproxy_admin (Pause Proxy — governance control proxy)0xbe8e…914cdiscoverygovernance
Ethereumtimelock (DSPause — GSM governance security module with delay)0xbe28…38f3discoverytimelock
Ethereumtimelock (Governance Pause / GSM — legacy pause contract variant)0xbe8e…1178discoverytimelock
Ethereumtimelock (Sky governance pause contract — alternate pause)0x0a3f…ddc0discoverytimelock
Ethereumtimelock (Timelock GSM — governance security module timelock)0xbe8e…d584discoverytimelock
Ethereumvault (MCD_VAT — core CDP ledger, holds all collateral and debt accounting)0x35d1…492bdiscoveryvault

Protocol Info

Links

[defillama] Source: DeFiLlama [:] Source: DEFI@home quorum
Twitter
@SkyEcosystem
GitHub
2 repositories
Governance forum
https://forum.sky.money

Security

[:] Source: DEFI@home quorum
Audits
18 audits
Security contact
security@sky.money

Technical

[:] Source: DEFI@home quorum
Voting token
SKY Ethereum: 0x56072C95FAA701256059aa122697B133aDEd9279
Deployed contracts
https://chainlog.sky.money/
Upgradeability
Mixed (some immutable, some upgradeable)

Provenance

[defillama] Source: DeFiLlama
Review status
listed
Updated
2026-06-01 11:27 UTC