{"_id":"@4i/crypto-address-validator","_rev":"4-0e1fb57bf9c69b7afe4a15eec09234a6","name":"@4i/crypto-address-validator","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.1":{"name":"@4i/crypto-address-validator","version":"1.0.1","keywords":["crypto","cryptocurrency","wallet","validator","address","blockchain","web3","evm","bitcoin","ethereum","erc20","trc20","bep20","solana","ton","react-native","browser"],"author":"","license":"MIT","_id":"@4i/crypto-address-validator@1.0.1","maintainers":[{"name":"4i","email":"tonichiga@gmail.com"}],"homepage":"https://github.com/tonichiga/crypto-wallet-validator#readme","bugs":{"url":"https://github.com/tonichiga/crypto-wallet-validator/issues"},"dist":{"shasum":"80939b9824d7a5a96635690cc89503beb995f8fc","tarball":"https://registry.npmjs.org/@4i/crypto-address-validator/-/crypto-address-validator-1.0.1.tgz","fileCount":74,"integrity":"sha512-NMuklEQfqzu6wNDzlpZ1EcWrFcwF7SgckicVe5LdHYbKvYgQ2vIltA0UAKJz1dsomWckCC6cjStf/oiSq9IdlQ==","signatures":[{"sig":"MEQCIHuq90FKz0QqLy4q3TPnLAFAR9VCDyxQIgmlzTOrawnXAiBKNjKRT54UMRbK7gLlZIhziCxih+Ku/EQF/P93AQ7kpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425058},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./validator":{"types":"./dist/validator.d.ts","default":"./dist/validator.js","require":"./dist/validator.js"},"./config/networks":{"types":"./dist/config/networks.d.ts","default":"./dist/config/networks.js","require":"./dist/config/networks.js"}},"gitHead":"103f6e99a6a30ee6ad3cd4d825d426dd4c095635","scripts":{"build":"npm run clean && tsc -p tsconfig.json && browserify browser-entry.js -o dist/browser.js","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"4i","email":"tonichiga@gmail.com"},"repository":{"url":"git+https://github.com/tonichiga/crypto-wallet-validator.git","type":"git"},"_npmVersion":"11.11.0","description":"Network-based cryptocurrency wallet address validator.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"buffer":"^6.0.3","js-sha256":"^0.11.1","js-sha512":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"browserify":"^17.0.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/crypto-address-validator_1.0.1_1777894719492_0.2819884226705003","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@4i/crypto-address-validator","version":"1.0.2","keywords":["crypto","cryptocurrency","wallet","validator","address","blockchain","web3","evm","bitcoin","ethereum","erc20","trc20","bep20","solana","ton","react-native","browser"],"author":"","license":"MIT","_id":"@4i/crypto-address-validator@1.0.2","maintainers":[{"name":"4i","email":"tonichiga@gmail.com"}],"homepage":"https://github.com/tonichiga/crypto-wallet-validator#readme","bugs":{"url":"https://github.com/tonichiga/crypto-wallet-validator/issues"},"dist":{"shasum":"23fd50b4545e0e16f76c0325eaa0da27bbbfe401","tarball":"https://registry.npmjs.org/@4i/crypto-address-validator/-/crypto-address-validator-1.0.2.tgz","fileCount":74,"integrity":"sha512-YH21/VUfTSZQsVsuH3/ku704lgjuHuhpSFJRZK6rnbHLdopxbCu2jIYHfugb2SCp6oFtGTM83/Vdza3uetPE2g==","signatures":[{"sig":"MEUCIQDzxBjan0dcadxZVggb+Va2a44axMWLdE0wDqioMeYTVgIgawq9cpr4MVu1gdi8vdQyPh96yMAqXAtrOwOsREFBItQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425600},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./validator":{"types":"./dist/validator.d.ts","default":"./dist/validator.js","require":"./dist/validator.js"},"./config/networks":{"types":"./dist/config/networks.d.ts","default":"./dist/config/networks.js","require":"./dist/config/networks.js"}},"gitHead":"e475fb763dfff9a1791e19a0bdd6e4e79253f9ad","scripts":{"build":"npm run clean && tsc -p tsconfig.json && browserify browser-entry.js -o dist/browser.js","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"4i","email":"tonichiga@gmail.com"},"repository":{"url":"git+https://github.com/tonichiga/crypto-wallet-validator.git","type":"git"},"_npmVersion":"11.11.0","description":"Network-based cryptocurrency wallet address validator.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"buffer":"^6.0.3","js-sha256":"^0.11.1","js-sha512":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"browserify":"^17.0.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/crypto-address-validator_1.0.2_1777901695336_0.0734357826500649","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@4i/crypto-address-validator","version":"1.0.3","keywords":["crypto","cryptocurrency","wallet","validator","address","blockchain","web3","evm","bitcoin","ethereum","erc20","trc20","bep20","solana","ton","react-native","browser"],"author":"","license":"MIT","_id":"@4i/crypto-address-validator@1.0.3","maintainers":[{"name":"4i","email":"tonichiga@gmail.com"}],"homepage":"https://github.com/tonichiga/crypto-wallet-validator#readme","bugs":{"url":"https://github.com/tonichiga/crypto-wallet-validator/issues"},"dist":{"shasum":"6fdbd0d60decf969e0aae51a2ef916e9f12ab872","tarball":"https://registry.npmjs.org/@4i/crypto-address-validator/-/crypto-address-validator-1.0.3.tgz","fileCount":74,"integrity":"sha512-Ap1T86Bd51X7w+5TnPmU5nh4yxqE5KuVvGnXaalJrmJHjkZAsKHuMZgWCOlg39BDrlsjH06HSPdwimABYN44xQ==","signatures":[{"sig":"MEQCIFFwm12Xed5jsUbkcSbWFMrFuSxnovutxEMbAijCxWCLAiA3XoRu1ZcDnsV31wDEtOrec3BwF0/2WOd7fTnVFIkFnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425681},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./validator":{"types":"./dist/validator.d.ts","default":"./dist/validator.js","require":"./dist/validator.js"},"./config/networks":{"types":"./dist/config/networks.d.ts","default":"./dist/config/networks.js","require":"./dist/config/networks.js"}},"gitHead":"d86029710bb162218f116d2c50f1b2d45dae3849","scripts":{"build":"npm run clean && tsc -p tsconfig.json && browserify browser-entry.js -o dist/browser.js","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"4i","email":"tonichiga@gmail.com"},"repository":{"url":"git+https://github.com/tonichiga/crypto-wallet-validator.git","type":"git"},"_npmVersion":"11.11.0","description":"Network-based cryptocurrency wallet address validator.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"buffer":"^6.0.3","js-sha256":"^0.11.1","js-sha512":"^0.9.0"},"_hasShrinkwrap":false,"devDependencies":{"browserify":"^17.0.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/crypto-address-validator_1.0.3_1777902357944_0.951777806362774","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@4i/crypto-address-validator","version":"1.0.4","description":"Network-based cryptocurrency wallet address validator.","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","default":"./dist/index.js"},"./validator":{"types":"./dist/validator.d.ts","require":"./dist/validator.js","default":"./dist/validator.js"},"./config/networks":{"types":"./dist/config/networks.d.ts","require":"./dist/config/networks.js","default":"./dist/config/networks.js"}},"scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc -p tsconfig.json && browserify browser-entry.js -o dist/browser.js","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/tonichiga/crypto-wallet-validator.git"},"author":"","keywords":["crypto","cryptocurrency","wallet","validator","address","blockchain","web3","evm","bitcoin","ethereum","erc20","trc20","bep20","solana","ton","react-native","browser"],"license":"MIT","type":"commonjs","bugs":{"url":"https://github.com/tonichiga/crypto-wallet-validator/issues"},"homepage":"https://github.com/tonichiga/crypto-wallet-validator#readme","devDependencies":{"browserify":"^17.0.1","typescript":"^6.0.3"},"dependencies":{"buffer":"^6.0.3","js-sha256":"^0.11.1","js-sha512":"^0.9.0"},"gitHead":"80d386091f9c59ec7f180e7a0c7cfc8fd8ffeec1","_id":"@4i/crypto-address-validator@1.0.4","_nodeVersion":"24.14.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-2QKkRR75d9rOfAHXrGLr7FwUqFDaxwr7mf1pTou9LAWEksvMzqA6pyYQi1PyxB5HRqTZ2/EWIAs1QW9YLlkqgg==","shasum":"19a38f99880db69da2c0bab5937db54566465ce4","tarball":"https://registry.npmjs.org/@4i/crypto-address-validator/-/crypto-address-validator-1.0.4.tgz","fileCount":74,"unpackedSize":428107,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDPfP0NehvB6Uiymg1l/IQ3m5gIIbt/rtKVonWptWvr0AIhAJikNIHcp9DFjfQK8sFB0kdXrkbbjS1RBLE8yGsR7NKF"}]},"_npmUser":{"name":"4i","email":"tonichiga@gmail.com"},"directories":{},"maintainers":[{"name":"4i","email":"tonichiga@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/crypto-address-validator_1.0.4_1777902643136_0.7114167379925631"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T11:38:39.421Z","modified":"2026-05-04T13:50:43.459Z","1.0.1":"2026-05-04T11:38:39.666Z","1.0.2":"2026-05-04T13:34:55.501Z","1.0.3":"2026-05-04T13:45:58.143Z","1.0.4":"2026-05-04T13:50:43.352Z"},"bugs":{"url":"https://github.com/tonichiga/crypto-wallet-validator/issues"},"license":"MIT","homepage":"https://github.com/tonichiga/crypto-wallet-validator#readme","keywords":["crypto","cryptocurrency","wallet","validator","address","blockchain","web3","evm","bitcoin","ethereum","erc20","trc20","bep20","solana","ton","react-native","browser"],"repository":{"type":"git","url":"git+https://github.com/tonichiga/crypto-wallet-validator.git"},"description":"Network-based cryptocurrency wallet address validator.","maintainers":[{"name":"4i","email":"tonichiga@gmail.com"}],"readme":"# @4i/crypto-address-validator\n\nNetwork-first cryptocurrency wallet address validator for Node.js, web, and React Native.\n\nThis library validates addresses by **network / token standard**, not by coin ticker. Example keys: `erc20`, `trc20`, `bep20`, `spl`, `bitcoin`, `ton`.\n\n## Features\n\n- One entrypoint: `validate(network, address)`\n- Works with Node.js, browser bundles, and React Native\n- Supports both full validators and regex-based fallbacks\n- Includes browser bundle output at `dist/browser.js`\n\n## Installation\n\n```bash\nnpm install @4i/crypto-address-validator\n```\n\n## Usage\n\n```js\nconst { validate } = require(\"@4i/crypto-address-validator\");\n\nconst result = validate(\"erc20\", \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\");\n\nconsole.log(result);\n// {\n//   isValid: true,\n//   type: { isValidAddress: [Function: isValidAddress] }\n// }\n```\n\n### Get supported network options\n\n```js\nconst { networkOptions } = require(\"@4i/crypto-address-validator\");\n\nconsole.log(networkOptions);\n```\n\n### Browser usage\n\nBuild the package:\n\n```bash\nnpm run build\n```\n\nThen include the generated browser bundle:\n\n```html\n<script src=\"./dist/browser.js\"></script>\n<script>\n  const { validate, networkOptions } = globalThis.cryptoWalletValidator;\n  console.log(validate(\"bitcoin\", \"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\"));\n</script>\n```\n\n## Public API\n\n| Export                          | Description                                                 |\n| ------------------------------- | ----------------------------------------------------------- |\n| `validate(network, address)`    | Returns `{ isValid, type }`                                 |\n| `networkOptions`                | Canonical list of supported networks for UI dropdowns       |\n| `getNetworkValidation(network)` | Returns the resolved validation config                      |\n| `normalizeNetworkKey(network)`  | Normalizes aliases like `ERC-20`, `erc20`, `ERC20`          |\n| `validationMap`                 | Internal map of normalized network keys to validator config |\n\n### `validate(network, address)` result\n\n```ts\n{\n  isValid: boolean;\n  type: ValidatorModule | \"regex\" | null;\n}\n```\n\nWhere:\n\n- `isValid` — final validation result\n- `type: \"regex\"` — regex-only validation path was used\n- `type: ValidatorModule` — dedicated validator module handled the address\n- `type: null` — invalid input or unknown network\n\n## Supported networks\n\n`Type` means how validation is performed:\n\n- `Validator` — dedicated validator logic\n- `Regex` — regex-only fallback\n\n| Network                   | Key               | Type      |\n| ------------------------- | ----------------- | --------- |\n| Bitcoin                   | `bitcoin`         | Validator |\n| Bitcoin Cash              | `bitcoincash`     | Validator |\n| Bitcoin SV                | `bitcoinsv`       | Validator |\n| Litecoin                  | `litecoin`        | Validator |\n| Dogecoin                  | `dogecoin`        | Validator |\n| Dash                      | `dash`            | Validator |\n| Decred                    | `decred`          | Validator |\n| DigiByte                  | `digibyte`        | Validator |\n| Zcash                     | `zcash`           | Validator |\n| Waves                     | `waves`           | Validator |\n| ERC20                     | `erc20`           | Validator |\n| ERC721                    | `erc721`          | Validator |\n| ERC1155                   | `erc1155`         | Validator |\n| Ethereum Classic          | `ethereumclassic` | Validator |\n| TRC10                     | `trc10`           | Validator |\n| TRC20                     | `trc20`           | Validator |\n| BEP2                      | `bep2`            | Regex     |\n| BEP20                     | `bep20`           | Validator |\n| SPL (Solana)              | `spl`             | Validator |\n| Cardano                   | `cardano`         | Validator |\n| Monero                    | `monero`          | Validator |\n| XRP Ledger                | `ripple`          | Validator |\n| Stellar                   | `stellar`         | Validator |\n| EOS                       | `eos`             | Validator |\n| Tezos                     | `tezos`           | Validator |\n| Crypto.org                | `cryptoorg`       | Validator |\n| Algorand                  | `algorand`        | Validator |\n| Polkadot                  | `polkadot`        | Validator |\n| Polkadot                  | `dotassethub`     | Validator |\n| Aptos                     | `aptos`           | Validator |\n| Hedera                    | `hedera`          | Validator |\n| TON                       | `ton`             | Regex     |\n| Sui                       | `sui`             | Regex     |\n| Near                      | `near`            | Regex     |\n| Cosmos                    | `cosmos`          | Regex     |\n| Osmosis                   | `osmosis`         | Regex     |\n| Injective                 | `injective`       | Regex     |\n| Sei                       | `sei`             | Regex     |\n| Celestia                  | `celestia`        | Regex     |\n| Terra                     | `terra`           | Regex     |\n| Kaspa                     | `kaspa`           | Regex     |\n| Filecoin                  | `filecoin`        | Regex     |\n| IOTA                      | `iota`            | Regex     |\n| Avalanche C-Chain (AVAXC) | `avaxc`           | Validator |\n| Avalanche C-Chain         | `cchain`          | Validator |\n| Arbitrum One              | `arb`             | Validator |\n| Base                      | `base`            | Validator |\n| Optimism                  | `op`              | Validator |\n| Linea                     | `linea`           | Validator |\n| Scroll                    | `scroll`          | Validator |\n| zkSync Era                | `zksyncera`       | Validator |\n| Fantom                    | `ftm`             | Validator |\n| Polygon PoS               | `matic`           | Validator |\n| VeChain                   | `vet`             | Validator |\n| Flare                     | `flr`             | Validator |\n| Berachain                 | `bera`            | Validator |\n| Story                     | `story`           | Validator |\n\n## Aliases\n\nThe validator also accepts many aliases from `validationMap`. Examples:\n\n- `erc20`, `ethereum`, `eth`, `evm`\n- `trc20`, `tron`, `trx`\n- `bep20`, `bsc`, `binancesmartchain`\n- `spl`, `sol`, `solana`\n- `arb`, `arbitrum`\n- `op`, `optimism`\n- `avaxc`, `cchain`, `avalanche`\n\n## Development\n\n```bash\nnpm install\nnpm run build\n```\n\nBuild output:\n\n- `dist/index.js`\n- `dist/config/networks.js`\n- `dist/validator.js`\n- `dist/browser.js`\n\n## Notes\n\n- Validation is **network-based**, not token-symbol-based\n- Browser and React Native support do **not** rely on Node built-in `crypto`\n- Some networks currently use regex fallback until a dedicated validator is added\n\n## License\n\nMIT\n","readmeFilename":"README.md"}