TL;DR

How it works

USDC subscriptions enter through an ERC-7540 async vault (0x4880…780B) that mints JAAA, a permissioned KYC-gated ERC-20 share token (6 decimals). The fund is Anemoy Capital SPC (BVI, FSC-regulated Professional Fund, bankruptcy-remote segregated portfolio); Anemoy Asset Management is the investment manager and Janus Henderson Investors US LLC the sub-investment manager. It is issued on Centrifuge v3 (Ethereum is the Hub; Base, Arbitrum, Avalanche, BNB Chain and Stellar are spokes). Administrator is Trident Trust (Cayman), auditor MHA Cayman, custodian StoneX Securities; Particula rated it AAA in November 2025.

Subscriptions are deployed off-chain into named AAA-rated US CLO tranches (CUSIPs disclosed via IPFS metadata), custodied at StoneX. Both the holdings count and the custodian identity are carried forward from the June review and were not re-verified this pass — a spot check suggests the live IPFS metadata now lists materially more than the 22 CUSIPs previously recorded, and “StoneX” does not appear in the pool’s on-chain-referenced metadata at all. Re-pull both before relying on Risk #2’s framing. CLO AAA tranches sit at the top of structured-credit waterfalls over diversified pools of senior secured loans to BB/B-rated US corporates, protected by ~30% subordination — the AAA layer’s historical default rate is below 0.1% (S&P/Moody’s, 1996–2024). Traced to its root the position is corporate-loan credit: the AAA tranche is the senior slice of a single leveraged structure (the CLO waterfall), with no additional on-chain leverage, looping, or yield-stripping layered on top — that waterfall is the only amplifier between a borrower default and the NAV. Coupons are floating-rate (SOFR + 100–150bps, quarterly reset); the share class accumulates, so NAV rises with net total return after the 0.50% expense ratio. The only same-day-verifiable yield figure is on-chain NAV (pricePerShare(), which equals convertToAssets(1e6)) — it implies ~3.5% annualized over the trailing 30d and ~3.7% over 180d (2026-07-21); the published target/marketing figures (4.26% IPFS target, 5.7% brochure) measure different things, are not same-day verifiable, and now sit well above what the chain shows.

