_section: Experimental The **Experimental** package is used for features that are not ready to be included in the base library. The API should not be considered stable and does not follow [[link-semver]] versioning, so applications requiring it should specify the //exact version// needed. _subsection: BrainWallet @ @INHERIT<[[Wallet]]> Ethers removed support for BrainWallets in v4, since they are unsafe and many can be easily guessed, allowing attackers to steal the funds. This class is offered to ensure older systems which used brain wallets can still recover their funds and assets. _property: BrainWallet.generate(username, password [ , progressCallback ]) => [[experimental-brainwallet]] Generates a brain wallet, with a slightly improved experience, in which the generated wallet has a mnemonic. _property: BrainWallet.generateLegacy(username, password [ , progressCallback ]) => [[experimental-brainwallet]] Generate a brain wallet which is compatibile with the ethers v3 and earlier. _subsection: EIP1193Bridge @ @INHERIT<[[link-npm-events]]> The **EIP1193Bridge** allows a normal Ethers [[Signer]] and [[Provider]] to be exposed in as a standard [EIP-1193 Provider](link-eip-1193), which may be useful when interacting with other libraries. _subsection: NonceManager @ @INHERIT<[[Signer]]> The **NonceManager** is designed to manage the nonce for a Signer, automatically increasing it as it sends transactions. Currently the NonceManager does not handle re-broadcast. If you attempt to send a lot of transactions to the network on a node that does not control that account, the transaction pool may drop your transactions. In the future, it'd be nice if the **NonceManager** remembered transactions and watched for them on the network, rebroadcasting transactions that appear to have been dropped. Another future feature will be some sort of failure mode. For example, often a transaction is dependent on another transaction being mined first. _property: new NonceManager(signer) Create a new NonceManager. _property: nonceManager.signer => [[Signer]] The signer whose nonce is being managed. _property: nonceManager.provider => [[Provider]] The provider associated with the signer. _property: nonceManager.setTransactionCount(count) => void Set the current transaction count (nonce) for the signer. This may be useful it interacting with the signer outside of using this class. _property: nonceManager.increaseTransactionCount( [ count = 1 ]) => void Bump the current transaction count (nonce) by //count//. This may be useful it interacting with the signer outside of using this class.