npm / @scure/base
@scure/base
What changed in @scure/base 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
11 breaking3 new APIs and options3 performance2 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@scure/base 219 changes
Breaking changes 11
Rejects non-ASCII input that becomes valid only through case folding.
Inputs are limited to 2048 bytes because of quadratic complexity.
Inputs are limited to 2048 bytes because of quadratic complexity.
Rejects non-printable-ASCII input instead of allowing case folding to normalize it into a valid string.
Enforces the 90-character BIP-173 length limit by default; pass false or a number to override.
Rejects non-printable-ASCII prefixes.
Rejects non-printable-ASCII input instead of allowing case folding to normalize it into a valid string.
Enforces the 90-character BIP-173 length limit by default; pass false or a number to override.
Rejects non-printable-ASCII prefixes.
Error messages are improved and type checks are stricter.
The UTF-8 decoder is now strict and uses isWellFormed, which is polyfilled in some environments.
New APIs and options 3
Adds a base36 coder for lowercase alphanumeric encoding with the multibase k payload used by IPFS/IPNS addresses.
An overload allows Bech32.decode to handle arbitrary string input.
A strict ASCII decoder is added for character codes in the range 0..127.
Performance 3
Encoding and decoding algorithms are substantially faster, including base64, base32, base16, bech32 toWords, and base58 decode.
Source maps are disabled, reducing the on-disk package size.
Tree-shaking is improved to reduce bundle sizes.
Fixes and other changes 2
Compilation issues on TypeScript v6 are fixed.
Byte array types now work with TypeScript 5.6 and TypeScript 5.9+, avoiding incompatibilities and errors such as TS2345.