Skip to content

Cross-Platform Solana Wallet built with Expo and Solana/web3.js

Notifications You must be signed in to change notification settings

linktel0/solanaWallet

Repository files navigation

Solana Wallet Cross-Platform App with Expo, Web3 & React Native

This is a simple Solana Wallet Cross-Platform App built with Expo, Web3 & React Native to learn about web3 and smart contract. The Solana Wallet is an essential bridge connecting DeFi developers and the Solana blockchain. With Solana's quick and low-cost transactions.

Screens and Features

Welcome

These screens show using the Biometric Prompt (Android) or FaceID and TouchID (iOS) to authenticate the user with a fingerprint or face scan. Later,automatically create mnemonic phrase or recovery wallet with mnemonic phrase. Save and load mnemonics from local securely store on the device.

                       

Dashboard

These screens shows the accounts SOL/SPL-token balances,SOL/SPL-token deposits, SOL/SPL-token transfers. Camera support with QR code scanning for Sol/SPL-token deposit, transfer. Multiple wallet accounts add,delete,refresh.

                       

Airdrop and Mint

These screens show minting new tokens, airdropping Sol/Usdc. Convenient for developers

                       

Safe Transfer

Build the "Safe Token Transfer app", that prevents funds from being lost. When someone wants to transfer tokens to a particular user, they do it in 2 steps to enforce safety. First, they deposit those tokens into an escrow token account that is controlled by our program. Second, the final receiver of the tokens confirms the withdrawal and receives the funds from the escrow. If they fat-fingered receiver's address, or if receiver cannot find his keys anymore, they can safely pull back his Safe Payment before the transfer is complete.This smart contract repository:https://github.com/linktel0/safe-transfer.git

                       

Safe Exchange

Introduce a third party C which both A and B trust.A or B can go first and send their token to C. C then waits for the other party to send their token and only then does C release both token.The blockchain way is to replace the trusted third party C with code on a blockchain, specifically a smart contract that verifiably acts the same way a trusted third party would. This smart contract repository: https://github.com/linktel0/safe_exchange.git

                       

Others

History, remove recovery phrase, change Web3 explorer

                           

Request Airdrop

This app is configured to connect to dev network so the tokens showed are not real. Good thing is that every time you press here you get 2 SOL in your account that can be used to test the app, make transfers...

What I used to build this Solana Wallet

Expo

Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React.

TypeScript

TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

Solana/web3.js

This is the Solana Javascript API built on the Solana JSON RPC API.

@solana/spl-token

TypeScript library for interacting with the SPL Token and Token-2022 programs.

@project-serum/anchor

TypeScript client for Anchor programs.

React Native Paper

Paper is a collection of customizable and production-ready components for React Native, following Google’s Material Design guidelines.

React Navigation

Routing and navigation for Expo and React Native apps.

Tailwind CSS

NativeWind uses Tailwind CSS as scripting language to create a universal style system for React Native

Rust

Solana supports writing on-chain programs using the Rust programming language.

More

Moreover I used other libraries for crypto, qr generate and scan...

You can check them in package.json

Run it:

$ git clone https://github.com/linktel0/solanaWallet.git
$ cd solanaWallet
$ yarn 
$ expo start

Or install apk for Android:

About

Cross-Platform Solana Wallet built with Expo and Solana/web3.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published