Modern blockchain development demands robust, secure, and flexible tools to handle wallet operations such as key generation, transaction signing, and address management. The JavaScript Signing SDK is a powerful, TypeScript/JavaScript-based solution designed to simplify integration across multiple blockchains. Built with modularity and scalability in mind, this SDK supports a wide range of public chains and provides developers with essential cryptographic functions and transaction-handling capabilities.
Whether you're building a decentralized application (dApp), a multi-chain wallet, or a custom blockchain service, this SDK streamlines development by abstracting complex cryptographic logic into reusable modules.
👉 Discover how to integrate secure wallet functionality across 20+ blockchains with ease.
Overview
The JS Wallet SDK is a comprehensive toolkit that enables developers to perform core wallet operations including private key creation, address derivation, transaction assembly, and digital signatures. Written in TypeScript, it ensures type safety and developer-friendly interfaces while supporting both browser and Node.js environments.
This SDK is modular by design—each blockchain has its own dedicated module, allowing for independent updates and minimal bundle sizes when integrating only specific chains. It currently supports major ecosystems such as Ethereum, Bitcoin, Cosmos, Solana, Aptos, SUI, TRON, and more, with continuous expansion planned.
All modules follow consistent interface patterns where possible, making it easier to build cross-chain applications without rewriting core logic for each network.
Supported Platforms
As a JavaScript-based SDK, it works seamlessly across:
- Web browsers (Chrome, Firefox, Safari, Edge)
- Node.js environments
- Mobile apps via React Native or similar frameworks
- Desktop applications using Electron
This cross-platform compatibility makes it ideal for integrating into web3 wallets, dApps, exchange backends, and hardware wallet integrations.
Installation & Setup
Using NPM
You can install the SDK via npm using either the universal package or individual chain-specific modules.
Universal Package (All Chains)
To include support for all supported blockchains:
npm install @okxweb3/coin-base @okxweb3/crypto-libIndividual Chain Modules
For optimized bundle size, install only the chains you need.
Example: Ethereum Support
npm install @okxweb3/coin-ethereumExample: Bitcoin Support
npm install @okxweb3/coin-bitcoinEach module exports standardized methods like signTransaction, getNewAddress, and signMessage, ensuring predictable behavior across chains.
Local Development
If you prefer to build from source:
Clone the repository:
git clone https://github.com/okx/js-wallet-sdk.gitInstall dependencies and build:
cd js-wallet-sdk && npm install && npm run build
This gives you full control over customization and debugging.
Core Features
The SDK is structured into three main component types:
1. crypto-lib
Provides foundational cryptographic utilities including:
- BIP39 mnemonic generation and seed derivation
- BIP32 hierarchical deterministic (HD) wallet functionality
- ECDSA and Ed25519 signature algorithms
- SHA-256, Keccak-256 hashing
- Base64 encoding/decoding
These tools are essential for secure key management and message signing across all supported chains.
2. coin-base
Defines common interfaces shared across all coin modules:
getRandomPrivateKey()– Generate a secure private keygetNewAddress()– Derive an address from a private keysignTransaction()– Sign raw transaction datasignMessage()/verifyMessage()– Handle signed messagesvalidAddress()– Validate blockchain addressescalcTxHash()– Compute transaction hash from serialized data
This abstraction layer ensures consistency and simplifies switching between chains.
3. Chain-Specific Modules (coin-*)
Each blockchain has its own module implementing chain-specific logic:
coin-ethereum: EVM-compatible chains (Ethereum, Polygon, Arbitrum, etc.)coin-bitcoin: BTC and forks (LTC, DOGE, BSV)coin-cosmos: Cosmos SDK chains (ATOM, Juno, Osmosis)coin-solana,coin-aptos,coin-sui,coin-starknet, and more
Each module inherits from coin-base but adds unique features like fee estimation, token transfers, or smart contract interactions.
👉 See how to implement multi-chain wallet signing in under 5 minutes.
Supported Blockchains & Use Cases
The SDK supports over 20 major blockchains, categorized by ecosystem:
| Ecosystem | Supported Chains |
|---|---|
| Bitcoin Family | BTC, BCH, BSV, LTC, DOGE, TBTC |
| Ethereum & EVMs | ETH, Polygon, Arbitrum, Optimism, zkSync Era, Base |
| Cosmos SDK | ATOM, Osmosis, Juno, Kava, Secret Network |
| Layer 2 & ZK Chains | Starknet, zkSync, ZKSpace |
| High-Performance Chains | Solana, Near, SUI, Aptos, Flow |
| Others | TRON, EOS/WAX, Stacks |
Each module supports critical operations like:
- Generating HD wallets from mnemonics
- Signing transactions offline (cold signing)
- Verifying user-signed messages
- Validating addresses before sending funds
Developers can use this SDK to power:
- Non-custodial wallet apps
- Exchange withdrawal systems
- dApp authentication layers
- Hardware wallet simulators
- Blockchain explorers with send functionality
Key Functionalities by Module
While each coin-* module varies slightly based on blockchain architecture, they share a common set of methods:
| Function | Purpose |
|---|---|
getRandomPrivateKey() | Generate cryptographically secure private key |
getDerivedPrivateKey() | Derive child keys using BIP44 paths |
getNewAddress() | Get blockchain address from private/public key |
signTransaction() | Sign serialized transaction buffer |
signMessage() | Sign arbitrary data (e.g., login requests) |
verifyMessage() | Confirm message authenticity |
calcTxHash() | Compute transaction ID from raw bytes |
validAddress() | Check if an address format is valid |
getDerivedPath() | Retrieve standard BIP44 derivation path |
Some chains offer additional capabilities:
- Ethereum: Supports EIP-1559 transactions and contract interactions
- Bitcoin: Handles SegWit (P2SH-P2WPKH, Bech32) and legacy formats
- Solana: Includes hardware wallet compatibility
- Aptos/SUI: Supports NFT minting and token transfers
FAQ
Q: Is this SDK safe for production use?
Yes. The SDK uses well-audited cryptographic libraries and follows industry best practices for key handling. All signing occurs client-side—no private keys are ever transmitted over the network.
Q: Can I use it in a mobile app?
Absolutely. The SDK works in React Native and other JavaScript-based mobile frameworks. Just ensure secure storage of mnemonics and private keys using platform-specific vaults.
Q: Does it support hardware wallets?
Yes. Several modules (e.g., Ethereum, Solana) include methods like getHardWareRawTransaction() to interface with hardware devices during signing workflows.
Q: How do I add support for a new blockchain?
You can extend the coin-base interface and implement required methods. Contributions are welcome via GitHub pull requests.
Q: Is there TypeScript support?
Yes—fully typed APIs with detailed JSDoc comments make integration smooth in TypeScript projects.
Q: Are test cases available?
Yes. Each module includes unit tests under the /tests directory on GitHub. These cover edge cases like invalid inputs and network-specific quirks.
Final Thoughts
The JavaScript Signing SDK is a future-ready toolkit for developers building secure, multi-chain web3 experiences. With modular design, strong typing, and support for leading blockchains—from Ethereum and Bitcoin to emerging L2s like zkSync and Starknet—it empowers teams to ship faster without sacrificing security.
By abstracting away low-level cryptography while preserving flexibility, it lowers the barrier to entry for blockchain integration.
👉 Start building your next-gen web3 app with full wallet functionality today.