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:
versioncompletionModeavatarIdprimaryGoaltimeHorizonriskToleranceautomationStylestrategyInterestspreferredChainsguardrailsnotesheadlinesummaryupdatedAtpreferences.setValue
using:
scope: "user"prefKey: "investing_profile_v1"value: InvestingProfileV1investing_profile_v1 exists as a generic preference
catalog entry with:
valueType: "json"allowUser: trueallowGlobal: falseallowPortfolio: falseheadline and summary.InvestingProfileV1.completionMode: "balanced_defaults" when
the request matches the built-in default quiz and omits notes.