3Jane — USD3
Score Breakdown
| Category | Weight | Score |
|---|---|---|
| Audits & Historical Track Record | 20% | 3.50 |
| Centralization & Control | 30% | 3.75 |
| Funds Management | 30% | 4.00 |
| Liquidity Risk | 15% | 3.50 |
| Operational Risk | 5% | 3.50 |
| Final Score | 3.8 / 5.0 | |
Overview
3Jane is a credit-based money market on Ethereum that enables unsecured (uncollateralized) USDC credit lines underwritten against verifiable proofs of crypto assets, bank assets, future cash flows, and credit scores. The protocol is built as a modified fork of Morpho Blue, replacing collateral logic with credit assessment, and uses Yearn V3 tokenized strategy architecture for its vault contracts.
USD3 is the senior tranche of 3Jane's lending pool. Users deposit USDC to mint USD3, and those funds are allocated into a shared lending pool. Idle capital earns baseline yield via Aave V3 USDC market. When borrowers draw down credit lines, funds are withdrawn from Aave and lent at interest rates determined by a base rate + per-borrower risk premium.
Dual-Tranche Structure:
- USD3 (Senior Tranche): Priority claim on interest repayments, lower risk, lower yield (~2.1% APY). ERC-4626 compliant.
- sUSD3 (Junior/Subordinated Tranche): First-loss capital. Users stake USD3 to mint sUSD3. Higher yield but absorbs losses first in case of defaults. Has a lock period before withdrawal.
Interest is distributed with an 85/15 split between USD3 (senior) and sUSD3 (junior) tranches.
Links:
Risk Summary
Key Strengths
- Tier-1 backing: $5.2M seed led by Paradigm, with Coinbase Ventures, Robot Ventures, Wintermute Ventures
- Solid governance structure: 3-of-5 multisig with two-tier timelock: 7-day delay on implementation upgrades (proxy admins), 24h delay on configuration changes (contract owners). Both timelocks are self-administered with the multisig as proposer/executor/canceller. This addresses the Veridise recommendation for different delays by action type.
- Inherited Morpho Blue security: Core lending logic based on extensively audited Morpho Blue codebase
- Dual-tranche protection: sUSD3 junior tranche (~$6.10M supply, ~$6.68M assets) + Insurance Fund (~$1.02M in
waEthUSDC) absorb losses before senior USD3 holders - Improved emergency tooling: EmergencyController v2 (deployed Feb 2026) introduces role separation;
EMERGENCY_AUTHORIZED_ROLEis now held by both the multisig and a Hypernative automation agent for 24/7 monitored response - Demonstrated incident response: Team successfully halted and later restarted the strategy during the April 2026 shutdown event without any loss of funds, share-price (PPS) preservation visible onchain (USD3 PPS = 1.157119 USDC; sUSD3 PPS = 1.096092 USD3 on June 11, 2026)
Key Risks
- Unsecured lending model: Fundamentally higher risk than overcollateralized DeFi lending. Default recovery depends entirely on offchain legal mechanisms and U.S. collection agencies — novel and untested in DeFi
- Proprietary credit algorithm: The 3CA is a black box. Credit decisions are offchain and opaque. Incorrect credit assessments could lead to systemic defaults
- No bug bounty program: Notable absence from Immunefi, Sherlock, and Cantina despite managing ~$27M of user funds
- Novel offchain dependencies: zkTLS/Reclaim Protocol, EigenLayer AVS, and now Hypernative are early-stage technologies / runtime trust deps with limited battle-testing
- Limited team transparency: Only the founder is publicly known. No disclosed legal entity.
- Auditor recommendation only partially addressed: Veridise asked for a hard split between emergency and configuration roles. EmergencyController v2 split off the emergency role from
Ownable, but the furtherOPERATOR_ROLEsplit (PR #111) is merged in code yet not yet deployed onchain. - EmergencyController outside audit scope: Per the protocol DD document, the EmergencyController "was added after the audit window" — so the most powerful safety contract (can pause the protocol, zero caps, revoke credit lines, and is partly controlled by a Hypernative hot EOA) is not covered by any of the four audits.
- Unverified off-chain ABF sleeve: The DD document describes an Asset-Backed Financing sleeve (off-chain receivables in SPV bank accounts, valuations pushed weekly via the multisig into the strategy
report()). It is not corroborated by public docs or onchain state. If live, it adds an off-chain, multisig-attested valuation dependency that can directly move USD3/sUSD3 PPS — see Provability.
Critical Risks
- Default contagion: If multiple borrowers default simultaneously, the sUSD3 junior tranche + ~$1.02M Insurance Fund may be insufficient to cover losses, directly impacting USD3 holders. With ~$19.81M outstanding loans and ~$6.68M sUSD3 assets + ~$1.02M fund, the combined first-loss buffer covers only ~39% of the borrow book — i.e. once cumulative defaults exceed ~$7.70M (≈39% of outstanding), USD3 senior holders begin to take losses. This is a material deterioration from May 2026 (~103% coverage on a ~$6.91M borrow book).
- Offchain legal dependency: Entire default recovery mechanism depends on U.S. legal system, licensed collection agencies, and credit bureau reporting — none of which have been tested at scale in a DeFi context
- Upgrade risk + Yearn V3 shutdown semantics: The April 2026 incident showed that recovering from
shutdownStrategy()required a brand-newrestartStrategy()reinitializer (PR #112). Future shutdowns may again require timelocked upgrades to fully reopen — a hidden coupling between emergency response and governance. - Liquidity risk under stress: Utilization is now ~73% (up from ~70% in May, ~44% in March). The April 2026 event demonstrated that when the strategy is shut down, idle reserves available for redemption can collapse to near-zero for a week+ window. The new 7-day upgrade timelock means worst-case restart latency from a shutdown is now at least 7 days.
- TVL concentration: USD3 deposits have recovered to ~$27M, but the borrow book is now ~3× its May size without proportional buffer growth — the protocol is taking on more credit risk relative to its loss-absorbing capacity.
Full Report
Audits and Due Diligence Disclosures
3Jane-Specific Audits
| Auditor | Date | Type | Scope | Critical | High | Medium | Low/Info | Status |
|---|---|---|---|---|---|---|---|---|
| Veridise (4 analysts, 20 person-days) | Aug 7–18, 2025 | Audit | MorphoCredit, USD3/sUSD3, ProtocolConfig, CreditLine, Helper, MarkdownController, InsuranceFund, IRM | 1 | 2 | 2 | 5 | 6 Fixed, 4 Acknowledged |
| Sherlock (Kirkeelee, mstpr-brainbot) | Aug 4–20, 2025 | Collaborative Audit | MorphoCredit, USD3/sUSD3, CreditLine, Helper, IRM (2 repos: 3jane-morpho-blue + usd3) | 0 | 7 | 5 | 3 | All fixed/acknowledged |
| Electisec (Panda, Fede — 10 days, 13 contracts ~2000 LoC) | Oct 18, 2025 | Audit | Full moneymarket + Jane token, RewardsDistributor, PYTLocker | 0 | 1 | 2 | 10 | All fixed/acknowledged |
| Sherlock 2 (Obsidian lead, ~40 wardens) | Oct 7–17, 2025 | Private Contest | Full moneymarket + USD3/sUSD3 + Jane/PYTLocker/RewardsDistributor | 0 | 1 | 7 | 0 | All fixed/acknowledged |
Notable findings across all audits:
- V-3JNE-VUL-001 (Veridise Critical): Funds draining via malicious market creation — attacker could create fake markets with malicious MarkdownManager and CreditLine contracts to drain the MorphoCredit waUSDC wallet. Fixed via access control on market creation.
- Sherlock H-1: Settlement flow double deduction and incorrect balance clearing —
MorphoCreditsettlement flow contained critical accounting vulnerabilities that could lead to protocol insolvency. Fixed. - Sherlock H-2 through H-7: Various high-severity issues across credit line settlement, repayment flows, and balance tracking. All fixed.
- Electisec H-1: Pendle YT token interests lost during lock period in PYTLocker — locker never claims accrued yield, so YT tokens are worth $0 at expiry. Feature subsequently removed from codebase.
- Sherlock 2 H-1: Loss of all YT yield accrued due to PYTLocker staleness (same root cause as Electisec H-1). Fixed.
- Veridise H-1/H-2: Griefing via small donations resetting lock timer; lock period bypass via uncontrolled
startCooldown(). Both fixed. - Electisec M-1/M-2: Cooldown restart allows users to bypass cooldown mechanism; JANE burn mechanism is unfair and gameable. Acknowledged/Fixed.
Veridise auditor recommendations: Split the ProtocolConfig.owner role into separate keys with different delays for emergency vs. configuration actions. Enforce access control on market creation (least privilege approach).
Total across all 4 audits: 1 Critical, 11 High, 16 Medium — all fixed or acknowledged. The high volume of findings (particularly in the first Sherlock audit with 7 highs) indicates the codebase had significant issues that were caught and resolved before mainnet deployment.
Inherited Morpho Blue Audits
The core lending logic is a modified fork of Morpho Blue, which has been extensively audited:
| Auditor | Date | Scope |
|---|---|---|
| OpenZeppelin | Sep–Oct 2023 | Morpho Blue & Speed Jump IRM |
| Cantina | Nov 2023 – Mar 2024 | Morpho Blue managed review, IRM, Competition, Periphery, Fixed rate IRM |
Note: The inherited audits cover the base Morpho Blue logic. 3Jane's modifications (credit-based lending, tranche system, markdown controller) are the novel risk surface covered by the 4 3Jane-specific audits above.
The source code includes a /certora directory indicating formal verification efforts for rate math.
Bug Bounty
- Not listed on Immunefi, Sherlock, or Cantina
- Not listed on SEAL Safe Harbor
- No active bug bounty program found
Due Diligence Document Disclosure (protocol-provided, May 2026)
3Jane provided a 15-page "USD3 — Due Diligence Document" (primary contact: Josh Fong, Head of DeFi). It is a useful primary source on design intent, but several claims could not be reconciled with onchain data or public docs and should be treated with caution:
- Incorrect contract addresses. The DD doc's market/token addresses (USD3, sUSD3, MorphoCredit, Helper, MarkdownController) match onchain, but its governance and insurance addresses are wrong — the listed TimelockController, Multisig, EmergencyController, InsuranceFund, and RewardsDistributor addresses do not match the live contracts (e.g. its InsuranceFund
0x45077D8e…9935has no code and a zerowaEthUSDCbalance, whereas the real fund0x4507B5B2…9935holds ~868K). This report uses the onchain-verified addresses throughout. - Yield split misstated. The DD doc says USD3/sUSD3 split ~70/30; the public docs and IRM weighting confirm 85/15 (sUSD3 weight 0.15, capped at 15%). This report uses 85/15.
- Loss-waterfall ordering. The DD doc places the Insurance Fund ahead of sUSD3 (Step 2, after net yield) — this is corroborated by the debt-write-off docs ("first-loss capital … preemptively makes funds whole at default"), so the report's waterfall was corrected to Insurance Fund → sUSD3 → USD3.
- Unverified off-chain ABF sleeve. The DD doc describes an Asset-Backed Financing sleeve (SPV bank accounts, multisig-pushed valuations, ~$13M "deploying") not reflected onchain or in public docs — see Provability.
- EmergencyController excluded from audit scope. The DD doc states the EmergencyController "was added after the audit window," so the four audits do not cover it — relevant given it can pause the protocol, zero caps, and revoke credit lines. A claimed audited-vs-deployed code-delta gist is at gist.github.com/fp-crypto/0c7dd772….
- Corroborated governance details: 3-of-5 Gnosis Safe with 4 of 5 signers on hardware wallets, anonymous signer identities, yearly rotation; timelock currently 24h with a stated plan to extend to 7 days; no protocol-level management or performance fee; target yield SOFR + 300–500 bps.
Historical Track Record
- Production time: USD3 deployed August 25, 2025 (~10 months as of June 2026)
- TVL: ~$7.28M idle reserves in MorphoCredit
waEthUSDC, with ~$19.81M borrowed and ~$27.09M totalUSD3.totalAssets()(sources: DeFiLlama ~$6.2M–$7.2M TVL, onchaintotalAssets()call June 11, 2026) - Token supply: ~$23.41M USD3 supply (
totalSupply()), ~$6.10M sUSD3 supply; PPS =1.157119USDC/USD3 and1.096092USD3/sUSD3 (June 11, 2026) - Utilization: ~$19.81M borrowed / ~$27.09M deposited → ~73% (was ~70% in May 2026, ~44% in March 2026)
- TVL change since May: USD3 deposits tripled (
$9.93M → $27.09M); idle reserves doubled ($3.15M → $7.28M); borrowed nearly tripled ($6.91M → $19.81M) - Security incidents:
- April 18–28, 2026 — emergency shutdown / restart event. Per merged PR #112 the team had already executed
strategy.shutdownStrategy()andstrategy.emergencyWithdraw(...)"in prod" before April 27, 2026. DeFiLlama TVL series confirms idle reserves collapsed from ~$4.78M on Apr 19 to ~$269K on Apr 20 and stayed at $120K–$273K for ~7 days, recovering to ~$2.92M by May 2 and ~$3.15M today. Restoration required deploying a newUSD3.restartStrategy()reinitializer (PR #112 merged Apr 28, 2026); current onchain state isisShutdown() = false. The only public artefact is PR #112 describing therestartStrategy()fix.- Protocol's framing (per 3Jane DD document, received May 2026): 3Jane characterizes the action not as an incident but as operational discipline — "3Jane preemptively withdrew its idle USDC from Aave during the Kelp exploit as a precautionary measure" — and states "no prior security incidents have occurred on the 3Jane protocol." The timing supports the precautionary reading: the KelpDAO/rsETH bridge exploit occurred April 18–20, 2026, exactly when idle reserves collapsed. However, the protocol's "no incident / routine precaution" framing partially conflicts with the onchain evidence: a precautionary Aave de-risk would not normally require a full
shutdownStrategy()+ a newrestartStrategy()reinitializer (a 24h-timelocked code upgrade) to reopen deposits/redemptions. Treat the event as a successfully-handled but non-routine stress episode.
- Protocol's framing (per 3Jane DD document, received May 2026): 3Jane characterizes the action not as an incident but as operational discipline — "3Jane preemptively withdrew its idle USDC from Aave during the Kelp exploit as a precautionary measure" — and states "no prior security incidents have occurred on the 3Jane protocol." The timing supports the precautionary reading: the KelpDAO/rsETH bridge exploit occurred April 18–20, 2026, exactly when idle reserves collapsed. However, the protocol's "no incident / routine precaution" framing partially conflicts with the onchain evidence: a precautionary Aave de-risk would not normally require a full
- April 18–28, 2026 — emergency shutdown / restart event. Per merged PR #112 the team had already executed
- Peg history: USD3 is USDC-denominated and redeemable from idle reserves; no public depeg event reported. Note that during the April shutdown window, redemptions were effectively unavailable from the Yearn V3 strategy path.
- Phase 1 (bootstrapping): During initial phase, USD3 operates in a "fully risk-off" configuration where funds are only deposited into Aave's USDC market. The unsecured lending component ramps up over time.
Funding: $5.2M seed round (June 2025) led by Paradigm, with participation from Coinbase Ventures, Robot Ventures, Wintermute Ventures, Breed VC, and Bodhi Ventures. Andre Cronje listed among backers.
Funds Management
USD3 funds are deployed into two channels:
- Aave V3 USDC market — baseline yield on idle capital
- Unsecured credit lines — funds lent to approved borrowers at interest (base rate + risk premium + potential penalty rate)
Accessibility
- Minting: Deposit USDC → receive USD3 (1:1). Anyone can mint.
- Staking: Stake USD3 → receive sUSD3 (junior tranche). Lock period applies (1 month in Phase 1).
- Redemption: USD3 is redeemable for USDC atomically (T+0) against idle reserves when the protocol's targeted ~15% idle-liquidity buffer is available (per the DD document and Suppliers docs, which describe USD3 as a "fully liquid USDC receipt" in Phase 1). A FIFO redemption queue is described as "under development" for scenarios where the buffer is fully utilized — i.e. not yet a live throttling mechanism.
- Redemption is atomic only while idle reserves suffice; when the buffer is depleted (as during the April 2026 shutdown, when
isShutdown()blocked the path entirely) redemptions are delayed. There is no live queue today; instead the protocol can raise borrow rates via the IRM to compel repayment and refill the buffer.
Collateralization
USD3 is fundamentally different from traditional overcollateralized stablecoins:
- Not overcollateralized — USD3 is backed by USDC deposits that are then lent out via unsecured credit lines
- Credit-based model: Borrowing limits are based on offchain reputation and financial records, not onchain collateral
- Default risk / loss waterfall: For losses on the cryptonative credit sleeve, the Insurance Fund acts as first-loss capital — per 3Jane docs (debt-write-off) it "steps in with a
settle()call that preemptively makes funds whole at the default phase." Beyond the fund's capacity, losses then cascade through the tranche structure: sUSD3 (junior) absorbs before USD3 (senior). Net order: Insurance Fund → sUSD3 → USD3. (Note: the protocol-provided DD document places net distributable yield ahead of the Insurance Fund as Step 1; that yield cushion is not separately verifiable onchain.) - Insurance Fund:
0x4507B5B23340D248457d955a211C8B0634D29935holds ~868,288 waEthUSDC — thewaEthUSDCstatic-wrapped Aave V3 USDC token at0xd4fa2d31b7968e448877f69a96de69f5de8cd23e. The fund is yield-bearing: the underlyingaEthUSDCaccrues Aave interest, and thewaEthUSDCwrapper reflects this viaconvertToAssets. Current USDC value: ~$1.02M (June 11, 2026 — up from ~$868K in May due to Aave yield onwaEthUSDC). The fund has never been topped up with additional deposits beyond the initial seed. - Markdown mechanism:
MarkdownController(0xF0eaE71092F3c9411A9EAb8F81E7d91D29726214) gradually reduces the value of defaulted loans from their initial value to zero over time, preventing sharp market shocks - No liquidation mechanism — there is no onchain collateral to liquidate. Default recovery relies on offchain legal enforcement via U.S.-based collection agencies
Default Recovery Process
Per-loan recovery sequence applied to a defaulted credit line:
- Immediate credit score reduction (slashing 3Jane score)
- Overdue interest reallocation
- Markdown: protocol marks down delinquent/defaulted positions to reflect recovery rate
- NPL Auction: non-performing loans sold to registered U.S. collection agencies via Dutch-style auctions
- Offchain legal recovery via credit bureau reporting and regulatory enforcement
Any residual loss after the per-loan recovery above is then absorbed in the loss waterfall (see Collateralization above):
- Insurance Fund — ~868,288
waEthUSDC(≈$1.02M USDC at currentwaEthUSDCrate, June 11 2026); first-loss capital for cryptonative credit/fraud losses via preemptivesettle()(per 3Jane docs). See Collateralization for address details. - sUSD3 (junior tranche) — absorbs losses beyond the fund's capacity
- USD3 (senior tranche) — impaired only after junior + Insurance Fund are exhausted
Provability
- USD3/sUSD3 share prices are computed onchain via ERC-4626 standard
- Outstanding loans and interest accruals are tracked onchain in MorphoCredit
- Credit assessment is offchain — the 3CA (3Jane Credit Algorithm) is a proprietary black box. Credit line sizes, default risk rates, and repayment schedules are computed offchain
- zkTLS + Reclaim Protocol provides zero-knowledge proofs of offchain data (bank statements, credit scores), verified by EigenLayer AVS nodes
- Offchain data sources: Plaid (bank data), Credit Karma (credit scores)
- Total reserves cannot be fully verified onchain because outstanding loan values depend on offchain repayment status
- Claimed off-chain ABF sleeve (unverified — provability concern): The protocol-provided DD document (May 2026) describes a third yield channel beyond Aave idle and on-chain credit lines — an Asset-Backed Financing (ABF) sleeve: forward-flow agreements, warehouse facilities, and participation agreements with U.S. fintech lenders, with capital "held in an SPV bank account before deployment" and interest "calculated weekly and pushed via the protocol multisig" into the Yearn V3
report()path. The DD doc cites ~$13M asset-backed "deploying" alongside ~$7M cryptonative. This is not corroborated by the public docs (the Suppliers page lists yield as Aave + on-chain unsecured only) and is not reflected onchain (totalAssets()≈ $27.09M, with no on-chain representation of SPV/off-chain receivables). If active, this introduces a material provability gap: off-chain receivable valuations would be multisig-attested rather than onchain-verifiable, and a misreportedreport()could misprice USD3/sUSD3 PPS. TODO: confirm whether the ABF sleeve is live and how its valuations are sourced/attested.
Liquidity Risk
- Primary exit: Redeem USD3 for USDC from idle reserves in the Aave V3 pool
- Throttling: No live redemption queue today; a FIFO queue is "under development" (per DD doc). In stressed conditions the protocol raises borrow rates via the IRM to compel repayment and refill the idle buffer.
- Utilization risk: If a high percentage of deposited USDC is lent out to borrowers, idle reserves shrink and redemptions may be delayed
- Current utilization: ~$19.81M borrowed out of ~$27.09M
totalAssets(~73% utilization, June 11, 2026) — up from ~70% in May 2026 and ~44% in March 2026 - Stress event (April 2026): During the strategy shutdown, Yearn V3
isShutdown()=trueblocked the standarddeposit/redeempaths. DeFiLlama-visible idle reserves collapsed from ~$4.78M to ~$269K and stayed depressed for ~7 days before recovering. This is the protocol's first observed liquidity stress event, and it required a contract upgrade (newrestartStrategy()reinitializer) — a governance action now behind the 7-day timelock — to fully reopen the strategy. - DEX liquidity is effectively zero. Verified onchain June 11, 2026: only one pair exists, a Uniswap V3 USD3/USDC 0.01% pool at
0x8E12388Ea7366Aa87445d747F83B810aD538a981holding dust. No Uniswap V2 USD3/USDC or USD3/WETH pair, no Curve pool. All meaningful exit liquidity is therefore via the protocol's own redemption path against idle reserves. - sUSD3 exit: Subject to lock period (1 month in Phase 1) plus cooldown mechanism. During the April incident, sUSD3 supply was largely unchanged while USD3 supply contracted, which is consistent with senior holders redeeming and junior holders being locked.
Centralization & Control Risks
Governance
Ownership structure:
All core contracts use a two-tier TimelockController system (verified onchain June 11, 2026):
- TimelockController (7d, upgrades):
0x3D3C41419Ab401cd25055E8f9421D7D96d887885— 7-day minimum delay (getMinDelay() = 604800). Owns all five ProxyAdmins (USD3, sUSD3, MorphoCredit, ProtocolConfig, AdaptiveCurveIRM). Controls implementation upgrades only. Self-administered. - TimelockController (24h, config):
0x1dCcD4628d48a50C1A7adEA3848bcC869f08f8C2— 24h minimum delay (getMinDelay() = 86400). Remainsowner()of MorphoCredit (proxy), ProtocolConfig (proxy), CreditLine, and MarkdownController. Controls configuration changes. Self-administered. - Proposer/Executor/Canceller (both timelocks): 3-of-5 Gnosis Safe
0x33333333bd7045f1a601a1e289d7ab21036fb5ef - Safe signers (5 EOAs):
- Signer identities are not publicly labeled on Etherscan
Contracts are upgradeable — MorphoCredit, USD3, sUSD3, ProtocolConfig, and AdaptiveCurveIRM use TransparentUpgradeableProxy patterns. Each proxy has a dedicated ProxyAdmin whose owner() is the new 7-day TimelockController (0x3D3C41419Ab401cd25055E8f9421D7D96d887885). The 3-of-5 multisig can upgrade contract logic after a 7-day timelock delay. CreditLine and Helper are standalone (non-proxy) contracts.
Implementation upgrade history: USD3 and sUSD3 implementations were upgraded to v1.1.4 between May and June 2026. Current implementations: USD3 → 0xb606fb370eaaad03d71b49ae5e42aa4aec7458d9, sUSD3 → 0x529cbf11ffbc272d63858ca40a2c7f2695712073.
EmergencyController v2 — deployed Feb 25, 2026 at 0x84b31b84917485e221305edf590b8e3660d2e051 (verified onchain as the active ProtocolConfig.emergencyAdmin and CreditLine.ozd). Migrated from Ownable to AccessControlEnumerable per PR #109, introducing role separation:
OWNER_ROLE(count 1): the 3-of-5 multisig0x33333333Bd7045F1A601A1E289D7AB21036fB5EFEMERGENCY_AUTHORIZED_ROLE(count 2): the multisig + an EOA0x48c59b01af01515e69460b6b5b55e557e914941d— per PR #111 description, this is the Hypernative monitoring/automation address. (Identity inferred from PR text "Hypernative + multisig"; not labeled on Etherscan.)- Capabilities: pause protocol, set debt cap to 0, stop USD3 deployments to MorphoCredit, stop new deposits, revoke individual borrower credit lines. Emergency actions bypass the 24h timelock (binary stop controls only).
OperationalController (PR #111, merged Apr 29, 2026, included in v1.1.4 release June 5, 2026 — NOT yet wired in onchain): designed to introduce an additional OPERATOR_ROLE for routine credit operations (setCreditLines, closeCycleAndPostObligations, addObligationsToLatestCycle, settle) so frequent ops can run via a smaller operational multisig while emergency actions remain on Hypernative + main multisig. As of June 11, 2026, ProtocolConfig.emergencyAdmin and CreditLine.ozd still resolve to the v2 EmergencyController above — i.e. the role split is code-complete but not yet executed onchain.
Privileged roles (from Veridise audit trust model):
ProtocolConfig.owner(= 24h TimelockController, behind 3/5 Safe): pauses protocol, sets bounds on grace/delinquency periods, loan sizes, tranche ratios, interest rate configurations, and rotatesemergencyAdmin.CreditLine.owner(= 24h TimelockController) andCreditLine.ozd(= EmergencyController v2): the latter currently aggregates emergency + operational duties (approving credit lines, posting minimum repayments, settling debt from insurance fund). The pending OperationalController is the planned split.
Auditor (Veridise) recommendation status: The original recommendation to split ProtocolConfig.owner/CreditLine.ozd into separate keys with different delays for emergency vs configuration actions has been substantially addressed: the two-tier timelock system (7d for upgrades, 24h for config) directly implements different delays by action type, and the EmergencyController v2 + Hypernative integration handles emergency role separation. The final OperationalController split (PR #111, v1.1.4) is code-complete but not yet executed onchain.
Programmability
- Onchain: Interest accruals, share price computation (ERC-4626), loan state tracking, markdown decay — all programmatic
- Offchain (critical): Credit assessment (3CA algorithm), borrower approval, minimum repayment posting, credit line sizing — all require admin intervention
- PPS (price per share): Computed onchain algorithmically via ERC-4626 standard, but the total asset value depends on outstanding loan values which can be marked down by admin
- Hybrid system: Automated onchain mechanics + significant manual offchain operations
External Dependencies
| Dependency | Criticality | Notes |
|---|---|---|
| Aave V3 | Critical | Base yield on idle USDC (held as waEthUSDC static-wrapped Aave aToken). Well-audited, blue-chip dependency |
| Morpho Blue (forked) | Critical | Core lending logic. Modifications (credit, tranches, markdown) are the novel risk surface |
| Yearn V3 TokenizedStrategy | Critical | USD3 is a Yearn V3 tokenized strategy proxy; shutdown/emergencyWithdraw/reinitializer(...) semantics on StrategyData storage slots are load-bearing — see April 2026 incident which required a restartStrategy() reinitializer to clear the shutdown flag (PR #112) |
| Reclaim Protocol / zkTLS | High | Offchain data verification for credit scores and bank data. Novel technology with limited battle-testing |
| EigenLayer AVS | High | ZK proof distribution and verification. Early-stage infrastructure |
| Hypernative | Medium-High | Automated monitoring + emergency response (one of two EMERGENCY_AUTHORIZED_ROLE holders on EmergencyController v2). New runtime trust dependency; failure mode is a missed-or-malicious automated pause |
| Plaid | Medium | Bank account data access. Centralized offchain dependency |
| Credit Karma | Medium | VantageScore/FICO data. Centralized offchain dependency |
Operational Risk
- Founder: Jacob Chudnovsky — publicly identified, previously at Ribbon Finance / Aevo. Active on X/Twitter
- Team: Only founder is publicly known. Rest of team not disclosed
- Developed in stealth before the June 2025 funding announcement
- Legal entity: Not publicly disclosed
- Documentation: Good — comprehensive docs covering architecture, risks, and developer resources.
- Incident response: First real-world test occurred April 18–28, 2026. Team executed
shutdownStrategy()+emergencyWithdraw()and then had to ship new code (USD3.restartStrategy()reinitializer in PR #112) before the strategy could be reopened — i.e. the existing v2reinitialize()could not reverse a Yearn V3 shutdown, which is consistent with the runbook in PR #112 stating that "Differs from the v2 multisig pattern". Net read: the team was able to halt and recover, but full recovery required a governance upgrade (now behind the 7-day timelock for upgrades), and idle reserves were depressed (~$120K–$273K) for ~7 days. - Funding: $5.2M seed from tier-1 investors (Paradigm, Coinbase Ventures)
Monitoring
Key Contracts (Ethereum)
| Contract | Address | Monitor |
|---|---|---|
| USD3 Token (Proxy) | 0x056B269Eb1f75477a8666ae8C7fE01b64dD55eCc |
Supply changes, large deposits/withdrawals, share price |
| sUSD3 Token (Proxy) | 0xf689555121e529Ff0463e191F9Bd9d1E496164a7 |
Supply changes, lock period changes, cooldown events |
| MorphoCredit (Proxy) | 0xDe6e08ac208088cc62812Ba30608D852c6B0EcBc |
Borrow/repay events, utilization ratio, new market creation, delinquency/default state changes |
| ProtocolConfig (Proxy) | 0x6b276A2A7dd8b629adBA8A06AD6573d01C84f34E |
Config changes (pause, debt cap, supply cap, tranche ratios) |
| CreditLine | 0x26389b03298BA5DA0664FfD6bF78cF3A7820c6A9 |
New credit line approvals, credit line revocations, repayment postings |
| Helper | 0x82736F81A56935c8429ADdbDa4aEBec737444505 |
Borrower interactions |
| AdaptiveCurveIRM (Proxy) | 0x1d434D2899f81F3C3fdf52C814A6E23318f9C7Df |
Rate model parameter changes |
| TimelockController (24h, config) | 0x1dCcD4628d48a50C1A7adEA3848bcC869f08f8C2 |
Scheduled/executed/cancelled operations on config contracts (getMinDelay() = 86400). Owner of MorphoCredit, ProtocolConfig, CreditLine, MarkdownController. |
| TimelockController (7d, upgrades) | 0x3D3C41419Ab401cd25055E8f9421D7D96d887885 |
New June 2026 — owns all 5 ProxyAdmins (getMinDelay() = 604800). Scheduled/executed/cancelled operations for implementation upgrades. Self-administered; multisig holds PROPOSER/EXECUTOR/CANCELLER. |
| Multisig (3/5 Safe) | 0x33333333bd7045f1a601a1e289d7ab21036fb5ef |
Signer/threshold changes, submitted transactions (threshold = 3, owners unchanged from prior assessment) |
| EmergencyController v2 | 0x84b31b84917485e221305edf590b8e3660d2e051 |
Pause/cap/revoke actions, EMERGENCY_AUTHORIZED_ROLE membership changes (Hypernative + multisig today) |
| Hypernative agent (EOA) | 0x48c59b01af01515e69460b6b5b55e557e914941d |
Automated emergency calls; nonce/activity spikes |
| InsuranceFund | 0x4507B5B23340D248457d955a211C8B0634D29935 |
waEthUSDC balance (currently ≈$1.02M USDC at waEthUSDC rate); bring() calls (drain to CreditLine) |
| MarkdownController | 0xF0eaE71092F3c9411A9EAb8F81E7d91D29726214 |
Markdown parameter changes, defaulted-position write-downs |
Critical Events to Monitor:
- Protocol pause/unpause events
USD3.isShutdown()flips (the April 2026 incident was visible here days before the protocol publicly acknowledged it)- Debt cap or supply cap changes
- New credit line approvals (borrowers being approved)
- Delinquency and default state transitions
- Markdown events on defaulted positions
- USD3/sUSD3 share price deviations
- Insurance Fund
waEthUSDCbalance changes (esp. outflows viabring()) - Contract upgrades via BOTH TimelockControllers (
CallScheduled/CallExecutedevents on0x1dCcD4...for config changes and0x3D3C41...for implementation upgrades) - Multisig signer/threshold changes
EMERGENCY_AUTHORIZED_ROLE/OPERATOR_ROLEgrants/revokes on EmergencyController v2 (and on the future OperationalController once deployed)- Large withdrawal requests and redemption queue depth
- Aave V3 USDC utilization (affects idle reserve availability)
- DeFiLlama TVL series for 3Jane — sharp idle-reserve drops are an early signal of a strategy shutdown or mass redemption
Appendix: Contract Architecture
Governance Layer
┌─────────────────────────────────────────────────────────────────────┐
│ 3-of-5 Safe ──owns──► TimelockController (24h, config changes) │
│ 0x33333333… 0x1dCcD4628d… │
│ │ │
│ ├──owner──► MorphoCredit (proxy) │
│ ├──owner──► ProtocolConfig (proxy) │
│ ├──owner──► CreditLine (non-proxy) │
│ └──owner──► MarkdownController │
│ │
│ 3-of-5 Safe ──owns──► TimelockController (7d, upgrades) │
│ 0x33333333… 0x3D3C4141… (NEW — June 2026) │
│ │ │
│ ├──owner──► ProxyAdmin(USD3) 0x41c8… │
│ ├──owner──► ProxyAdmin(sUSD3) 0xecda… │
│ ├──owner──► ProxyAdmin(MorphoCr) 0x0b0…│
│ ├──owner──► ProxyAdmin(ProtConf) 0x2c4…│
│ └──owner──► ProxyAdmin(IRM) 0x5b79… │
│ │
│ EmergencyController v2 0x84b31b8… (AccessControlEnumerable) │
│ ├─ OWNER_ROLE: 3/5 Safe │
│ └─ EMERGENCY_AUTHORIZED_ROLE: 3/5 Safe + Hypernative EOA 0x48c5… │
│ ⇧ wired in as: ProtocolConfig.emergencyAdmin AND CreditLine.ozd │
│ │
│ [PENDING] OperationalController (PR #111 merged Apr 29 2026, │
│ included in v1.1.4 release but NOT yet executed onchain │
│ — would replace EC v2 above and add OPERATOR_ROLE) │
└─────────────────────────────────────────────────────────────────────┘
Token / Vault Layer (Yearn V3 TokenizedStrategy)
┌─────────────────────────────────────────────────────────────────────┐
│ USD3 (proxy) 0x056B269E… impl 0xb606fb37… (v1.1.4, upgraded) │
│ ▲ deposits USDC, mints USD3 │
│ │ shutdownStrategy() / emergencyWithdraw() / restartStrategy() │
│ │ ← all admin-callable; April 2026 incident exercised these │
│ sUSD3 (proxy) 0xf6895551… impl 0x529cbf11… (v1.1.4, upgraded) │
│ ▲ stake USD3, mint sUSD3, 1-month lock │
└─────────────────────────────────────────────────────────────────────┘
Protocol Layer (forked Morpho Blue)
┌─────────────────────────────────────────────────────────────────────┐
│ MorphoCredit (proxy) 0xDe6e08ac… ← market state, accruals │
│ ProtocolConfig (proxy) 0x6b276A2A… ← global params, emergency │
│ CreditLine 0x26389b03… ← borrower approval, │
│ repayment posting, │
│ settlement │
│ Helper 0x82736F81… ← borrower entry point │
│ AdaptiveCurveIRM(prox) 0x1d434D28… ← rate model │
│ MarkdownController 0xF0eaE710… ← default markdown decay │
│ InsuranceFund 0x4507B5B2… ← ~$1.02M waEthUSDC, │
│ .bring() ⇒ CreditLine │
└─────────────────────────────────────────────────────────────────────┘
Underlying / Offchain Layer
┌─────────────────────────────────────────────────────────────────────┐
│ Aave V3 USDC market ← base yield on idle (held as waEthUSDC │
│ 0xd4fa2d31…) │
│ Reclaim Protocol / zkTLS ← proofs of bank/credit data │
│ EigenLayer AVS ← proof distribution / verification │
│ Plaid + Credit Karma ← centralized offchain data sources │
│ Hypernative (offchain) ← monitoring agent that drives the │
│ EOA holding EMERGENCY_AUTHORIZED_ROLE│
└─────────────────────────────────────────────────────────────────────┘
Trust boundaries
- The 3-of-5 Safe is the PROPOSER/EXECUTOR/CANCELLER on both timelocks. The 24h timelock controls configuration (contract owners, parameter changes); the new 7-day timelock (
0x3D3C4141…) controls implementation upgrades (all five ProxyAdmins). Both timelocks are self-administered (DEFAULT_ADMIN_ROLEheld by the timelock itself). EmergencyController v2bypasses both timelocks for binary stop controls only (pause / set caps to zero / revoke a credit line). Both the multisig and the Hypernative agent EOA can invoke it.- The CreditLine contract trusts an
ozdfor credit-line approval / repayment posting / debt settlement; today this resolves to EmergencyController v2, which is the same address asemergencyAdmin. The pending OperationalController (PR #111) is the planned split. - The
restartStrategy()reinitializer added in PR #112 demonstrated that recovery from a Yearn V3 shutdown sits behind the timelock-gated upgrade path — now with the 7-day timelock, worst-case redemption-restart latency is at least 7 days (assuming the upgrade is already coded and ready to schedule).
Reassessment Triggers
- Time-based: Reassess in 2 months (August 2026) — shorter cadence given Elevated Risk tier and pending OperationalController deployment
- TVL-based: Reassess if
USD3.totalAssets()changes by more than ±30% from the June 2026 baseline of ~$27.09M, or if idle reserves drop below $1M for >24h (raised from $500K due to larger scale) - Shutdown-based: Reassess on any
USD3.isShutdown() = trueevent, with target turnaround <72h - Governance-based: Reassess once OperationalController (PR #111) is deployed onchain — this is a pending governance change with material impact on role separation
- Incident-based: Reassess after any borrower default exceeding $500K, any exploit, any further emergency shutdown, or any change to the multisig signer set
- Default-based: Reassess if default rate exceeds 5% of outstanding loans, or if the Insurance Fund
waEthUSDCbalance drops by >$100K - Audit-based: Reassess if additional audits are completed or a bug bounty is established (could improve score)
- Dependency-based: Reassess if Aave V3, EigenLayer AVS, or Hypernative experience significant security events
- Phase-based: Reassess when Phase 1 bootstrapping ends and full unsecured lending is active