[![Gitter](https://img.shields.io/gitter/room/ethereum/ethereumjs-lib.svg?style=flat-square)](https://gitter.im/ethereum/ethereumjs-lib) or #ethereumjs on freenode
-`generate([icap])` - create an instance based on a new random key (setting `icap` to true will generate an address suitable for the `ICAP Direct mode`)
-`generateVanityAddress(pattern)` - create an instance where the address is valid against the supplied pattern (**this will be very slow**)
-`fromPrivateKey(input)` - create an instance based on a raw private key
-`fromExtendedPrivateKey(input)` - create an instance based on a BIP32 extended private key (xprv)
-`fromPublicKey(input, [nonStrict])` - create an instance based on a public key (certain methods will not be available)
-`fromExtendedPublicKey(input)` - create an instance based on a BIP32 extended public key (xpub)
-`fromV1(input, password)` - import a wallet (Version 1 of the Ethereum wallet format)
-`fromV3(input, password, [nonStrict])` - import a wallet (Version 3 of the Ethereum wallet format). Set `nonStrict` true to accept files with mixed-caps.
-`fromEthSale(input, password)` - import an Ethereum Pre Sale wallet
- salt - Random salt for the `kdf`. Size must match the requirements of the KDF (key derivation function). Random number generated via `crypto.getRandomBytes` if nothing is supplied.
- iv - Initialization vector for the `cipher`. Size must match the requirements of the cipher. Random number generated via `crypto.getRandomBytes` if nothing is supplied.
- kdf - The key derivation function, see below.
- dklen - Derived key length. For certain `cipher` settings, this must match the block sizes of those.
- cipher - The cipher to use. Names must match those of supported by `OpenSSL`, e.g. `aes-128-ctr` or `aes-128-cbc`.
Depending on the `kdf` selected, the following options are available too.
See our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices.
If you want to join for work or do improvements on the libraries have a look at our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html).