Payload guides · Last checked October 29, 2026

Bitcoin QR URIs: Inspect Before Paying

A bitcoin URI can prefill a wallet with an address and optional amount. It does not verify the recipient or authorize a transfer, so inspect the wallet proposal carefully.

Put the guidance into practice: open the related free tool. Examples use stated inputs and are not measured performance claims.

URI partPurposeVerification boundary
bitcoin: addressNames the payment destinationTidy QR checks format, not ownership
amountOptional BTC amountReview the wallet interpretation
labelOptional descriptive textA label does not authenticate a recipient
messageOptional noteMay be displayed differently by wallets
The implemented compatibility format is BIP21. Its repository marks it as superseded by BIP321; wallet support must be checked.

Treat the URI as a payment request

The QR pattern carries a string beginning with the bitcoin scheme and an address. Optional query parameters can include an amount, label and message. A supporting wallet may use that information to prepare a payment screen.

The code itself does not sign a transaction or move funds. The wallet's review and authorization remain separate actions. A design test should inspect what the wallet proposes without submitting a transfer merely to prove the code opens.

The label is descriptive text supplied by the creator. It is not an identity credential. A familiar name next to an address does not prove that the address belongs to that person or organization.

Know which specification is implemented

Tidy QR provides the BIP21-compatible URI requested for this product. The Bitcoin BIPs repository now marks BIP21 as superseded by BIP321. That status is disclosed rather than presenting the older format as the only current specification.

Compatibility with a URI format does not guarantee support for every address type or wallet behavior. Test the intended wallet and network context. A generic camera may simply show the text or offer an application choice instead of opening the expected wallet directly.

The generator is a formatting tool, not a wallet service. It does not generate private keys, manage balances, estimate transaction fees or provide an exchange rate. Keep those responsibilities in the appropriate wallet and financial systems.

Address validation has limits

The implemented field check recognizes supported mainnet-style address syntax. It does not perform full checksum validation or confirm that the recipient controls the address. The interface states that limitation so a plausible-looking string is not mistaken for a verified destination.

Obtain the address through the recipient's trusted channel and compare it in the wallet. Avoid relying only on the first and last characters when the wallet provides a more complete verification route. A copied address can be wrong even if it passes a simple syntax pattern.

Do not paste private keys or recovery phrases into a QR payment field. They are not payment addresses and should not be distributed in printed artwork. The local-processing design does not make publishing secret material safe.

A worked request without a transfer

Choose an illustrative amount of 0.001 BTC and a sample label. Supply a recipient address that has been independently verified for the intended test context. The amount here is an example input, not a price recommendation or a conversion to another currency.

Generate the image and inspect the decoded URI. Open it in the intended wallet only when you are ready to review the request. Check the network, complete destination and amount, then cancel the test without authorizing a transfer.

This sequence tests the handoff from image to wallet. It does not establish the identity of the recipient or whether a real transaction would be appropriate. Those questions belong to the actual payment decision.

Amounts need explicit units

The BIP21 amount is denominated in bitcoin. Do not enter a fiat amount and expect the generator to convert it. Tidy QR does not fetch exchange rates or calculate a live equivalent.

If no amount is included, the receiving wallet may ask the payer to supply one. If an amount is included, review how the wallet displays it. A wallet may offer different display units, so compare the meaning rather than assuming the same textual representation everywhere.

Keep the surrounding label clear about the requested asset and purpose. A broad pay here instruction can hide an important distinction between a cryptocurrency request and a local bank or card payment option.

Printed requests remain static

The address and optional amount remain fixed in an existing image. Changing a value in a new generator session does not update copies already distributed. If the recipient changes the address or the request amount, replace the artwork and remove outdated digital copies.

Store the final decoded URI with the source design. That makes later review possible without guessing from filenames or visual similarity. Avoid collecting unrelated wallet information in the print project record.

A QR code can also be physically replaced by another sticker. For public payment material, inspect the display and provide enough readable context for the payer to verify the intended recipient through a trusted route.

Verify the image and the request separately

The local decoder confirms that the rendered pattern yields the intended URI. It does not inspect a blockchain, query a wallet or certify a payment destination. The absence of a network request is part of the product's privacy behavior, but it also defines the limits of its verification.

A wallet opening successfully is another limited observation. Review the proposed payment before any authorization. If the wallet rejects the URI or displays unexpected values, stop and investigate rather than manually approving a different request to get past the error.

Use the code to reduce transcription, while preserving the same care you would apply to any payment instruction. The convenience of scanning should not collapse destination review and transfer approval into a single automatic step.

Separate the address from surrounding copy

When preparing a public payment card, keep the destination verification process independent of the visual branding. A name, logo or message can be copied by someone who does not control the intended recipient's wallet. The wallet address and trusted recipient channel are the relevant checks.

Review any file received from another designer by decoding it yourself. A familiar filename or unchanged appearance does not establish that the payload is identical. Save the verified URI with the final artwork so later reprints can be compared against the approved source.

Do not add a private key, recovery phrase or wallet backup as a helpful note in the message field. Those are not payment instructions. The fact that generation happens locally does not prevent an exported or printed image from being photographed and redistributed.

If a request changes unexpectedly, stop and confirm the new details through the recipient's established channel. A new QR image can be a legitimate update, but the image format itself offers no proof of that. The same rule applies whether the code is printed, displayed on a website or sent in a message.

This guide concerns formatting and inspection. It does not recommend making a payment, acquiring cryptocurrency or choosing a transaction amount. Those decisions require their own context beyond the successful creation of a QR image.

Frequently asked questions

Does Tidy QR validate address checksums?

No. Its Bitcoin check is format-only. Verify the destination in an appropriate wallet and through the recipient's trusted channel.

Does the generator convert currency?

No. The optional amount is in BTC. No exchange-rate lookup or fiat conversion is performed.

Why mention BIP321?

The source repository marks BIP21 as superseded. This implementation retains BIP21-compatible output and makes that compatibility choice explicit.

Sources

Last checked: . Examples are illustrative inputs, not measured results.

  1. BIP 21: URI Scheme, Bitcoin BIPs contributors. Checked 2026-10-29.
  2. Implementation specifications, checked against source code, Tidy QR. Checked 2026-10-29.