QR-код криптокошелька
QR-код с адресом криптокошелька в стандартных схемах bitcoin:, ethereum:, lightning: — для приёма платежей в BTC, ETH, USDT и Lightning Network без ввода адреса вручную.
QR-код криптокошелька — двумерный код, кодирующий адрес блокчейн-кошелька в стандартизованном URI-формате. При сканировании криптовалютный кошелёк автоматически подставляет адрес получателя и, если указано, сумму или сообщение. Стандарт BIP-21 определяет схему для Bitcoin: bitcoin:1A2B3C...?amount=0.005&label=Shop. Аналогичный подход для Ethereum закреплён в EIP-681: ethereum:0xAbC...?value=1e18, где value передаётся в wei.
Lightning Network использует иной формат — BOLT-11 Invoice: длинная строка, начинающаяся с lnbc (mainnet) или lntb (testnet), содержащая закодированные сумму, получателя, срок действия и подпись канала. Инвойс генерируется под каждый платёж и действует ограниченное время (обычно 1–24 часа), что принципиально отличает Lightning от статичных on-chain адресов. Для QR-код СБП действует аналогичная логика срочности, хотя форматы несовместимы.
Распространённые форматы
- Bitcoin Legacy (P2PKH). Адрес начинается с
1, URI:bitcoin:1ExAm...?amount=0.01. Поддерживается всеми кошельками, самый широкий охват. - Bitcoin SegWit / Taproot. Адреса
bc1q…(Bech32, P2WPKH/P2WSH) иbc1p…(Bech32m, Taproot). Меньшая комиссия, не все старые кошельки распознают. - Ethereum + ERC-20 USDT (TRC-20 аналог на Tron). ERC-20 токены передаются через параметр
function=transferв EIP-681 или через смарт-контракт. Tron (TXYZ...) не использует EIP-681 — формат адреса визуально похож на ETH, но сети несовместимы. - Lightning Invoice (BOLT-11). Динамический инвойс с фиксированной суммой и сроком TTL. Генерируется нодой или кастодиальным сервисом под каждую транзакцию.
- Мемо / Destination Tag. XRP (Ripple) и Stellar требуют обязательного тега назначения при отправке на биржевой адрес. URI-схема:
ripple:rABCD...?dt=12345678. Пропуск тега — распространённая причина потери средств на централизованных биржах.
Риски и проверка
Основная угроза — подмена адреса кошелька (address spoofing). Вредоносное ПО в буфере обмена подменяет скопированный адрес, однако при использовании QR-кода этот вектор устраняется: адрес считывается напрямую без промежуточного копирования. Актуальной угрозой остаётся quishing — физическая подмена наклейки с кодом в точке приёма оплаты или в публичном месте. Перед сканированием кода в кафе, магазине или на мероприятии стоит убедиться, что стикер не наклеен поверх оригинала.
Для проверки суммы и адреса перед подтверждением транзакции рекомендуется сравнить первые 6 и последние 6 символов адреса в кошельке с отображаемыми получателем — атаки типа «vanity address» генерируют похожие, но не идентичные адреса. Для крупных регулярных платежей используют мультиподпись (multisig): транзакция требует подтверждения нескольких ключей, что исключает единую точку отказа. Сканировать криптовалютные QR лучше встроенным сканером кошелька, а не сторонним приложением общего назначения — это уменьшает поверхность атаки. Чтобы создать QR-код кошелька, достаточно вставить адрес и, при необходимости, указать сумму — сервис сформирует корректный URI автоматически.
Частые вопросы
Можно ли использовать один QR-код для разных криптовалют?
Нет. Каждая сеть имеет собственный формат адреса и URI-схему. Bitcoin-адрес не является валидным Ethereum-адресом, и наоборот. Для приёма разных валют создают отдельные QR-коды или используют агрегаторы с функцией выбора сети на странице оплаты — подробнее в статье про приём платежей по QR.
Почему Lightning Invoice нельзя использовать повторно?
BOLT-11 инвойс содержит хэш платёжного прообраза (payment hash) и имеет TTL (time-to-live). После первой успешной оплаты прообраз раскрыт и инвойс считается исполненным; повторная оплата по тому же инвойсу будет отклонена нодой. Для регулярных платежей используют LNURL или статичный адрес формата Lightning Address (user@domain.tld).
Что означает параметр amount в bitcoin:-URI?
Параметр amount передаётся в BTC (не в сатоши). Например, bitcoin:1ExAm...?amount=0.001 — запрос на 0.001 BTC. Кошелёк подставит значение в поле суммы, но пользователь может его изменить. Параметр носит рекомендательный характер, принудительно зафиксировать сумму на стороне отправителя невозможно — в отличие от Lightning Invoice, где сумма вшита в подписанную структуру. Если вам нужна короткая ссылка вместо тяжёлого QR-кода с инвойсом, это решается динамическим перенаправлением.