{"title": "Mybucks.online", "logoImg": "bafkreidtoztmzaezxure5jqshgbpiftux4oyibrof6pmx5a3xeoxi7qoku", "website": "https://mybucks.online", "bannerImg": "bafkreigkwn5d2azie6gmalzqmnmfc7wqie5si777dtudqsc7t2zpzp76ce", "createdAt": 1726811740419, "userGithub": "koko37", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..6G5jbai2CRl9_CbYL72DEpSMuGRkZD5d8DZrxdegxnfOYzExAVVY5C4nYK0xVgeuGz5Fvlw3GR7Rx2js4Ig5Cg", "type": "Ed25519Signature2018", "created": "2024-09-20T05:54:56.524Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-09-20T05:54:56.524Z", "expirationDate": "2024-12-19T05:54:56.524Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x620dc94C842817d5d8b8207aa2DdE4f8C8b73415", "hash": "v0.0.0:e8QilkUyAr+Ofxk2W24h1u5Ubr6CPqGnoKmV9EynSJQ=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#mybucks-online#3715794"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..EPxqr8yNI5gsqouegvuL5vhEnCCkpbmoQCqZsSyHqXh5m4bV7wtNF85eK5vr0gAVt5dxOQXEDdqCY5You5qVDQ", "type": "Ed25519Signature2018", "created": "2024-10-07T07:05:43.299Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-10-07T07:05:43.299Z", "expirationDate": "2025-01-05T07:05:43.299Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x620dc94C842817d5d8b8207aa2DdE4f8C8b73415", "hash": "v0.0.0:cSgNvxDAwewtTPkSHEhm74lJBA2MSjaz1sHcPY7ltOA=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#mybucks_online"}}}, "description": "[Mybucks.online](https://mybucks.online) is a **password-only, self-custodial cryptocurrency wallet**. 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.\n\nTo further enhance security, it utilizes the **scrypt** Key Derivation Function (KDF). This mechanism increases the computational effort required to crack passwords, effectively delaying brute-force attacks and making them impractical.\n\nIt **fully runs on your browser side without** using any storage or invoking any third-party APIs for key management. It instantly generates your private key from your password input, and whenever you close or refresh, **there is no footprint**. This absolutely protects your privacy.\n\n# How it works\n\nThe **password** is the primary field used to generate a private key and create your account. To **avoid password duplication** among users, we have also introduced a shorter secondary field called the **passcode**, which is about 6 characters long.\n\nBy **combining the password and passcode**, we can achieve strong randomness, ensuring the safety of your account. Additionally, the passcode serves as a confirmation step when backing up your credentials or transferring assets.\n\n![How it works](https://mybucks.online/assets/images/encrypt.png)\n\n# Key generation\n\nThe minimal JavaScript code used to **generate a private key from password and passcode inputs** is shown below. You can generate your private key directly without using mybucks.online.\n\nHere, the **password** is a traditional input that must be at least 12 characters long and include a combination of lowercase letters, uppercase letters, numbers, and special characters. The **passcode** is a shorter input, at least 6 characters long, used to **prevent account duplication** due to **password reuse** and also as a confirmation for secure areas.\n\n```javascript\nimport { Buffer } from \"buffer\";\nimport { ethers } from \"ethers\";\nimport { scrypt } from \"scrypt-js\";\n\nconst HASH_OPTIONS = {\n  N: 32768, // CPU/memory cost parameter, 2^15\n  r: 8, // block size parameter\n  p: 5, // parallelization parameter\n  keyLen: 64,\n};\n\nasync function generatePrivateKey(password, passcode) {\n  const salt = password.slice(-4) + passcode\n\n  const passwordBuffer = Buffer.from(password);\n  const saltBuffer = Buffer.from(salt);\n\n  const hashBuffer = await scrypt(\n    passwordBuffer,\n    saltBuffer,\n    HASH_OPTIONS.N,\n    HASH_OPTIONS.r,\n    HASH_OPTIONS.p,\n    HASH_OPTIONS.keyLen,\n    (p) => console.log(Math.floor(p * 100))\n  );\n  const hashHex = Buffer.from(hashBuffer).toString(\"hex\");\n  const privateKey = ethers.keccak256(abi.encode([\"string\"], [hashHex]));\n\n  return privateKey;\n}\n```\n\nYou can find the code [here](https://github.com/mybucks-online/key-generation/blob/master/index.js). You can download the repository and execute it on your local machine as a backup for account generation.\n\n# Transfer wallet using a URL\n\nWith mybucks.online, you can send cryptocurrency and even wallet itself via a URL.   \nThe recipient simply clicks the link to open the wallet and take full ownership.\n\nTry this link:\nhttps://app.mybucks.online/?wallet=VWnsSGRGVtb0FjY291bnQ1JgIxMTIzMjQCb3B0aW1pc20=_wNovT\n\nYou can create a one-time wallet, put a value on that and transfer its ownership as a gift, without asking recipient address.\n\nYou can generate a link in the Backup menu. Internally, this process encodes the password and passcode into a URL-friendly format and generates a token.   \nWhen a user clicks the link, it will decode the password and passcode, identify the active network, and generate the account.\n\n# Security Audit\n\nSecure3 is a battlefield where elite auditors compete to safeguard Web3 innovations against security threats. They have provided security audits for over 140 projects, including zkSync, Polkadot, and more!\n\nAll findings have been successfully resolved and published on their site. The audit report can be found here:  https://app.secure3.io/5c92d55acd\n\n# Links\n\nWebsite: https://mybucks.online\n\nWallet: https://app.mybucks.online\n\nGithub: https://github.com/mybucks-online\n\nDocs: https://docs.mybucks.online\n\nDiscord: https://discord.gg/RTHgTePKgP\n\nX: https://x.com/mybucks_online", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "mybucks-online", "projectTwitter": "mybucks_online"}
Mybucks.online
[Mybucks.online](https://mybucks.online) is a **password-only, self-custodial cryptocurrency wallet**. 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.

To further enhance security, it utilizes the **scrypt** Key Derivation Function (KDF). This mechanism increases the computational effort required to crack passwords, effectively delaying brute-force attacks and making them impractical.

It **fully runs on your browser side without** using any storage or invoking any third-party APIs for key management. It instantly generates your private key from your password input, and whenever you close or refresh, **there is no footprint**. This absolutely protects your privacy.

# How it works

The **password** is the primary field used to generate a private key and create your account. To **avoid password duplication** among users, we have also introduced a shorter secondary field called the **passcode**, which is about 6 characters long.

By **combining the password and passcode**, we can achieve strong randomness, ensuring the safety of your account. Additionally, the passcode serves as a confirmation step when backing up your credentials or transferring assets.

![How it works](https://mybucks.online/assets/images/encrypt.png)

# Key generation

The minimal JavaScript code used to **generate a private key from password and passcode inputs** is shown below. You can generate your private key directly without using mybucks.online.

Here, the **password** is a traditional input that must be at least 12 characters long and include a combination of lowercase letters, uppercase letters, numbers, and special characters. The **passcode** is a shorter input, at least 6 characters long, used to **prevent account duplication** due to **password reuse** and also as a confirmation for secure areas.

```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(password, passcode) {
  const salt = password.slice(-4) + passcode

  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;
}
```

You can find the code [here](https://github.com/mybucks-online/key-generation/blob/master/index.js). You can download the repository and execute it on your local machine as a backup for account generation.

# Transfer wallet using a 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

You can create a one-time wallet, put a value on that and transfer its ownership as a gift, without asking recipient address.

You can generate a link in the Backup menu. Internally, this process encodes the password and passcode into a URL-friendly format and generates a token.   
When a user clicks the link, it will decode the password and passcode, identify the active network, and generate the account.

# Security Audit

Secure3 is a battlefield where elite auditors compete to safeguard Web3 innovations against security threats. They have provided security audits for over 140 projects, including zkSync, Polkadot, and more!

All findings have been successfully resolved and published on their site. The audit report can be found here:  https://app.secure3.io/5c92d55acd

# Links

Website: https://mybucks.online

Wallet: https://app.mybucks.online

Github: https://github.com/mybucks-online

Docs: https://docs.mybucks.online

Discord: https://discord.gg/RTHgTePKgP

X: https://x.com/mybucks_online
Mybucks.online