Package Exports
- blockchain-wallet-validator
- blockchain-wallet-validator/dist/index.cjs
- blockchain-wallet-validator/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (blockchain-wallet-validator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Blockchain Wallet Validator
A comprehensive TypeScript library for validating blockchain wallet addresses across multiple networks.
Features
- ๐ Lightweight: < 10KB minified + gzipped
- ๐ Type-safe: Written in TypeScript with full type definitions
- โก Fast: No heavy dependencies
- ๐งช Well-tested: 100% test coverage
- ๐ Multi-network support:
- EVM (Ethereum, Polygon, BSC, etc.)
- ENS Domains (including subdomains)
- Bitcoin (Legacy, SegWit, Native SegWit)
- Solana
- Cosmos ecosystem (Cosmos, Osmosis, Juno, etc.)
- Cardano
- Polkadot
- Ripple (XRP)
- Algorand
- Stellar
- Core (ICAN)
- ๐ฆ Modern package:
- ESM and CommonJS support
- Tree-shakeable
- Zero configuration
- Works in Node.js and browsers
Installation
# Using pnpm (recommended)
pnpm add blockchain-wallet-validator
# Using npm
npm install blockchain-wallet-validator
# Using yarn
yarn add blockchain-wallet-validator
Usage
import { validateWalletAddress } from 'blockchain-wallet-validator';
// Validate an Ethereum address
const evmResult = validateWalletAddress(
'0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97',
);
console.log(evmResult);
// {
// network: 'evm',
// isValid: true,
// description: 'Ethereum Virtual Machine compatible address (Ethereum, Polygon, BSC, etc.)',
// metadata: {
// isChecksumValid: true,
// format: 'hex'
// }
// }
// Validate a Bitcoin testnet address
const btcResult = validateWalletAddress(
'tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx',
{ testnet: true },
);
console.log(btcResult);
// {
// network: 'bitcoin',
// isValid: true,
// description: 'Bitcoin Native SegWit address',
// metadata: {
// format: 'Native SegWit',
// isTestnet: true
// }
// }
API Reference
validateWalletAddress(address: string, options?: ValidationOptions): NetworkInfo
Validates a blockchain wallet address and returns information about the network it belongs to.
Parameters
address
(string): The wallet address to validateoptions
(optional): Validation optionstestnet
(boolean): Whether to validate as a testnet address (currently only supported for Bitcoin)network
(string): Specify the expected network (future use)
Returns
Returns a NetworkInfo
object containing:
network
(string): The identified blockchain networkisValid
(boolean): Whether the address is validdescription
(string): Human-readable description of the address typemetadata
(object): Additional information about the address- Properties vary by network type
- May include format, checksum validation, testnet status, etc.
Supported Networks
Network | Address Format | Example |
---|---|---|
EVM | Hex (0x...) | 0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97 |
ENS | name.eth | vitalik.eth |
Bitcoin Legacy | Base58 (1...) | 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 |
Bitcoin SegWit | Base58 (3...) | 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy |
Bitcoin Native SegWit | Bech32 (bc1...) | bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq |
Solana | Base58 | DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy |
Cosmos | Bech32 | cosmos1yw6g44c4pqd2rxgrcqekxg9k8f4fd8xpx2k8c3 |
Cardano | Bech32 | addr1... |
Polkadot | SS58 | 1FRMM8PEiWXYax7rpS6X4XZX1aAAxSWx1CrKTyrVYhV24fg |
Ripple | Base58 | rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh |
Algorand | Base32 | VCMJKWOY5P5P7SKMZFFOCEROPJCZOTIJMNIYNUCKH7LRO45JMJP6UYBIJA |
Stellar | Base32 | GBQMXVTR5HQNRGXPR4ZPBOZR7VQXOQMEQMZWIVLIW2MYBXC2HQWZZ4VJ |
Core | ICAN | cb7147879011ea207df5b35a24ca6f0859dcfb145999 |
Performance
- Bundle size: < 10KB minified + gzipped
- No runtime dependencies except:
bs58check
: For Bitcoin address validationethereum-cryptography
: For EVM checksum validation
- Tree-shakeable: Only imports what you use
- Zero configuration required
Browser Support
- All modern browsers (Chrome, Firefox, Safari, Edge)
- IE11 not supported
Development
# Install dependencies
pnpm install
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Build the package
pnpm build
# Check bundle size
pnpm size
# Analyze bundle
pnpm analyze
# Format code
pnpm format
# Lint code
pnpm lint
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Requirements
- Node.js >= 16
- pnpm >= 8.10.0 (recommended) or npm/yarn
Security
This package helps validate the format of blockchain addresses but does not guarantee the security or ownership of the addresses. Always verify addresses through multiple sources before sending any transactions.
Changelog
See CHANGELOG.md for release history.
Credits
Created and maintained by Sergiy Dybskiy.