metadata: {"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": "# Introduction\n\n[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# 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", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "mybucks-online", "projectTwitter": "mybucks_online"}
name: Mybucks.online