Replies: 1 comment 1 reply
-
@LM-CD I'd recommend visiting https://www.getmonero.org/community/hangouts/ - especially |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Current Implementation Status:
I'm working on a Monero wallet implementation in JavaScript that can generate valid wallets from 25-word mnemonic seeds. While the mnemonic seed validation works properly, I'm encountering a problem: the derived private/public keys and addresses don't match what official wallets (Cake Wallet) generate from the same seed.
Technologies and Libraries Used
Node.js/JavaScript: Core implementation language
keccak: For Keccak-256 hash function (required by Monero)
tweetnacl: For Ed25519 cryptographic operations
Buffer: For binary data handling
Implementation Details
Current approach:
Mnemonic Generation/Validation: Works correctly using CRC32 for checksum validation
Key Derivation:
Private spend key: Derived from mnemonic entropy
Private view key: Derived from private spend key using Keccak-256
Public keys: Derived using Ed25519 curves
Address Generation:
Format: network byte + public spend key + public view key + checksum
Encoded using Monero-specific Base58
Subaddress Generation:
Attempt to implement the m = Hs("SubAddr" || a || account_index || subaddress_index) formula
Core Problem
The derived keys and addresses don't match what official Monero wallets produce from the same seed. I've verified the seed is valid, but the cryptographic derivation isn't producing the correct results.
Key Questions
Key Derivation: What is the exact cryptographic procedure to convert a 25-word Monero mnemonic into the correct private spend and view keys?
Elliptic Curve Operations: Are there specific Edwards25519 modifications that Monero uses that differ from standard Ed25519?
Correct Libraries: What JavaScript libraries are recommended for properly implementing Monero's cryptographic operations?
Subaddress Algorithm: What's the correct implementation of Monero's subaddress generation algorithm?
Testing Vectors: Are there any test vectors available to verify my implementation?
I aim to make my implementation compatible with official Monero wallets so users can generate addresses in my application and use them seamlessly in other wallets.
I would greatly appreciate any guidance, code examples, or library recommendations that could help me correctly implement this Monero wallet functionality. My goal is to provide users with a reliable and compatible wallet experience. Thank you in advance for your time and expertise.
Beta Was this translation helpful? Give feedback.
All reactions