A wallet for creating accounts, importing accounts and sending transactions over the zond blockchain. This is an extension for web browsers(like Google Chrome), for performing operations on the Zond blockchain.
- Run
git clone https://github.com/theQRL/zond-web3-wallet.git
for cloning this repo to your machine. - Run
npm install
for installing all dependencies of this project. - Run
npm run build
to generate a production build of the extension to theExtension
folder. - The production build output folder is named
Extension
(notdist
) and this folder alone is enough to run the extension. - Load the Extension folder as an extension package from the settings page of the browser.
- See install_instructions.pdf for further details.
Feature | Description | Related files | Status |
---|---|---|---|
Extension manifest | Browser extensions should always have this file in the project root directory, inorder to be considered an extension. Manifest file can be found at the root level of project, and will be copied to the output Extension directory during build. |
manifest.json | 🟢 |
Theming | Based on the system theme, extension will be displayed in light or dark theme. | index.css tailwind.config.js | 🟢 |
Blockchain selection | The user can connect the wallet to a local zond node, zond testnet or zond mainnet. Mainnet can be used for real transactions, and the other two can be used for testing and demo. | ConnectionBadge.tsx | 🟢 |
Create account | The user can create a new account just with the click of a button. The newly created account address along with its secret recovery phrases will be presented to the user for download. | CreateAccount.tsx | 🟢 |
Import account | If the user has recovery phrases of an account created in the past, that account can be imported to the wallet. | ImportAccount.tsx | 🟢 |
Account list | List of accounts created or imported are stored locally, and displayed to the user. The user can switch to a different account in the wallet. | AccountList.tsx | 🟢 |
User Password | Ideally, the user entered password should be used to encrypt the account recovery phrases, so that the user can use their password for transactions each time. This needs to be first implemented in the zond web3.js library. | AccountUnlock.tsx | 🔴 |
Transaction | The user can send ZND to other addresses. The receiver's account address, the amount and the user's secret mnemonic phrases(user's password will be used in the future) are required to make the transaction. |
TokenTransfer.tsx | 🟢 |
Gas Fee | Before making a transaction, the user can see an estimated gas fee amount. | GasFeeNotice.tsx | 🟢 |
Wallet connect | Online dapps presents the user with a Connect button. To connect the wallet with the dapps, multiwallet support based on EIP-6963 is implemented. |
DAppRequest.tsx middlewares inPageScript.ts | 🟢 |
ZRC-20 Tokens | The wallet supports ZRC-20 tokens. The users can import and send the ZRC-20 tokens from the wallet. |
ImportToken.tsx TokensCardContent.tsx | 🟢 |
The QRL, Vite, React, Typescript, Jest, MobX, Shadcn, React hook form, TailwindCSS