Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koko37/mybucks.online-app
Password-only crypto wallet. No registration, no KYC, no seed phrase at all. Open your account with your safe password only!
https://github.com/koko37/mybucks.online-app
cryptocurrency cryptowallet dapp ethereum keccak256 mobile-responsive non-custodial password-hashing react scrypt-algorithm styled-components wallet
Last synced: 4 days ago
JSON representation
Password-only crypto wallet. No registration, no KYC, no seed phrase at all. Open your account with your safe password only!
- Host: GitHub
- URL: https://github.com/koko37/mybucks.online-app
- Owner: koko37
- Created: 2024-06-07T03:12:11.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-12T06:15:00.000Z (3 months ago)
- Last Synced: 2024-08-12T07:35:18.183Z (3 months ago)
- Topics: cryptocurrency, cryptowallet, dapp, ethereum, keccak256, mobile-responsive, non-custodial, password-hashing, react, scrypt-algorithm, styled-components, wallet
- Language: JavaScript
- Homepage: http://app.mybucks.online/
- Size: 1.85 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mybucks.online
## Summary
This is a **password-only crypto wallet** built with [React.js](https://react.dev). It generates a private key from your password using an industry-standard, verified **one-way hash function**. Your private key forms your account, allowing you to transfer, receive, and hold your crypto assets permanently.
## How to Use
1. Visit `app.mybucks.online`
2. Input your password and confirmation
3. Click `Open`(This process is the same for both initial opening and all subsequent uses.)
![Sign-in](/screenshots/Macbook-Air-mybucks.online.png)
## Key Points
### Privacy Protection
- **No Registration Required:** No need for personal information, not even your email address.
- **Absolute Privacy:** Nobody knows who you are; nobody stores your password.
- **Transient Data:** Your account is generated whenever you open it. Closing or refreshing your browser erases all traces/history.
- **Share your wallet address:** its origin remains unknown.### Security
- **One-Way Hash Function:** Utilizes [**scrypt**](https://en.wikipedia.org/wiki/Scrypt) and [**keccak256**](https://en.wikipedia.org/wiki/SHA-3). Your password determines a unique private key.
- **Resistance to Attacks:** Brute force attacks would take centuries. A strong password ensures asset protection.### Ease of Use
- **Simple Access:** Only requires a password, no 12-word seed phrases.
- **No KYC Hassles:** No worries about KYC or suspensions.
- **Private Key Portability:** Backup your password/private key. Import into Metamask to use across DeFi products.### Analogy
Think of it like a public locker at a railway station:
1. Find an empty box.
2. Set up your password anonymously.
3. Place your goods inside and lock.Return later to access your goods with just your passwordโno ID checks required.
That's all! ๐
## Generate the private key
This demonstrates how to generate a private key from your password and helps you understand the process.
```javascript
import { Buffer } from "buffer";
import { ethers } from "ethers";
import { scrypt } from "scrypt-js";const HASH_OPTIONS = {
N: 32768, // CPU/memory cost parameter, 2^15
r: 8, // block size parameter
p: 5, // parallelization parameter
keyLen: 64,
};async function generatePrivateKey(rawPassword) {
// separate even, odds characters from the rawPassword
const password = rawPassword.split().filter((, index) => index % 2 === 0).join("")
const salt = rawPassword.split().filter((, index) => index % 2 === 1).join("")const passwordBuffer = Buffer.from(password);
const saltBuffer = Buffer.from(salt);const hashBuffer = await scrypt(
passwordBuffer,
saltBuffer,
HASH_OPTIONS.N,
HASH_OPTIONS.r,
HASH_OPTIONS.p,
HASH_OPTIONS.keyLen,
(p) => console.log(Math.floor(p * 100))
);
const hashHex = Buffer.from(hashBuffer).toString("hex");
const privateKey = ethers.keccak256(abi.encode(["string"], [hashHex]));return privateKey;
}
```## Transfer Ownership
You can transfer all your holdings to family or friends in a few seconds by sharing your password only.
```
mybucks.online / mYpAssword987^5
```Send this short note to your friend in a private channel.
# About the Project
This is a fully open-source project built with React, Vite, and related third-party libraries such as:
- **scrypt-js**
Implements the `scrypt` hash function. Please check the npm registry [here](https://www.npmjs.com/package/scrypt-js).- **ethers**
A standard library for manipulating EVM accounts.- **@covalenthq/client-sdk**
Provides query functions for massive crypto assets in multiple networks.- **@sushiswap/default-token-list**
- **styled-components**
## How to Run
```bash
yarn install
cp .env.example .env
# Update the .env variables with valid keys
yarn dev
```## Production Environment
The project uses `Github Pages` and `Github Actions` for deployment and is connected to a custom domain.
You can easily verify releases, deployments, and domain configuration:- [Actions](https://github.com/koko37/mybucks.online-app/actions)
- [Releases](https://github.com/koko37/mybucks.online-app/releases)
- [.github/workflows/main-pipeline.yml](https://github.com/koko37/mybucks.online-app/blob/master/.github/workflows/main-pipeline.yml)To check DNS settings:
```bash
nslookup
> app.mybucks.online
Server: 127.0.0.53
Address: 127.0.0.53#53Non-authoritative answer:
app.mybucks.online canonical name = koko37.github.io.
Name: koko37.github.io
~~~~~~~~~~~~~~~~~~~~~~~~
``````bash
dig app.mybucks.online; <<>> DiG 9.18.28-0ubuntu0.22.04.1-Ubuntu <<>> app.mybucks.online
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26113
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 5, ADDITIONAL: 11;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;app.mybucks.online. IN A;; ANSWER SECTION:
app.mybucks.online. 5 IN CNAME koko37.github.io.
~~~~~~~~~~~~~~~~~~~~~~~~
```