Tools
Lib Wallet
Lib Wallet is a self-custody browser extension for Chrome, Edge and Brave, made for LibChain: lib1 addresses, a built-in faucet, swipe to confirm, and a standard EIP-1193 provider for dApps.
Testnet preview. Lib Wallet hasn't had an independent security audit yet. Use it only with test coins. Real-value networks are switched off in testnet builds.
#What it does
- Self-custody. Keys are created and stored on your device, encrypted with scrypt and AES-256-GCM. They never leave the browser.
- Lib Testnet built in. lib1 addresses with the 0x form underneath, the faucet in its own tab, and activity linked to Lib Explorer.
- Accounts. 12 or 24-word recovery phrases, several wallets and derived accounts, private-key and keystore import, watch-only accounts, encrypted backups.
- Safe confirmations. Every signature or transaction opens in its own approval window with the full addresses, and you confirm by swiping.
- Tokens and collectibles. ERC-20, ERC-721 and ERC-1155 sends, token import, allowance review and revoke.
#Install
A Chrome Web Store release is on the roadmap. Until then, testers get a build from the LibChain team and load it as an unpacked extension:
- Unzip the build
You'll get a folder with
manifest.jsoninside. - Open the extensions page
chrome://extensionsin Chrome,edge://extensionsin Edge,brave://extensionsin Brave. - Turn on Developer mode
The switch is in the top right corner.
- Load unpacked
Choose the unzipped folder. Lib Wallet opens its welcome tab; create or import a wallet.
#For dApp developers
Lib Wallet injects a standard EIP-1193 provider and announces it with EIP-6963, so it shows up next to other wallets instead of replacing them. It never pretends to be MetaMask.
window.addEventListener('eip6963:announceProvider', (e: any) => {
const { info, provider } = e.detail
if (info.name === 'Lib Wallet' || provider.isLibWallet) {
// prefer Lib Wallet on LibChain
}
})
window.dispatchEvent(new Event('eip6963:requestProvider'))Detect Lib Wallet by its name or provider.isLibWallet. Its EIP-6963 rdns identifier may change before the store release.
#Supported requests
| Method | Notes |
|---|---|
eth_requestAccounts, eth_accounts | Per-site permission (EIP-2255) |
eth_chainId | |
eth_sendTransaction | Reviewed and confirmed in the approval window. The wallet sets the nonce; accessList isn't supported |
personal_sign | Shows text or hex. Sign-In with Ethereum domain or chain mismatches are flagged |
eth_signTypedData_v4 | EIP-712, shown field by field. domain.chainId must match. Permits and unlimited approvals are flagged |
wallet_switchEthereumChain, wallet_addEthereumChain | Returns 4902 for an unknown chain. An added network's RPC must report its chain ID before the user is asked |
wallet_watchAsset | Add a token to the wallet |
wallet_requestPermissions, wallet_getPermissions, wallet_revokePermissions | |
eth_sign, eth_signTypedData (v1, v3), eth_signTransaction, eth_sendRawTransaction, eth_subscribe, eth_decrypt, eth_getEncryptionPublicKey, wallet_sendCalls | Rejected Error 4200. Use personal_sign, eth_signTypedData_v4 and eth_sendTransaction |
Read-only calls (eth_call, eth_getBalance, eth_getLogs and so on) are forwarded to the network's RPC. Errors use the standard EIP-1193 codes: 4001 rejected by the user, 4100 not authorised, 4200 unsupported, 4902 unknown chain.