Whitepaper
Seedless, Disposable Crypto Wallet with 1-Click Gifting
1) Design Philosophy
2) Security Architecture
import { Buffer } from "buffer";
import { ethers } from "ethers";
import { scrypt } from "scrypt-js";
const HASH_OPTIONS = {
N: 131072, // 2^17
r: 8,
p: 1,
keyLen: 64,
};
const KDF_DOMAIN_SEPARATOR = "mybucks.online-core.generateHash.v2";
const abi = new ethers.AbiCoder();
export async function generatePrivateKey(passphrase, pin) {
const passwordBuffer = Buffer.from(passphrase, "utf8");
// Default mode: domain-separated salt derivation
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");
// Memory-hard key derivation
const hashBuffer = await scrypt(
passwordBuffer,
saltBuffer,
HASH_OPTIONS.N,
HASH_OPTIONS.r,
HASH_OPTIONS.p,
HASH_OPTIONS.keyLen
);
const hashHex = Buffer.from(hashBuffer).toString("hex");
// Final wallet private key material
return ethers.keccak256(abi.encode(["string"], [hashHex]));
}Scrypt Parameters
Parameter
Value
March 2026: hardened Default mode
3) 1-Click Gifting: Wallet via URL
4) Core Package Integration
5) Browser-Level Hardening
6) Vulnerabilities and Mitigation Strategy
Major Vulnerabilities
Our Response
7) Networks & Token Display
8) Trust & Verification
⚠️ Disclaimers & User Responsibility
References
Last updated