# Status Account Creation and Maintenance Specification
## Summary
The core concept of an account in Status is a set of cryptographic keypairs. Namely, the combination of the following:
1. a whisper chat identity keypair
1. a set of cryptocurrency wallet keypairs
Everything else associated with the contact is either verified or derived from the above items, including:
- Ethereum address (future verification, currently the same base keypair)
- 3 word mnemonic name
- identicon
- message signatures
## 1 Initial Key Generation
### 1.1 Public/Private Keypairs
- An ECDSA (secp256k1 curve) public/private keypair MUST be generated via a [BIP43](https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki) derived path from a [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seed phrase.
- A client [MUST/SHOULD] regenerate a group of X3DH prekey bundles every 24 hours and broadcast them through the appropriate channels
## 3 Optional Account additions
### 3.1 ENS Username
- A user MAY register a public username on the Ethereum Name System (ENS). This username is a user-chosen subdomain of the `stateofus.eth` ENS registration that maps to their whisper identity key ($IK$).
- TODO: verify if this is contact code or public key
### 3.2 User Chosen Name
- An account MAY create a display name to replace the $IK$ generated 3-word pseudonym in chat screens. This chosen display name will become part of the publicly broadcasted profile of the account.
### 3.3 User Profile Picture
- An account MAY edit the $IK$ generated identicon with a chosen picture. This picture will become part of the publicly broadcasted profile of the account.