bip21_uri
A Bip21 compatible URL encoding package developed for DartLang.
What this package is like to depend on
Last release 25 days ago
29 Jul 2026
Ships unpredictably
gaps range from 2 weeks to 11 months
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
7 releases · first in 2025
2 releases in the last 12 months
see the full history below
Release timeline
7 releases · Jun 2025 to Jul 2026
2026
Releases
latest 7-
2.2.029 Jul 2026Release notes
Open source →- fix:
amountwas encoded throughdouble.toString(), which switches to scientific notation below1e-6— one satoshi was emitted asamount=1e-8, which no BIP21 grammar accepts (an optionalX/xexponent, nevere). Amounts are now formatted at satoshi precision with trailing zeros trimmed, so canonical values such as20.3are unchanged. - fix: the
pjfragment separator is preserved as received instead of being rewritten to+.-is the separator of the current payjoin specification and+the legacy one; rust-payjoin accepts both and chooses between them incheck_fragment_delimiter, so the2.1.2retrocompatibility shim forpayjoin-flutternow only turns current URIs back into their deprecated form. Behaviour change: decoding a-separated endpoint no longer returns a+separated one. - fix: only the BIP77 fragment is uppercased. The URL before it is case-sensitive, so a directory host containing a hyphen, or a mailbox path that is not already uppercase, is no longer corrupted. A BIP78 v1 endpoint, which has no fragment, is left untouched.
- fix:
-
2.1.302 Sep 2025 -
2.1.217 Aug 2025Release notes
Open source →- refactor:
payjoin-flutteris not compatible with hyphens-symbol defined in the latest payjoin specification. To ensure retrocompatibility withpayjoin-flutter,bip21_uriis returning the pj field with+sign.
- refactor:
-
2.1.124 Jul 2025 -
2.1.024 Jul 2025Release notes
Open source →- If
pjis passed among the options of the query parameters, the package now process it as a payjoin Uri specified in BIP77 supporting both percent encoded or not,+and-. Keep the#encoded as%23and the Uri is uppercase. - Payjoin unit tests
- If
-
2.0.126 Jun 2025Release notes
Open source →- Empty amount is decoded as null
- Empty message or label is decoded/encoded as empty
- Empty options are encoded/decoded
-
2.0.023 Jun 2025Release notes
Open source →Breaking Changes
- Package renamed:
dart_bip21→bip21_uri - Model renamed:
BIP21→Bip21Uri - Amount type changed:
num?→double? - API restructured: Complete rewrite of the codebase with new file structure
- Package renamed: