SOFI WEALTH, LLC

$2.1B reported 13(f) long value · latest quarter 2026-03-31 · CIK 0001925582 · EDGAR ↗
A quarter-end snapshot. Filed up to 45 days later, so this page is not current holdings and never a complete portfolio. what a 13F is — and is not ↓ · methodology §13F ↗
Period
$2.1B
reported valuesum of disclosed values for 2026-03-31; 0 positions carry a NULL value and are excluded from the sum, surfaced here rather than folded away
52
positionsALL retained default holdings for this (filer, period), including NULL-value ones
3
new stakespositions with no comparable holding in the prior quarter (kind new), 2026-03-31
1
exitspositions absent from this quarter's filing after being held last quarter (kind exit), 2026-03-31 — inferred from absence, not a sale record

Position changes — into 2026-03-31

by shares · Δ value · filing link · how changes are classified §
Position changes into quarter 2026-03-31
Positionposition matched across quarters by exact reported CUSIP over a registry gap — producer-reconciled identity, never a name match identity_reconciled_by_cusipChangethe reported share count is unchanged across the pair, so the position reads as held rather than as a buy or a sell; only builds before this release inferred a direction from the reported value instead classified_by_value · "exit" = absent this quarter: disposed, delisted, under confidential treatment, or reported instead by an affiliated manager — the filing does not say which · change not classifiable: value undisclosed on one side of the quarter pair, or neither shares nor value can classify it · "no change" = the share count is identical in both quarters; the value moved only with price, so the row is mark-to-market and never an add or a trim (Add / New / Trim / Exit / No change) · "no prior" = this filer has no comparable holdings list for the previous quarter on record — a first filing under this registration, or a quarter reported inside an affiliated manager's filing — so the position is not called a new stakeΔ valuederived by Public Filings from the published aggregate; NULL means the source did not disclose a usable value — never zeroΔ sharesreported unit changed across the pair (SH↔PRN); the share delta is withheld rather than fabricated shares_unit_mismatchPrev valueCurr valuePrev sharesCurr sharesFlags
ISHARES TR S&P 500 GRWT ETFposition key pos:14621 · issuer key iss:1231add−$4.9M+145,081$259M$254M2,104,0882,249,169
TIDAL ETF TR SOFI SELECT 500position key sid:sec:prov:24bb65f8d8f39edcf23d24b97e1756d3 · issuer key cusip6:886364add+$1.7M+110,408$217M$219M1,643,9451,754,353
ISHARES TR CORE S&P500 ETFposition key pos:11149 · issuer key iss:1231trim−$15.8M−8,200$226M$210M330,274322,074
BLACKROCK ETF TRUST ISHARES US EQUITposition key pos:12126 · issuer key iss:400add+$4.1M+222,910$206M$210M3,389,8513,612,761
ISHARES TR S&P 500 VAL ETFposition key pos:14782 · issuer key iss:1231add+$18.8K+4,340$207M$207M975,625979,965
VANGUARD INTL EQUITY INDEX F FTSE EMR MKT ETFposition key sid:sec:prov:2727b63284f6235da134480881be8949 · issuer key cusip6:922042trim−$3.2M−72,302$138M$135M2,565,8832,493,581
ISHARES TR ISHARES INTL CTRposition key pos:16701 · issuer key iss:400new+$106M+3,311,784$0$106M3,311,784
BLACKROCK ETF TRUST ISHARES A I INNOposition key pos:18714 · issuer key iss:400add+$3.8M+140,925$82.0M$85.8M2,461,7272,602,652
BLACKROCK ETF TRUST ISHARES US THEMAposition key pos:16968 · issuer key iss:400add+$1.8M+187,084$81.7M$83.5M2,118,5922,305,676
VANGUARD TAX-MANAGED INTL FD FTSE DEV MKT ETFposition key pos:18321 · issuer key cusip6:921943trim−$23.9M−413,573$100M$76.6M1,608,3901,194,817
ISHARES TR CORE TOTAL USDposition key sid:sec:prov:df074602715c1ffe206222b8ce0c038f · issuer key cusip6:46434Vadd+$15.6M+346,365$56.2M$71.8M1,207,3991,553,764
ISHARES TR EAFE VALUE ETFposition key pos:13416 · issuer key iss:1232trim−$6.5M−131,090$77.7M$71.1M1,087,844956,754
ISHARES TR NATIONAL MUN ETFposition key pos:17458 · issuer key iss:1232trim−$1.8M−10,892$67.7M$65.9M631,789620,897
GLOBAL X FDS DEFENSE TECH ETFposition key sid:sec:prov:7555a3502d14480cbcdc0e8467fc6393 · issuer key cusip6:37960Atrim+$1.5M−46,042$51.2M$52.7M790,079744,037
INVESCO EXCH TRADED FD TR II NATL AMT MUNIposition key pos:15257 · issuer key cusip6:46138Eadd+$34.4M+1,502,814$11.1M$45.6M480,4721,983,286
ISHARES TR EAFE GRWTH ETFposition key pos:17570 · issuer key iss:1232trim−$18.1M−150,106$60.2M$42.2M528,835378,729
VANGUARD SCOTTSDALE FDS MTG-BKD SECS ETFposition key sid:sec:prov:3e8440a4e05faf828ae027dc10359b61 · issuer key cusip6:92206Cadd+$6.5M+139,605$32.6M$39.1M692,870832,475
SPDR SER TR PORTFOLIO LN TSRposition key pos:12339 · issuer key iss:1900trim−$7.5M−276,737$37.5M$30.0M1,415,8281,139,091
ISHARES GOLD TR ISHARES NEWposition key pos:12728 · issuer key iss:1230trim−$1.3M−36,461$22.5M$21.3M277,571241,110
BLACKROCK ETF TRUST US CARBON TRANSposition key pos:13271 · issuer key iss:400add+$1.3M+23,873$7.2M$8.5M97,609121,482
ISHARES TR MSCI KLD400 SOCposition key pos:15230 · issuer key iss:1232add+$766K+8,482$4.4M$5.2M34,30842,790
ISHARES TR ESG MSCI USA ETFposition key sid:sec:prov:1c18e501486a7db35962bd4fa7865f72 · issuer key cusip6:46436Eadd+$667K+14,616$3.4M$4.1M58,85173,467
ISHARES TR 0-5 YR TIPS ETFposition key sid:sec:prov:3810be70acbc4a9e01193709ab22fd3e · issuer key cusip6:46429Badd+$313K+2,712$3.2M$3.5M30,86433,576
ISHARES TR ESG ADV TTL USDposition key sid:sec:prov:c6e2202ebc654c5b1f4fac89a3cfebbf · issuer key cusip6:46436Eadd+$901K+21,255$2.5M$3.4M57,38678,641
BLACKROCK ETF TRUST II ISHARES FLEXIBLEposition key pos:12491 · issuer key iss:393add+$362K+7,877$3.0M$3.3M56,24564,122
ISHARES TR ESG AWR MSCI USAposition key sid:sec:prov:b488cb5faaba6d66a8a9fd5a3f84f4af · issuer key cusip6:46435Gadd+$502K+4,547$2.8M$3.3M18,58523,132
ISHARES TR ESG EAFE ETFposition key sid:sec:prov:ed61b4e85062877250168c9b7450abc0 · issuer key cusip6:46436Eadd+$485K+6,320$2.0M$2.5M27,27033,590
ISHARES TR SYSTEMATIC BD ETposition key sid:sec:prov:36f92405aaa104302c8dfa34a53ec3ba · issuer key cusip6:46435Unew+$2.5M+27,556$0$2.5M27,556
ISHARES INC ESG AWR MSCI EMposition key pos:17301 · issuer key iss:1235add+$530K+10,606$1.6M$2.2M36,75747,363
ISHARES TR ESG AWR US AGRGTposition key sid:sec:prov:dc75c9764218133658da2251c207ddb8 · issuer key cusip6:46435Uadd+$491K+10,553$1.7M$2.1M34,63345,186
ISHARES BITCOIN TRUST ETF SHS BEN INTposition key pos:16460 · issuer key iss:1237add+$459K+20,574$1.5M$1.9M29,48650,060
ISHARES TR CONV BD ETFposition key sid:sec:prov:6fc893e698af684b99e89bc4cb5eb170 · issuer key cusip6:46435Gnew+$1.6M+15,308$0$1.6M15,308
BLACKROCK ETF TRUST WORLD EX US CARBposition key pos:11612 · issuer key iss:400add+$263K+4,515$1.2M$1.5M22,04426,559
ISHARES TR ESG AWRE USD ETFposition key sid:sec:prov:2e93ba79289665ac776a0bbc4f2b0f1a · issuer key cusip6:46435Gadd+$275K+12,342$1.0M$1.3M44,05056,392
GLOBAL X FDS US INFR DEV ETFposition key sid:sec:prov:58c5537198ddc1f7386eaaf94c8d6db4 · issuer key cusip6:37954Yadd+$164K+2,394$677K$841K14,16316,557
ISHARES TR ESG AWRE 1 5 YRposition key sid:sec:prov:6004cb0856cddd0fe92010e50a829b42 · issuer key cusip6:46435Gadd+$22.3K+901$43.5K$65.7K1,7222,623
ISHARES TR U.S. TECH ETFposition key pos:12367 · issuer key iss:1231add−$4.5K+3$55.2K$50.8K277280
ISHARES TR HIGH YLD SYSTM Bposition key sid:sec:prov:38581c738edfe91a65873f0736808fbd · issuer key cusip6:46435Gtrim−$15.2M−321,732$15.3M$31.5K322,409677
ISHARES INC MSCI EMRG CHNposition key pos:13228 · issuer key iss:1235trim+$1.2K−8$23.2K$24.4K319311
BLACKROCK ETF TRUST II ISHARES HIGH YIEposition key pos:11372 · issuer key iss:393trim−$15.3M−314,034$15.3M$23.2K314,517483
ISHARES TR HDG MSCI EAFEposition key sid:sec:prov:d27f2c722aeaa22848f78d13de53539a · issuer key cusip6:46434Vadd+$344+2$9.7K$10.1K235237
ISHARES TR ISHS 1-5YR INVSposition key pos:15112 · issuer key iss:1232trim−$1.9M−35,485$1.9M$9.7K35,669184
VANGUARD BD INDEX FDS SHORT TRM BONDposition key pos:11830 · issuer key cusip6:921937trim−$5.5K−69$13.1K$7.6K16697
VANGUARD INDEX FDS SMALL CP ETFposition key pos:18141 · issuer key cusip6:922908trim−$2.1K−9$8.8K$6.6K3425
ISHARES TR 10+ YR INVST GRDposition key sid:sec:prov:26536a2d18460965012ca6235b207932 · issuer key cusip6:464289trim−$1.5M−29,195$1.5M$6.0K29,317122
VANGUARD BD INDEX FDS TOTAL BND MRKTposition key pos:18883 · issuer key cusip6:921937trim−$13.4K−180$17.1K$3.8K23151
ISHARES TR SHRT NAT MUN ETFposition key pos:18513 · issuer key iss:1232trim−$119K−1,111$122K$3.2K1,14130
ISHARES TR GLOBAL ENERG ETFposition key pos:12767 · issuer key iss:1231add+$1.2K+10$1.7K$2.9K4151
ISHARES TR CORE MSCI EAFEposition key sid:sec:prov:f1fd766d326ca552a85c000a4415c3d6 · issuer key cusip6:46432Ftrim−$1.1K−13$3.5K$2.4K4027
VANGUARD MALVERN FDS STRM INFPROIDXposition key sid:sec:prov:fd0585629cc2c56c522b14f4ca767dfd · issuer key cusip6:922020trim−$1.4K−29$2.7K$1.3K5526
ISHARES TR IBOXX HI YD ETFposition key pos:13632 · issuer key iss:1232trim−$1.1K−13$2.2K$1.1K2714
VANECK ETF TR HIGH YLD MUNIETFposition key pos:18802 · issuer key cusip6:92189Htrim−$96−2$1.1K$1.0K2220
sid:sec:prov:2ec2ea6cb9f025f3815a5dceffa88d19exit‡e−$11.4K−700$11.4K$0700

