We have a good set of steps described at SignupAndUpgradeFlow but it would be ideal if the user could signup entirely (or as much as possible) over XMPP. The super ideal case would be using an ad-hoc command, but since few popular clients support that, the below lays out a plan for providing it via the JMP account bot (see https://jmp.chat/#bot for details) instead.