Daily NAV is published cross-chain by the pool-manager EOA (0x7Bf090…02eC), the only registered manager for pool 7. Protocol contracts (vault, share token, Root permissions) are separately governed by a 4-of-9 Safe behind a 48h Root timelock, so a compromised manager key can distort pool-level flow but cannot upgrade or burn. Exit is ERC-7540 async: requestRedeem → the EOA batch-approves via approveRedeems → Janus Henderson liquidates at StoneX → USDC settles (T+3, not enforced on-chain). There is no secondary market (the KYC hook 0x3C5E7B28…680A7 blocks non-allowlisted transfers); JAAA is, however, an allowlisted collateral asset on Aave Horizon (collateral-only — borrowers draw stablecoins against it), so a Horizon liquidation or loop unwind routes back through this same redemption path (Risk #3).

Capital base: seeded with ~$1B from Sky/Grove (Centrifuge) — Grove (the Sky USDS allocator; ALMProxy 0x491e…a44e, ilk ALLOCATOR-BLOOM-A) held ~$748M of JAAA on Ethereum plus a 250M-token Avalanche tranche. Between Jan and Mar 2026 Grove redeemed its Ethereum position to ~$130M (−83%) — this is the bulk of the ETH-leg AUM decline, not open-investor flight; the Avalanche tranche is unmoved. But the leg did not de-concentrate: the non-Grove balance that grew into the gap is 83% a single never-transacted EOA holding 53.9% of the leg, so Grove was replaced by a second anchor and genuinely diversified float is only ~$25M (Risk #3, and the holder table under Liquidity & exit). The same Grove ALMProxy also anchors Securitize STAC — a shared Sky/USDS exposure across both funds.

Risks

Verified on-chain (2026-07-21, block 25,582,684): NAV, share price and its staleness, JAAA supply, the KYC hook’s transfer block, pool-7 manager registry and its full UpdateManager event history, Root delay, the 4-of-9 Safe threshold/owners/modules, escrow balance, the Avalanche leg, and a complete holder enumeration of the Ethereum leg. Audit library enumerated via the GitHub API. Carried forward and NOT re-verified this pass — treat as unconfirmed: the CUSIP count and SEC-EDGAR cross-check, StoneX as custodian, the MultiAdapter’s sub-adapter composition, the Aave Horizon supply cap, and the Mar-2020 CLO-spread and AAA-default-rate figures (all uncited). Taken on trust: the off-chain CLO portfolio itself, Particula’s rating, and the annual MHA Cayman audit.

#RiskMechanismSource + our delta
1Single-EOA pool manager controls NAV, redemptions and the KYC gate — and it just became more concentrated0x7Bf090…02eC is the only registered manager for Centrifuge pool 7 (HubRegistry manager(pool7, …) = true, 2026-07-21). This is 32 days old, not a stable configuration: pool 7 had a second manager — a 3-of-8 Safe (0x742d10…be1e, the pool’s creator) — until an UpdateManager event at block 25,352,436, 2026-06-19 15:11 UTC, set canManage = false, sent from the EOA itself. State trace confirms it (true at 25,352,435 → false at 25,352,436). Governance moved toward the single key inside this review window. One key publishes daily NAV, approves or denies deposits and redemptions, and edits the allowlist; NAV liveness also depends on it (if it goes silent, convertToAssets() returns a stale price). The same NAV also prices JAAA collateral on Aave Horizon, so a distorted push moves a second venue’s liquidations too. It cannot upgrade contracts or mint/burn — that routes through the 48h-timelocked Root. Trigger: exit on an EOA→contract code change, registration of a second/replacement manager, NAV staleness >48h, or any unrecognized NAV move.Same single-key pattern we F-rated Kiln Railnet for; here the regulated wrapper plus the protocol-layer 4-of-9 Safe cap the blast radius to pool-level flow. Open: whether the key is MPC-custodied (Anchorage/Fireblocks/Copper) or a raw hot wallet — ask Anemoy.
2Off-chain custodial backing with no on-chain proof-of-reserve~$373M of Ethereum-side backing (2026-07-21) sits at StoneX (a single NYSE-listed broker-dealer, not a top-tier custody bank) in 22 AAA-CLO tranches plus ~7% cash; on-chain escrow holds only dust ($822, 2026-07-21; has ranged $0.8K–$25K). The audit is annual (MHA Cayman) and there is no on-chain PoR, so a principal impairment or custodian freeze is invisible until the next daily NAV push. Trigger: a StoneX custody-arrangement change, a slipped audit cycle, or a BVI FSC license change.The prior review claimed “all 22 CUSIPs cross-checked against SEC EDGAR, 18/22 in the Janus Henderson AAA CLO ETF NPORT-P (CIK 0001500604)”. That cross-check does not reproduce — the holdings count appears to have changed materially and CIK 0001500604 is the registrant trust (hundreds of filings across many series), not a clean 1:1 match to this fund. Treat the transparency advantage as unverified until re-derived; the custodian identity is likewise carried forward, not re-confirmed. Still single-custodian and curator-gated on redemption.
3Curator-gated redemption & demonstrated capital flight — no secondary marketExit is ERC-7540 async: requestRedeem burns to a request, then the pool-manager EOA must batch-approve and settle off-chain at StoneX (T+3, no on-chain forcing function); JAAA has zero DEX liquidity (KYC-gated), so there is no backup path. This gate already absorbed a Grove-scale redemption: Grove — Sky’s USDS ALMProxy 0x491e…a44e — redeemed ~$618M of its Ethereum JAAA ($748M→$130M, Jan–Mar) at a rising NAV, and its remaining ~$130M has been untouched since ≥2026-06-09. But the capital that replaced it is a second anchor, not diversified demand: a bare EOA (0x5d2c…d03b, nonce 0, never transacted) holds 53.9% of the leg. Two anchors now sit ahead of $25M of genuinely diversified float in the same queue. A leveraged Resolv loop on Aave Horizon ($17.1M live, verified on-chain as the #3 JAAA holder) redeems through this same gate — a co-redeemer ahead of us under stress. The “$100M cap” the prior eval cited is not the on-chain figure; the Horizon SupplyCap is materially lower, so the loop has far less headroom than stated and is much closer to its ceiling — re-read the cap before sizing against it. Trigger: redemption stalls >7d, or totalSupply/totalAssets drop >25%/24h.Same concern as Kiln Railnet / Lagoon vaults; mitigated by the regulated structure (Trident Trust + MHA Cayman + BVI continuity), not by code. The capital-flight history (retention lens) and the Horizon co-redeemer (contagion lens) are facets of this exit risk, folded here rather than as separate rows.
4CLO mark-to-market volatility in stressThe underlying is sub-IG leveraged loans, AAA-tranched (~30% subordination). In the March-2020 shock AAA-CLO spreads widened roughly 117bps to a ~250bps level (the prior eval’s “200+bps widening” conflated the move with the level) and primary issuance froze ~6 weeks; NAV would reflect a ~3–5% markdown at the next daily push. This row’s spread and default-rate figures are uncited secondary recollection — attach a source before relying on them. Janus Henderson can rotate positions but cannot exit the asset class. Trigger: warn on NAV drop >0.5% intra-day, page on >2% in 24h.AAA tranches recovered fully by year-end 2020; the tail is bounded by structural subordination, not a wipeout. Historical AAA-CLO default rate <0.1% (S&P/Moody’s, 1996–2024).
5Centrifuge protocol and cross-chain bridge surfaceProtocol upgrades route through a 4-of-9 Gnosis Safe (0x9711…D225, getThreshold() = 4 of 9 owners) and ProtocolGuardian behind a 48h Root timelock (delay() = 172800, both re-verified 2026-07-21). JAAA spans 6 chains via a Hub-and-Spoke MultiAdapter (0x35C837F0…073BE; Wormhole + Axelar + LayerZero); a bridge zero-day or adapter reconfiguration could mint unbacked JAAA on a spoke. Trigger: page on Root pause, delay() cut below 48h, Safe threshold below 4, or any MultiAdapter sub-adapter change.Centrifuge docs claim a 24h Zodiac Delay module for a 72h aggregate window; on-chain getModulesPaginated() = []no module installed, effective delay is 48h not 72h (verified 2026-07-21). Audit library enumerated via the GitHub API (2026-07-21): 25 reports through 2026-04 — Cantina ×4, burraSec ×7, yAudit ×4, xmxanuel ×4, Sherlock ×3, plus Code4rena, SRLabs, Spearbit, Recon. $250K Cantina bounty live.

Key-compromise threshold

Liquidity & exit

Primary path: ERC-7540 requestRedeem(shares, owner, operator) → pool-manager EOA 0x7Bf090…02eC batches via approveRedeems → Janus Henderson liquidates AAA-CLO positions at StoneX → USDC settles (through the “CB-B” Coinbase-Prime sub-account 0x3066a008…b0b1). T+3 target, no on-chain forcing function. Settlement asset is USDC (vault.asset()). Backup path: none — zero JAAA on UniV2/V3/V4, Balancer or Curve (balanceOf = 0, 2026-06-01); the KYC hook structurally blocks AMM liquidity, and on-chain escrow is dust, so there is no pre-funded buffer like Ondo USDY’s $30M or Maple’s $58M.

On-chain reads (cast + $ETH_RPC_URL, 2026-07-21, block 25,582,684): vault.totalAssets() = 372,611,656 USDC; pricePerShare() = convertToAssets(1e6) = 1,041,654 ($1.041654/JAAA); priceLastUpdated() = 1,784,548,800 (Mon 2026-07-20 12:00 UTC — 29.8h old, inside the 48h trigger; contrast the 99h staleness episode seen on 2026-06-02, which resolved by 2026-06-03); JAAA.totalSupply() = 357,711,229 (≈ $372.6M); Root.delay() = 172,800 (48h); Safe getThreshold() = 4 of 9, getModulesPaginated() = [] (still no Zodiac module — effective delay remains 48h, not the documented 72h); pool-7 escrow USDC.balanceOf = $822 (dust).

Retention reads (cast, refreshed 2026-07-21): Ethereum totalAssets() $765.9M (2 Jan, peak) → $139.0M (1 Apr, trough) → $370.8M (24 Jun) → $372.6M (21 Jul) — flat for a month; pricePerShare() 1.000285 (Aug 25) → 1.041654 (Jul 26), rising throughout (no markdown). Grove’s Ethereum JAAA ran 737M tokens (Nov–Dec) → 443M (Jan) → 125M (Mar+), a ~$618M redemption of its own tranche.

Full holder enumeration (2026-07-21) corrects the retention read the prior review published. The ETH leg’s 357.7M JAAA decomposes as:

HolderJAAA$% leg
0x5d2c428e…dd03bbare EOA, codesize 0, nonce 0 (has never sent a transaction)192.87M$200.9M53.9%
Grove ALMProxy 0x491e…a44e124.81M$130.0M34.9%
0xb0ec6c44…c876 — Aave Horizon / Resolv loop16.43M$17.1M4.6%
everything else (11 addresses)23.60M$24.6M6.6%

So the $243M of “open float” the prior review celebrated is 83% a single passive anchor that replaced Grove, not diversified subscribers. Genuinely diversified float is **$25M**. The de-concentration story is wrong: the leg swapped one anchor for another. Both anchors are static — Grove unmoved since ≥2026-06-09, Avalanche (share token 0x58f93d6b1ef2f44ec379cb975657c132cbed3b6b) flat at totalSupply 250,000,001. Cf. Risk #3. The STAC↔JAAA comparison study carries the superseded framing (its “17×” open-float growth line and retention/composition charts) and needs the same correction.

Defensible size at current liquidity (post-haircut): $10M — cut from $15M. Redemption settles at NAV, not a market price, so depth is not the binding constraint; queue position behind anchors is. The denominator that matters is not the $633M two-leg AUM ($390M of which is Grove) and not the ~$243M “open float” the prior review used — full holder enumeration shows that float is 83% a single never-transacted EOA. Genuinely diversified float is ~$25M, against which even $10M is ~40% and the old $15M was ~61%. Two anchors — Grove and the 53.9% EOA — can each put a multiple of our position into the same curator-gated queue ahead of us, with no on-chain forcing function. Size against the diversified float and the settlement path, not headline AUM. The rubric haircut applies to latency, not slippage: T+3 normal → ~9 days under a 3× stress stretch. AAA-CLO secondaries can stress-widen 200+bps (Mar-2020), but the fund redeems at NAV, so the binding constraint is the curator-gated, no-secondary exit — the whole position must be tolerable to lock for weeks under stress. Prerequisite: the GnosisDAO wallet must be KYC-enrolled and added to the JAAA allowlist via the pool-manager EOA before any deposit; it cannot be done during a crisis.

Stress scenario (NOCA exits 50% / $7.5M in 7d while peers redeem): a Mar-2020-style shock marks NAV down ~3–5% and froze primary issuance ~6 weeks, so $7.5M — small against AUM — is latency-bound not depth-bound, locked for weeks at a marked-down NAV. Size the aggregate curator-gated RWA bucket, not JAAA in isolation.

Stress scenario (Aave Horizon loop unwind): the Resolv loop (~$17.1M live) is leveraged JAAA priced off the single-EOA NAV, so a down-NAV push or stablecoin-rate spike forces it to redeem through the same gate — a leveraged co-redeemer ahead of us in the queue, and at ~$17M it is comparable in size to the entire diversified float (Risk #3).

External reviews

Source links for the third-party takes in the Risks table. Per rubric.md, reviews older than 90d (⚠) are stale — refresh before relying.