ICAN and BCAN validation, formatting, and conversion in JavaScript.
ICAN.js adheres to the ISO 13616 IBAN Registry technical specification and includes support for Crypto addresses, including distinctions for mainnets, testnets, and enterprise networks.
ICAN.js is compatible with both CommonJS and AMD module definitions.
You can install @blockchainhub/ican from NPM using Yarn, NPM, or another tool.
NPM
npm install @blockchainhub/ican
Bun
bun add @blockchainhub/ican
const ICAN = require('@blockchainhub/ican');
console.log(ICAN.isValid('hello world')); // false
console.log(ICAN.isValid('BE68539007547034')); // true
You can use a module loader (AMD or CommonJS) or access it directly through the global ICAN
object:
<script src="ican.js"></script>
<script>
// The API is now accessible from the window.ICAN global object
console.log(ICAN.isValid('hello world')); // false
console.log(ICAN.isValid('BE68539007547034')); // true
</script>
Using ICAN.js with React is straightforward:
import ICAN from '@blockchainhub/ican';
console.log(ICAN.isValid('hello world')); // false
console.log(ICAN.isValid('BE68539007547034')); // true
- Validates an ICAN.
- Parameters:
ican
: The ICAN to validate.onlyCrypto
: (Optional) Restrict validation to crypto definitions. Possible values:true
: Include all crypto networks.false
: Exclude crypto networks.'main'
: Mainnets.'test'
: Testnets.'enter'
: Enterprise networks.
- Converts an ICAN to its country-specific BCAN representation.
- Parameters:
ican
: The ICAN to convert.separator
: (Optional) The separator to use between BCAN blocks (default is' '
).
- Converts a BCAN to an ICAN for a specific country.
- Parameters:
countryCode
: The country code of the BCAN.bcan
: The BCAN to convert.
- Validates a BCAN.
- Parameters:
countryCode
: The country code of the BCAN.bcan
: The BCAN to validate.onlyCrypto
: (Optional) Restrict validation to crypto definitions (same values asisValid
).
- Formats an ICAN for display with separators.
- Parameters:
ican
: The ICAN to format.separator
: (Optional) The separator to use (default is' '
).
- Converts an ICAN to its electronic format (removing non-alphanumeric characters and uppercasing).
- Produces a shortened version of the ICAN with a custom separator.
- Parameters:
ican
: The ICAN to shorten.separator
: (Optional) The separator to use (default is'…'
).frontCount
: (Optional) Number of characters to display at the start (default is4
).backCount
: (Optional) Number of characters to display at the end (default is4
).
ican
: An International Crypto Account Number.bcan
: A country-specific Base Crypto Account Number.countryCode
: The country code for the BCAN.separator
: A separator to format ICAN or BCAN strings.onlyCrypto
: A filter for crypto validation (values:true
,false
,'main'
,'test'
,'enter'
).frontCount
andbackCount
: Define how many characters to include in theshortFormat
method.
We welcome contributions in any form. Here's how you can help:
- Fork this repository.
- Open a pull request.
- Support us with some Øres / ₡ores: cb7147879011ea207df5b35a24ca6f0859dcfb145999.
- Star this repository.
Licensed under the CORE License.