Chainerd is a HD wallet that safely stores your private keys encrypted in the browser and lets you interact with the Ethereum blockchain through an Infura node. It uses BIP32 and BIP39 to generate an HD tree of addresses from a randomly generated 12-word seed.
- LightWallet V3 for storing private keys
- Ethers.js for interacting with the Ethereum blockchain
- Material UI for creating React components
- Chart.js for showing interactive charts
- Store.js for cross-browser local storage
- Redux Toolkit+Sagas for state management
- Jest for testing
- and many others, see package.json
- Infura as JsonRPC provider
- Coingecko as exchange rates provider
- Etherscan for getting Ethereum historical data
- Blockcypher for getting current gas price range
- Create a new wallet
- Restore an already existing wallet
- Create, edit, delete and view accounts
- Send transactions
- View transaction history and transaction status
- ETH/USD balance conversion
- View asset allocation
Set up local environment variables by creating a .env.development.local file in the root of your project and adding your:
- REACT_APP_INFURA_API_KEY - Infura API key
- REACT_APP_ETHERSCAN_API_KEY - Etherscan API key
Installs all packages.
Runs the app in the development mode. Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
To contribute to Chainerd, follow these steps:
- Fork this repository
- Create a branch:
git checkout -b <branch_name>
- Make your changes and commit them:
git commit -m '<commit_message>'
- Push to the original branch:
git push origin chainerd/<location>
- Create the pull request
Alternatively see the GitHub documentation on creating a pull request.
If you want to contact me you can reach me at davidcoderistov@gmail.com.