TL;DR — the decision rule

Both funds hold the same asset (senior AAA CLO tranches, floating SOFR + spread, ~30%+ subordination, <0.1% historical default) and earn the same ~4% real carry at a rising NAV. They differ on the wrapper, not the asset — and the wrapper is the whole risk. JAAA caps theft behind a 4-of-9 Safe + 48h timelock and discloses its 22 CUSIPs against SEC EDGAR; STAC’s mint/burn/seize/pause/upgrade all sit on un-timelocked single Securitize keys with no protocol-layer backstop and no public holdings disclosure. On capital quality the two move in opposite directions: STAC is concentrating — Grove is now 99.8% of it as everyone else redeemed out — while JAAA is de-concentrating, its Grove anchor having redeemed ~$618M of its own seed (98% → 35% of the ETH leg) as a real, diversified open base grew ~17× into the gap. Net: at equal size JAAA is the safer wrapper today (custody + governance + transparency + a broadening holder base), and the binding constraint for either is the same — a curator-gated, off-chain-settled redemption beside one allocator: Grove, the Sky USDS allocator, is verified on-chain as the anchor of both funds (Ethena is a second in STAC), so both sit downstream of USDS/sUSDS redemption risk. Size against that anchor’s flows, not headline AUM.

Question

We now hold evals for two tokenized AAA-CLO funds — Securitize STAC and Janus Henderson / Anemoy JAAA. They are the closest peers in the book: same asset class, same BVI-fund-plus-tokenized-share structure, same curator-gated redemption shape. The recurring questions when either comes up for sizing are (a) which wrapper concentrates more risk, (b) how durable is the capital beside us, and (c) what the carry actually is net of cost. This study answers all three with side-by-side data so neither eval has to repeat it, and so a sizing decision on one can reference the other.

Methodology

