> For the complete documentation index, see [llms.txt](https://circular-protocol.gitbook.io/cex-integration-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://circular-protocol.gitbook.io/cex-integration-guide/wallet-creation/creating-a-wallet.md).

# Creating a Wallet

## Seed Phrase

A vocabulary of 5,000 or more words is generally considered secure. In practice, we typically use a 12-word phrase.

## Generate Key

```javascript
const seedPhraseTextarea = 'word1 word2 ...';
const EC = elliptic.ec;
const ec = new EC('secp256k1');

// Create a SHA-256 hash of the seed phrase
const hash = sha256.sha256.array(seedPhrase);

// Generate the private key from the hash
const keyPair = ec.keyFromPrivate(hash);

// Generate the public key from the private key
const publicKey = keyPair.getPublic(false, 'hex');

// Generate private key in PKCS1 format
const privateKeyPKCS1 = keyPair.getPrivate('hex');
```

## Generate Wallet Address

```javascript
const Address = sha256.sha256(publicKey);
```
