A TypeScript implementation of a multi-chain wallet supporting different virtual machines (EVM and SVM).
- BIP32 wallet implementation
- Support for multiple virtual machines:
- EVM (Ethereum Virtual Machine)
- SVM (Solana Virtual Machine)
- Transaction handling and signing
- Hierarchical Deterministic (HD) wallet support
- BIP39 mnemonic support
├── utils/
│ ├── evm/ # Ethereum Virtual Machine implementation
│ ├── svm/ # Solana Virtual Machine implementation
│ ├── bip32Old.ts # Legacy BIP32 implementation
│ ├── bip32Small.ts # Optimized BIP32 implementation
│ ├── walletBip32.ts# BIP32 wallet functionality
│ └── types.ts # Type definitions
npm installThe wallet implements the IChainWallet interface for consistent cross-chain functionality. Each virtual machine implementation (EVM and SVM) follows this interface to ensure consistent behavior across different blockchains.
// Import the wallet implementation
import { WalletBip32 } from './utils/walletBip32';
import { EVMWallet } from './utils/evm';
import { SVMWallet } from './utils/svm';
// Initialize wallets
const evmWallet = new EVMWallet();
const svmWallet = new SVMWallet();
// Work with different chains using the same interface- Node.js (v14 or higher recommended)
- npm or yarn
npm run buildnpm test- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This wallet implementation follows best practices for cryptographic security, including:
- BIP32 for hierarchical deterministic wallets
- Secure key derivation
- Support for multiple virtual machines
This project is licensed under the MIT License.