33 more changes below.

Quarter ended 2026-03-31Newest filing in this build: 2026-07-31. Per-row filing dates are on each receipt.
Truncated by Public Filings. Changes derive from the aggregate's top-25 slices and keyable positions only; unkeyable holdings are counted in the registry, not differenced. methodology §13F ↗

Book shape

2026-03-31 · concentration · vs tracked median · tick = median
Top-25 concentration
99.0%above median 80.0%
Concentration index
737 bpsabove median 446 bps
Positions with value
52 / 52median book 97.5 positions

Concentration uses reported 13F long value, not total assets. The index is withheld when any position lacks a value. Medians are over the 8,748 tracked filers with a 2026-03-31 book; the index median over the 8,662 with a complete book.

null-value positions: 0holdings whose <value> did not parse — retained and counted, never zero-filled · top-N share ·§: 99.0%share of the period's disclosed value held in the top-N positions; denominator is reported 13F value, not total assets · HHI (bps) ·§: 737integer Herfindahl–Hirschman index in basis points over disclosed position values · QoQ moves: 53

Filing history

AVAILABLE QUARTERS
Available filing periods
PeriodSource
2026-03-31EDGAR ↗

PLANNED sector rotation · Congress overlap · signals for this filer

Complete source filings on SEC EDGAR

The complete filing on EDGAR.

The position list above is served from the published Public Filings build — every position this filer reported for the selected quarter, as it reported it. This block is provenance, not a substitute: the filing itself is the record, and it is one click away. Serving this list is M2-CONTRACT §3, amended 2026-08-02; §3.1 keeps live EDGAR for filings newer than this build.

Open SOFI WEALTH, LLC's 13F filings on SEC EDGAR ↗
Notes on this data

Quarter-end holdings as filed

Explore the full published position list and its source filing. This record excludes the manager’s cash, shorts and non-13(f) assets.

Compare consecutive quarters

Position changes retain the producer’s classification and comparability flags. Share counts and reported values describe different changes.

A snapshot, not current holdings

Use the quarter selector to inspect available periods. Unknown values stay unknown and each table states its coverage.

View
Prior quarter not yet availableThis build carries one quarter for this manager: 2026-03-31. Notable managers carry four published quarters, others two.

Reported positions — 2026-03-31

1–26 of 26 issuers · $2.1B disclosed value over 52 rows · 0 undisclosed-value rows
Every row below carries ticker not yet mapped — stated once here rather than repeated on every row.
Positions SOFI WEALTH, LLC reported for the quarter ended 2026-03-31, as that filer reported them
KindClassification is not joined into this reported-position view. Use the changed-positions view to compare the two published quarters.TickerThis list carries reported issuer names and security identities, without a dated ticker mapping. Symbols are not inferred from names.Issuera position composed from a base filing plus NEW-HOLDINGS amendments keeps every source row here; the composition's latest filed date is the one shown served from this build's published holdings (derived from the filer's own reported rows); every row resolves to its filingWeightShare of total reported value, calculated only when the full position list has disclosed values. This is 13F long value, not total assets.Valuevalue undisclosed on the filing: retained and counted, excluded from sums, never shown as $0SharesPosition changeShare change is available in the separate comparison view; it is not joined into this position list.WtCongressThe congressional transaction join is unavailable in this build.
ISHARES TR
5 positions · 5 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · S&P 500 GRWT ETF CUSIP — $254M2,249,169
ISHARES TR · CORE S&P500 ETF CUSIP — $210M322,074
ISHARES TR · S&P 500 VAL ETF CUSIP — $207M979,965
ISHARES TR · U.S. TECH ETF CUSIP — $50.8K280
ISHARES TR · GLOBAL ENERG ETF CUSIP — $2.9K51
$672M3,551,53932.4%
BLACKROCK ETF TRUST
6 positions · 6 reported rows
Rows SOFI WEALTH, LLC reported for BLACKROCK ETF TRUST, as it reported them
BLACKROCK ETF TRUST · ISHARES US EQUIT CUSIP — $210M3,612,761
ISHARES TR · ISHARES INTL CTR CUSIP — $106M3,311,784
BLACKROCK ETF TRUST · ISHARES A I INNO CUSIP — $85.8M2,602,652
BLACKROCK ETF TRUST · ISHARES US THEMA CUSIP — $83.5M2,305,676
BLACKROCK ETF TRUST · US CARBON TRANS CUSIP — $8.5M121,482
BLACKROCK ETF TRUST · WORLD EX US CARB CUSIP — $1.5M26,559
$496M11,980,91423.9%
TIDAL ETF TR TIDAL ETF TR · SOFI SELECT 500 CUSIP 886364173
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$219M1,754,35310.6%
ISHARES TR
7 positions · 7 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · EAFE VALUE ETF CUSIP — $71.1M956,754
ISHARES TR · NATIONAL MUN ETF CUSIP — $65.9M620,897
ISHARES TR · EAFE GRWTH ETF CUSIP — $42.2M378,729
ISHARES TR · MSCI KLD400 SOC CUSIP — $5.2M42,790
ISHARES TR · ISHS 1-5YR INVS CUSIP — $9.7K184
ISHARES TR · SHRT NAT MUN ETF CUSIP — $3.2K30
ISHARES TR · IBOXX HI YD ETF CUSIP — $1.1K14
$184M1,999,3988.9%
VANGUARD INTL EQUITY INDEX F VANGUARD INTL EQUITY INDEX F · FTSE EMR MKT ETF CUSIP 922042858
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$135M2,493,5816.5%
VANGUARD TAX-MANAGED INTL FD VANGUARD TAX-MANAGED INTL FD · FTSE DEV MKT ETF CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$76.6M1,194,8173.7%
ISHARES TR
2 positions · 2 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · CORE TOTAL USD CUSIP 46434V613 $71.8M1,553,764
ISHARES TR · HDG MSCI EAFE CUSIP 46434V803 $10.1K237
$71.8M1,554,0013.5%
GLOBAL X FDS GLOBAL X FDS · DEFENSE TECH ETF CUSIP 37960A529
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$52.7M744,0372.5%
INVESCO EXCH TRADED FD TR II INVESCO EXCH TRADED FD TR II · NATL AMT MUNI CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$45.6M1,983,2862.2%
VANGUARD SCOTTSDALE FDS VANGUARD SCOTTSDALE FDS · MTG-BKD SECS ETF CUSIP 92206C771
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$39.1M832,4751.9%
SPDR SER TR SPDR SER TR · PORTFOLIO LN TSR CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$30.0M1,139,0911.4%
IAUverified against the SEC company list on 2026-09-10 — a reviewed mapping row for this filed issuer name and class (never inferred)ISHARES GOLD TR ISHARES GOLD TR · ISHARES NEW CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$21.3M241,1101.0%
ISHARES TR
3 positions · 3 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · ESG MSCI USA ETF CUSIP 46436E767 $4.1M73,467
ISHARES TR · ESG ADV TTL USD CUSIP 46436E619 $3.4M78,641
ISHARES TR · ESG EAFE ETF CUSIP 46436E759 $2.5M33,590
$10.0M185,6980.5%
ISHARES TR
5 positions · 5 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · ESG AWR MSCI USA CUSIP 46435G425 $3.3M23,132
ISHARES TR · CONV BD ETF CUSIP 46435G102 $1.6M15,308
ISHARES TR · ESG AWRE USD ETF CUSIP 46435G193 $1.3M56,392
ISHARES TR · ESG AWRE 1 5 YR CUSIP 46435G243 $65.7K2,623
ISHARES TR · HIGH YLD SYSTM B CUSIP 46435G250 $31.5K677
$6.2M98,1320.3%
ISHARES TR
2 positions · 2 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES TR, as it reported them
ISHARES TR · SYSTEMATIC BD ET CUSIP 46435U796 $2.5M27,556
ISHARES TR · ESG AWR US AGRGT CUSIP 46435U549 $2.1M45,186
$4.6M72,7420.2%
ISHARES TR ISHARES TR · 0-5 YR TIPS ETF CUSIP 46429B747
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$3.5M33,5760.2%
BLACKROCK ETF TRUST II
2 positions · 2 reported rows
Rows SOFI WEALTH, LLC reported for BLACKROCK ETF TRUST II, as it reported them
BLACKROCK ETF TRUST II · ISHARES FLEXIBLE CUSIP — $3.3M64,122
BLACKROCK ETF TRUST II · ISHARES HIGH YIE CUSIP — $23.2K483
$3.4M64,6050.2%
ISHARES INC
2 positions · 2 reported rows
Rows SOFI WEALTH, LLC reported for ISHARES INC, as it reported them
ISHARES INC · ESG AWR MSCI EM CUSIP — $2.2M47,363
ISHARES INC · MSCI EMRG CHN CUSIP — $24.4K311
$2.2M47,6740.1%
IBITverified against the SEC company list on 2026-09-10 — a reviewed mapping row for this filed issuer name and class (never inferred)ISHARES BITCOIN TRUST ETF ISHARES BITCOIN TRUST ETF · SHS BEN INT CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$1.9M50,0600.1%
GLOBAL X FDS GLOBAL X FDS · US INFR DEV ETF CUSIP 37954Y673
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$841K16,5570.0%
VANGUARD BD INDEX FDS
2 positions · 2 reported rows
Rows SOFI WEALTH, LLC reported for VANGUARD BD INDEX FDS, as it reported them
VANGUARD BD INDEX FDS · SHORT TRM BOND CUSIP — $7.6K97
VANGUARD BD INDEX FDS · TOTAL BND MRKT CUSIP — $3.8K51
$11.4K1480.0%
VANGUARD INDEX FDS VANGUARD INDEX FDS · SMALL CP ETF CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$6.6K250.0%
ISHARES TR ISHARES TR · 10+ YR INVST GRD CUSIP 464289511
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$6.0K1220.0%
ISHARES TR ISHARES TR · CORE MSCI EAFE CUSIP 46432F842
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$2.4K270.0%
VANGUARD MALVERN FDS VANGUARD MALVERN FDS · STRM INFPROIDX CUSIP 922020805
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$1.3K260.0%
VANECK ETF TR VANECK ETF TR · HIGH YLD MUNIETF CUSIP —
quarter ended 2026-03-31 filed filed 2026-05-05 +35d
$1.0K200.0%
1–26 of 26 issuers · page 1 of 1
every row this filer reported for the quarter, as it reported it — cross-filer de-duplication is applied to issuer totals elsewhere and never deletes a row here
A 13F is a quarterly, long-only snapshot filed up to 45 days late — not current holdings. what a 13F covers ↗

13F reports cover LONG positions in Section 13(f) securities (US exchange-traded equities plus reportable options, warrants, certain convertibles) held by managers with at least $100M in such securities — so managers below that threshold are absent entirely. No short positions, no cash, no non-13(f) assets — not a full portfolio, and not a census of institutional ownership.

Positions are quarter-end snapshots filed up to 45 days late — not current holdings. A position may have been changed or closed before you ever see it, and is older still by however long ago that quarter ended.

Values are the manager's stated market value at quarter-end in era-dependent units (whole dollars for form versions effective 2023-01-03 onward, thousands before), normalized here to whole dollars with unit_basis carried on every record.

Affiliated managers may report the same position (otherManager), so one position can appear under more than one filer.

Positions under confidential treatment may be omitted until a later amendment discloses them.

These are disclosures, not investment advice (ARCHITECTURE.md §5.2 / M2-CONTRACT §5).