Create a new wallet
The newWallet() function creates a new wallet with an automatically generated BIP39-compliant mnemonic phrase. The operation is synchronous and does not require an API key.
If you prefer to import an existing wallet — using a keystore file, seed phrase, or other methods — check out the relevant sections of our documentation.
When you create a wallet, you're essentially generating the "master credentials" needed to hold cryptocurrencies (e.g., ETH, BTC, etc.), retrieve balances, and make transfers. ChainGate uses a secure, randomized process to generate your mnemonic phrase, ensuring compatibility with other BIP39-compatible applications (e.g., MetaMask, Ledger).
A mnemonic phrase (often called a "seed phrase") is a group of simple words (like "cat," "tree," "bridge," etc.) used to derive your private keys. This is a human-readable alternative to handling cryptographic keys directly.
Treat your mnemonic phrase like a password. If someone obtains it, they can access all assets associated with your wallet.
Basic wallet creation
To create a new wallet with the default configuration (a 12-word English mnemonic):
import { newWallet } from 'chaingate'
const { phrase, wallet } = newWallet()
phrase: The generated seed phrase (12 English words by default).wallet: APhraseWalletinstance that gives you programmatic access to address derivation, transaction signing, and more.
Custom configuration
You can control the language and length of the generated mnemonic phrase:
import { newWallet } from 'chaingate'
const { phrase, wallet } = newWallet('spanish', 24)
Supported parameters
| Parameter | Type | Values | Default |
|---|---|---|---|
language | PhraseLanguage | See supported languages | 'english' |
numberOfWords | PhraseNumOfWords | 12, 15, 18, 21, 24 | 12 |
Supported languages
ChainGate supports mnemonic generation in Czech, English, French, Italian, Japanese, Korean, Portuguese, Simplified Chinese, Spanish, and Traditional Chinese.
Using the wallet
To interact with blockchains, connect the wallet to a network via a ChainGate instance:
import { newWallet, ChainGate } from 'chaingate'
const { phrase, wallet } = newWallet()
const cg = new ChainGate({ apiKey: 'your-api-key' })
const bitcoin = cg.connect(cg.networks.bitcoin, wallet)
console.log('Address:', await bitcoin.address())
Access generated phrase
You can read the mnemonic phrase directly from the return value:
const { phrase, wallet } = newWallet()
console.log(phrase) // "abandon abandon abandon ... about"
Or retrieve it later from the wallet instance:
const phraseEntity = await wallet.getPhrase()
console.log(phraseEntity.toString())
Never log your phrase in a production environment! Printing it is for demonstration purposes only.
Exporting a wallet
To back up or persist your wallet, you need to serialize it.