Inspiration
Non crypto native users may encounter difficulties using Metamask / Keplr. Thus we wanted to understand how to handle a wallet from A to Z, not having to rely on a third party. This could be pretty useful for any App wanting to abstract blockchain interactions in the background, creating a seamless experience for non crypto native users.
What it does
This wallet allows the following:
- Import of Private key / mnemonic - encrypted with a Password
- View of native token / erc20 / erc721 holdings
- transfer possibility for native token / erc20 / erc721 holdings
Two other routes are present in the UI:
- a Minting page allowing you to mint Otter NFT
- a Faucet to see your portfolio evolve
How we built it
We built this application in Javascript, using the react-create-app framework. We used ethers.js library for all blockchain interactions. We used crypto-js library for all hashing / encryption / decryption functions.
Challenges we ran into
A few points were delicate when developing this project:
- handling the private key is always a sensitive point: storing on a server, keeping it on client side was challenging, followed by a proper encryption
- Dealing with RPC-JSON node reliability, we ended up running our own node
Accomplishments that we're proud of
We are proud of being able to perform transactions without having to validate it through Metamask. This proof of concept could allow project to interact with the blockchain in the background.
What we learned
- We learned a lot on the cryptographic side: mnemonic >> private Key >> public key >> address. Also how to properly encrypt sensitive information.
- Smart Contract Interaction using contract address and ABI is something replicable to any transactions, so this is a great learning to be able to test it with simple functions (getBalance, Transfer)
- Finally we experimented the power of EVM-compatibility, allowing us to use Ethereum tooling without any problem
What's next for Alt Evmos Wallet
A bunch of other features need to be implemented:
- Generate Account
- Multi chain integration
- Ledger integration for keys storage
- Display past transaction for the account
- Allow new erc20 / erc721 smart contract by user input
- Revamp User Interface
Built With
- ethers
- javascript
- react
Log in or sign up for Devpost to join the conversation.