Authenticated user-onboarding profile generation for the welcome flow.
userOnboarding namespace currently exposes the AI-assisted profile
generation procedure used by the /welcome/preferences step in webapp-v2.
POST /v1/trpcuserOnboarding.*userOnboarding.generateInvestingProfile
InvestingProfileV1 payload and narrative copy/welcome/preferencesheadlinesummaryprofilegenerateInvestingProfile accepts:
avatarId: stringquiz
primaryGoal: growth | balanced | income | preservation | explorationtimeHorizon: lt_1y | 1_3y | 3_5y | 5y_plusriskTolerance: conservative | moderate | aggressiveautomationStyle: hands_on | guided | delegatedstrategyInterests: string[] from:
core_large_capyield_incomeindex_likedefithematicexperimentalnotes: string | nullexistingProfile?: optional prior InvestingProfileV1 payload used when the
user regenerates summary copy from an already-edited boardprofile is normalized and ready to persist as the user-scoped
generic preference investing_profile_v1.
InvestingProfileV1 fields:
versioncompletionModeavatarIdprimaryGoaltimeHorizonriskToleranceautomationStylestrategyInterestspreferredChainsguardrailsnotesheadlinesummaryupdatedAtwebapp-v2 now saves the confirmed profile through the dedicated builder
surface:
v2.portfolio.builder.saveProfileprofile: InvestingProfileV1v2.portfolio.builder.getProfile
and used to drive the onboarding handoff into /start.
headline and summary.InvestingProfileV1.completionMode: "balanced_defaults" when
the request matches the built-in default quiz and omits notes.