Data sources & how to reproduce
  • On-chain series (data/stac-onchain-series.csv, data/jaaa-onchain-series.csv) — pulled with cast against an archive node at ~monthly blocks 2025-11 → 2026-06. STAC token 0x51c2…210fc (totalSupply, Grove balanceOf); JAAA Centrifuge ETH-Hub vault 0x4880…780B (totalAssets, convertToAssets(1e6) = pricePerShare) and JAAA share token 0x5a0F…cf64 (Grove balanceOf, to separate the anchor from open float). Reproduce: scripts/pull-onchain.sh (needs $ETH_RPC_URL).
  • Grove identity & USDS trace0x491e…a44e resolves to Grove’s ALMProxy: its current MainnetController 0xfd9d…a9f5 → AllocatorVault 0x2651… with ilk = ALLOCATOR-BLOOM-A (Grove’s Sky allocator name), funded by drawing USDS in the Sky vat (ilks(ALLOCATOR-BLOOM-A) → ~$2.65B drawn). The same ALMProxy holds both STAC and JAAA. All reads in pull-onchain.sh.
  • Chartsscripts/build-charts.py renders the SVGs from the CSVs.
  • Static spec / governance / fee / transparency data — from the two evals (each on-chain-verified at its review date) and their cited sources (rwa.xyz, BNY/Securitize/Centrifuge/Particula, SEC EDGAR). STAC’s NAV is off-chain (token exposes no NAV getter), so its NAV series is inception ($1,000, 2025-10-30) + current ($1,021, rwa.xyz 2026-06-24) only.
  • Assumptions: “open float” = non-anchor holders. For STAC: totalSupply − Grove. For JAAA: ETH-leg totalAssets − (Grove's JAAA balance × pricePerShare) — Grove’s Ethereum JAAA holding is subtracted, not just its Avalanche tranche (correcting an earlier draft that treated the whole ETH leg as open float). STAC $ figures use NAV ≈ $1,021/token; JAAA uses on-chain pricePerShare.

Findings

1. Same asset, same carry — different wrapper

Securitize STACJanus Henderson / Anemoy JAAA
AssetSenior AAA US CLO tranchesSenior AAA US CLO tranches
Issuer / fundSecuritize AAA CLO Tokenized Fund, Ltd (BVI)Anemoy Capital SPC (BVI, FSC Professional Fund)
Adviser / managerSecuritize Capital LLCAnemoy Asset Management
Sub-advisor (credit book)BNY Investments / InsightJanus Henderson Investors US LLC
CustodianBNY (Bank of New York Mellon)StoneX Securities
AuditorWithumSmith+Brown (annual)MHA Cayman (annual)
AdministratorSecuritize Fund ServicesTrident Trust (Cayman)
Token / standardDS-Protocol ERC-20 (UUPS proxy), 6 decERC-7540 async vault share, 6 dec
Issuance railsSecuritize (proprietary)Centrifuge v3 (Hub-and-Spoke, 6 chains)
ChainsEthereum + SolanaEthereum (Hub) + 5 spokes
Inception2025-10-30 (~8 months)mid-2025 (~12 months)
Independent ratingnoneParticula AAA (Nov-2025; assume paid)

Identical economic engine; the differences are all in how the share is issued, governed, and disclosed.

2. Governance & key-compromise — STAC is strictly more centralized

STACJAAA
Admin structureSingle bare MASTER EOA + ISSUER keysSingle pool-manager EOA (flow) + protocol Safe (upgrades)
Timelocknone48h Root timelock on upgrades
Multisignone4-of-9 Centrifuge Protocol Safe
Funds threshold (theft / unbacked mint / burn)1 key — ISSUER mints/burns; MASTER seizes/upgrades4-of-9 + 48h (or a multi-DVN bridge compromise)
Liveness threshold (freeze / NAV distortion / forced exit)1 key (MASTER)1 key (pool-manager EOA)
Single point of failureYes — both tiersLiveness only; theft needs 4-of-9
Upgrade pathUUPS, MASTER-gated, instantBehind 48h Root timelock
AuditsDS-Protocol (issuer-level)19 V3 reviews (Cantina/Spearbit, Sherlock, …)

The eval claims here were re-confirmed in a Tenderly mainnet-fork simulation (2026-06-24): impersonating STAC’s real MASTER/ISSUER EOAs, pause(), burn(holder,…), and issueTokens(…) each succeeded with no signature, no timelock, no second signer. JAAA’s theft path provably requires the 4-of-9 Safe to clear the 48h Root delay.

3. Capital retention & anchor concentration — STAC concentrating, JAAA diversifying

Grove (Sky) anchor as a share of each fund's Ethereum leg, on-chain, Nov 2025 – Jun 2026

How to read this. Both funds are dominated by one holder that doesn’t trade day-to-day — the anchor, which in both cases is Grove, the Sky ecosystem’s USDS credit allocator (verified on-chain — Finding 6). This chart is the anchor’s share of each fund’s Ethereum leg over time. A rising line means everyone else is leaving and the fund is collapsing into its anchor; a falling line means the opposite — other investors are arriving, or the anchor itself is exiting. It’s a concentration gauge, not a measure of withdrawable liquidity (exit is a gated off-chain queue either way — see the Transparency & exit table; and a co-redeeming anchor actually worsens your liquidity by forcing CLO sales into that same queue).

The two funds are moving in opposite directions:

Retention metricSTACJAAA
Holders515
Grove anchor share (ETH leg)99.8%, rising (from 94%)35%, falling (from 98%)
Open (non-anchor) float, peak → now~$6.3M → ~$0.2M (−97%)$14M → **$241M (+17×)**
Grove (anchor) position$100M, flat$748M → $130M ETH (−83%) + $250M Avalanche
Other anchorEthena $250M (Solana)
Directionconcentrating into anchordiversifying away from it
Crisis track recordnone (8 mo, untested)absorbed Grove’s ~$618M exit at a rising NAV, no markdown

A snapshot of where the money sits today shows the shared anchor and the divergence:

Current AUM by anchor — Grove/Sky is the same anchor in both funds

STAC is ~100% two anchors (Grove + Ethena); JAAA is ~60% Grove + ~40% open — and that 40% is the fast-growing diversified base. The decisive point is the navy block: Grove/Sky anchors both funds — ~$102M in STAC and ~$380M in JAAA ($130M Ethereum verified + a ~$250M Avalanche tranche, eval-sourced). So the pair is not diversification — holding both stacks correlated Grove/Sky exposure through one decision-maker, and (Finding 6) downstream of USDS itself.

4. NAV accrual — real carry, never marked down

NAV per share since inception — JAAA on-chain daily vs STAC off-chain endpoints

Both NAVs rose monotonically across the entire window — including through JAAA’s −82% drawdown — confirming the capital flight in Finding 3 was redemptions, not losses. JAAA’s pricePerShare is on-chain and daily; STAC’s NAV is off-chain (no on-chain getter; an announced Chronicle Proof-of-Asset feed is unverified), so only the inception/current endpoints are observable. The two lines start at different levels only because JAAA launched ~3 months earlier (its NAV had already accrued to 1.015 by the time STAC was born).

To compare the yield itself, the next chart rebases both to 0% at their own first reading — so the slope is the realized return, regardless of when each launched:

Cumulative NAV return rebased to a common 0% start

Over a comparable ~7–8-month window JAAA realized +2.31% (≈4.0% annualized) vs STAC’s +2.10% (≈3.2% annualized) — JAAA’s carry is modestly higher and steeper. Both are real AAA-CLO coupon (SOFR + spread), not emissions. (These are realized historical returns, not forward yields; STAC’s is a two-point off-chain line, JAAA’s a daily on-chain curve, so treat the STAC slope as an average, not a path.)

5. Cost — STAC is cheaper to hold, dearer to exit

Expense ratio and redemption fee, STAC vs JAAA

There are only two fee types that actually bite. The expense ratio is the all-in annual drag — it already bundles the management fee (STAC’s 0.30% management is a component of its 0.40% all-in; JAAA’s 0.50% is its all-in the same way), plus admin/custody/audit. Both funds charge 0% performance and 0% subscription, so there’s no separate management-fee bar to add — the expense ratio is the comparable, and STAC’s (0.40%) undercuts JAAA’s (0.50%). The second charge is the exit toll: STAC’s 2.00% redemption fee vs JAAA’s none. So STAC is cheaper to hold but materially more expensive to exit — at a ~3–4% gross carry, a single round-trip in STAC inside ~6 months is net-negative on the redemption fee alone.

FeeSTACJAAA
Expense ratio (annual, all-in)0.40% (incl. 0.30% mgmt)0.50%
Performance fee0%0%
Subscription fee0%0%
Redemption fee2.00%0%

6. The shared anchor, traced — Grove is the Sky USDS allocator, and it anchors both funds

The most important finding, now verified end-to-end on-chain (block 25,388,574):

Sky USDS → AllocatorVault 0x2651… (ilk = ALLOCATOR-BLOOM-A — “Bloom” is Grove’s Sky allocator name) → MainnetController 0xfd9d…a9f5Grove ALMProxy 0x491e…a44e → holds 100,000 STAC ($102M) + 124.8M JAAA ($130M) on Ethereum.

7. Transparency & exit mechanics

STACJAAA
On-chain NAVnone (off-chain; Chronicle PoA unverified)daily on-chain (pricePerShare)
Proof-of-reservenonenone (annual audit only)
Holdings disclosurenone public22 CUSIPs via IPFS; 18 cross-checked to SEC EDGAR
Subscriptioninstant on-chain USDC→STAC swapERC-7540 async requestDeposit
Redemptiondaily request, off-chain T+2/T+3 (not guaranteed)async requestRedeem → manual approveRedeems, T+3
On-demand poolGP-discretion; ~$1k USDC (unfunded)none
Secondary marketnone (KYC-gated)none (KYC-gated); is Aave Horizon collateral
Defensible size (per eval)$10M (provisional)$15M

Decision framework

This framework stops applying when: STAC hardens its keys (adds a timelock/multisig — re-rate immediately) or ships a verifiable on-chain NAV/PoR (the Chronicle feed going live and readable); JAAA’s recovery reverses (open float rolls back toward the March trough); or the shared Grove/Sky anchor materially exits either fund. Any of these → re-run.

Caveats