New version 3 is a complete re-write of the Algorand QRCode generation tool. Simpler and more effective!
Breaking changes: The way to import and some of options have changed , please consult this readme.
algorand://AMESZ5UX7ZJL5M6GYEHXM63OMFCPOJ23UXCQ6CVTI2HVX6WUELYIY262WI?label=emg110@gmail.com
-
Amount is in MicroAlgos
-
Algorand URI reference specification: Algorand payment prompts specification.
-
Requires NodeJS version later than 10.
- Highlights
- Algorand URI's ABNF Grammar
- Installation
- Usage
- Error correction level
- Mentioned Trademarks
- Credits
- License
- Supports NodeJS and Browser.
- Supports RFC 3986 and Algorand URI ABNF Grammar.
- CLI utility.
- Save QR code as valid SVG image or text
algorandurn = "algorand://" algorandaddress [ "?" algorandparams ]
algorandaddress = *base32
algorandparams = algorandparam [ "&" algorandparams ]
algorandparam = [ amountparam / labelparam / noteparam / assetparam ]
amountparam = "amount=" *digit
labelparam = "label=" *qchar
assetparam = "asset=" *digit
note = "note=" *qcharnpm install --save algorand-qrcodeand then
import algoqrcode from "algorand-qrcode/lib/bundle.min.js"or, install it globally to use qrcode cli command to generate Algorand URI qrcode images in your terminal.
npm install -g algorand-qrcodeand then
algoqrcode [options]import algoqrcode from "algorand-qrcode/lib/bundle.min.js";
const MyQrCodeComponent = (props)=>{
let qrcode = algoqrcode({wallet:props.wallet, label:props.label})
let scg = qrcode.svg()
return svg
}
Usage: algoqrcode [options]
Algorand options:
-m, --amount Amount (in Micro Algos) of Algorand transaction [number]
-w, --wallet Destination Wallet address (Algorand account address) [string]
-l, --label Label of Algorand transaction [string]
-a, --asset Algorand asset id (in case of Algorand ASA transfer) [string]
-n, --note note [string]
QR Code options:
-e, --ecl Error correction level [choices: "L", "M", "Q", "H"]
Renderer options:
-o, --output Output type [choices: "file", "svg", "terminal"]
-w, --wallet Destination wallet [number]
-p, --padding Padding around QRcode [number]
-b, --background Light color [string]
-c, --color Dark color [string]
-s, --size QRcode image width and height (px) [number]
-f, --file Output file [string]
Options:
-h, --help Show help [boolean]
--version Show version number [boolean]
Examples:
- Send 1 Algo transaction:
algoqrcode -w "AMESZ5UX7ZJL5M6GYEHXM63OMFCPOJ23UXCQ6CVTI2HVX6WUELYIY262WI" -m 1000000 -s 128 -n "This is an Algo payment transaction QR Code"
- Save Algorand contact label as svg image:
algoqrcode -w "AMESZ5UX7ZJL5M6GYEHXM63OMFCPOJ23UXCQ6CVTI2HVX6WUELYIY262WI" -l "emg110@gmail.com" -o file -f sample.svg
Import the module algorand-qrcode for your NodeJS module
import algoqrcode from 'algorand-qrcode'
let qrcode = algoqrcode({
wallet: "AMESZ5UX7ZJL5M6GYEHXM63OMFCPOJ23UXCQ6CVTI2HVX6WUELYIY262WI",
label: "Test Label",
output: "svg",
size:256
})
let svg = qrcode.svg()
console.log(svg)Error correction capability allows to successfully scan a QR Code even if the symbol is dirty or damaged. Four levels are available to choose according to the operating environment.
Higher levels offer a better error resistance but reduce the symbol's capacity.
If the chances that the QR Code symbol may be corrupted are low (for example if it is showed through a monitor)
is possible to safely use a low error level such as Low or Medium.
Possible levels are shown below:
| Level | Error resistance |
|---|---|
| L (Low) | ~7% |
| M (Medium) | ~15% |
| Q (Quartile) | ~25% |
| H (High) | ~30% |
The percentage indicates the maximum amount of damaged surface after which the symbol becomes unreadable.
Error level can be set through options.ecl property.
If not specified, the default value is M.
Type: String
Default: M
Error correction level.
Possible values are low, medium, quartile, high or L, M, Q, H.
Type: String
Wallet address for Algorand transaction.
Type: Number
Amount of Algorand transaction in MicroAlgos or Standard Asset Unit.
Type: String
Label of Algorand transaction.
Type: String
Asset Id of Algorand transaction if used. If not specified , Algo will be used as fungible token.
Type: String
note field content of Algorand transaction.
Type: String
Default: M
Define the error correction level.
Type: Number
Default: 5
Define how much wide the quiet zone should be.
Type: Number
Default: 128
Width and height.
Type: String
Default: #000000ff
Color of dark module. Value must be in hex format (RGBA).
Note: dark color should always be darker than color.light.
Type: String
Default: #ffffffff
Color of light module. Value must be in hex format (RGBA).
Special appreciations to Sheghzo.
The idea for this lib was inspired by: Algorand developers portal Article Payment Prompts with Algorand Mobile Wallet ,from Jason Paulos.



