V2 uses @oshun/identity as the account source of truth. There is no V2-only
publisher account root: PSN, Xbox Live, Nintendo Account, and Steam records are
linked credentials on one Oshun identity account.
Contract#
@oshun/identityexports the V2 account-state contract inv2-account-binding.ts.@v2/oshun-identity-bindingcomposes that shared contract for V2 service integration and exposes an off-rollback surface.FV2OshunIdentityAccountBindingmirrors the contract in Unreal online services for login/session state.FV2SaveHeaderstoresOshunAccountId,HomeRegionId, andIdentitySourcePackageNameseparately fromPlatformUserId.
Required State#
The V2 identity binding requires:
- an
@oshun/identityaccount id; - account home-region binding;
- enrolled account 2FA, with verified TOTP or hardware key required for merge, platform rebind, region change, payment-detail change, ranked-pro qualification, and DSR request actions;
- recovery-ready state via verified email or issued backup codes;
- one or more platform account bindings whose
linkedOshunAccountIdequals the canonical Oshun account id.
Region changes remain identity-owned and enforce the 90-day cooldown described in §67.6. Platform rebinds honor the 30-day cooldown described in §50.
Rollback Boundary#
Identity resolution is off rollback. Deterministic gameplay may receive the
already-resolved OshunAccountId as metadata, but platform account lookup,
2FA/recovery checks, and region binding decisions stay in the service layer.