https://github.com/mybucks-online/app
Seedless, disposable crypto wallet designed for speed and convenience.
https://github.com/mybucks-online/app
beginners-friendly blockchain cryptowallet dapp erc20 ethereum keccak256 opensource-projects password-hashing privatekey-generator react scrypt styled-components tron web3
Last synced: 16 days ago
JSON representation
Seedless, disposable crypto wallet designed for speed and convenience.
- Host: GitHub
- URL: https://github.com/mybucks-online/app
- Owner: mybucks-online
- License: mit
- Created: 2024-08-27T16:50:43.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-19T15:38:58.000Z (3 months ago)
- Last Synced: 2026-02-19T18:10:51.895Z (3 months ago)
- Topics: beginners-friendly, blockchain, cryptowallet, dapp, erc20, ethereum, keccak256, opensource-projects, password-hashing, privatekey-generator, react, scrypt, styled-components, tron, web3
- Language: JavaScript
- Homepage: https://app.mybucks.online
- Size: 2.72 MB
- Stars: 15
- Watchers: 1
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-web3 - Mybucks.online - Open-source, browser-based and self-custodial wallet that generates a private key from credentials using one-way hash function. (Open Source Project / Risk Management)
README
# mybucks.online
This is a source repository of [app.mybucks.online](https://app.mybucks.online).
[Mybucks.online](https://mybucks.online) is a **seedless, disposable crypto wallet** designed for **speed and convenience**. It generates a private key from your **passphrase and PIN** 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 instantly.
As a hash function, the **Scrypt** Key Derivation Function (KDF) increases the computational effort required to crack credentials, effectively delaying **brute-force** attacks and making them impractical.
It fully runs on your **browser side** without using any storage or invoking any 3rd-party APIs for key management. It instantly generates your private key from your credentials input, and whenever you close or refresh, there is **no footprint**. This absolutely protects your privacy.
### Zero Footprint
- No servers, no databases, no storage and no tracking.
- 100% browser-based.
- Your credentials never leave your device.
- Your account is generated whenever you open it. Closing or refreshing your browser erases all traces/history.
### Fast and Easy
- No app installs, no browser extensions, no registration and no KYC.
- You can create or open your wallet in seconds - all you need is your browser.
- Passphrase and PIN are easier to handle and remember than seed phrases.
### 1-Click Gifting
- Stop asking your friends for their wallet addresses.
- Send a wallet as a URL rather than just sending coins.
- The recipient clicks the URL and takes full ownership instantly.
- This makes **gifting or airdropping perfectly easy** and enables massive micro-gifting in seconds.
## How to Use
1. Visit [app.mybucks.online](https://app.mybucks.online).
2. Input your credentials.
Test credentials:
passphrase: **DemoAccount5&**
PIN: **112324**
3. Click `Open`.
(This process is the same for both initial opening and all subsequent uses.)




## How it works?
The **Scrypt** and **Keccak256** hash functions turn your credentials into a private key. The Scrypt KDF(Key Derivation Function) requires significant memory to compute, making brute-force attacks computationally expensive and impractical.

## Generate the private key
This demonstrates how to generate a private key from your `passphrase` and `PIN` and helps you understand the process.
```javascript
import { Buffer } from "buffer";
import { ethers } from "ethers";
import { scrypt } from "scrypt-js";
const HASH_OPTIONS = {
N: 131072, // CPU/memory cost parameter, 2^17, OWASP recommendation
r: 8, // block size parameter
p: 1, // parallelization parameter
keyLen: 64,
};
const KDF_DOMAIN_SEPARATOR = "mybucks.online-core.generateHash.v2";
// passphrase: at least 12 characters user input, zxcvbn score >= 3
// PIN: at least 6 characters, zxcvbn score >= 1
async function generatePrivateKey(passphrase, pin) {
const salt = `${passphrase.slice(-4)}${pin}`
const passwordBuffer = Buffer.from(passphrase);
const encoded = abi.encode(
["string", "string", "string"],
[KDF_DOMAIN_SEPARATOR, passphrase, pin],
);
const saltHash = ethers.keccak256(encoded);
const saltBuffer = Buffer.from(saltHash.slice(2), "hex");
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;
}
```
## @mybucks.online/core
The core components responsible for hash and private key generation, generate & parse transfer-link token have been extracted into an independent package. You can explore the details of this package [here](https://www.npmjs.com/package/@mybucks.online/core).
```
npm install @mybucks.online/core
```
## Transfer a wallet via URL 🎁🎁🎁
With mybucks.online, you can send cryptocurrency and even **wallet itself via a URL**. The recipient simply clicks the link to open the wallet and take full ownership.
Try this link:
https://app.mybucks.online/#wallet=VWnsSGRGVtb0FjY291bnQ1JgIxMTIzMjQCb3B0aW1pc20=_wNovT (legacy)
This feature allows you to **create a one-time wallet** and put stablecoins or memecoins into it. You can **transfer full ownership as a gift without ever asking for a recipient's address**. These serve as a "starter" wallet for the recipients, who can then easily withdraw the funds into their own personal pockets or primary wallets.
This is a powerful tool for **bulk distribution** and **massive airdrops** to many people simultaneously. You no longer need to ask for a wallet address or force users to connect their wallet to your app for a small $5 referral fee. You simply share the unique links through any messaging platform, social media, or email.
## Major dependencies
This project uses the following major dependencies:
- **@mybucks.online/core**
Core module of mybucks.online involving hashing, private-key generation, generate and parse transfer-link token.
- **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.
- **moralis**
Provides query functions for massive crypto assets in multiple networks.
- **@uniswap/default-token-list**
ERC20 tokens are filtered to only display those included in the Uniswap default token list.
- **tronweb**
- **styled-components**
## How to Run
Please sign up for [Infura](https://infura.io), [Moralis](https://moralis.com/) and [Trongrid](https://trongrid.io/), create free API keys, and update the environment variables accordingly.
```bash
yarn install
cp .env.example .env
# Update the .env variables with valid keys
yarn dev
```
## Production Environment
The project is deployed via GitHub Pages and GitHub Actions. You can verify the deployment and DNS configuration:
- [Actions](https://github.com/mybucks-online/app/actions)
- [Releases](https://github.com/mybucks-online/app/releases)
- DNS: `app.mybucks.online` → `mybucks-online.github.io`
## Quick Links
- [App](https://app.mybucks.online)
- [Website](https://mybucks.online)
- [Whitepaper](https://docs.mybucks.online/more/whitepaper)
- [Docs](https://docs.mybucks.online)
- [Github](https://github.com/mybucks-online)
- [X](https://x.com/mybucks_online)
- [Telegram](https://t.me/mybucks_online)