BIP-21: URI Scheme
定義比特幣支付的 URI 格式,讓用戶可以透過點擊連結或掃描 QR Code 發起支付。
21
Standards Track
Proposed
2012-01-29
摘要
BIP-21 定義了一個標準的 URI scheme,讓比特幣地址可以像網頁連結一樣被點擊。 這使得支付請求可以包含金額、標籤、訊息等資訊,大大簡化了支付流程。
URI 格式
基本語法
bitcoin:<address>[?param1=value1¶m2=value2]
參數說明
| 參數 | 說明 | 範例 |
|---|---|---|
| amount | 金額(單位:BTC) | amount=0.001 |
| label | 收款者名稱(給用戶看) | label=Coffee%20Shop |
| message | 支付說明 | message=Order%20123 |
| req-* | 必要參數前綴 | req-somethingnew=... |
範例
最簡單的形式
bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
包含金額
bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq?amount=0.001
完整範例
bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq?amount=0.001&label=Coffee%20Shop&message=Order%20123
URL 編碼規則
參數值必須使用 URL 編碼(百分比編碼):
- • 空格 →
%20 - • & →
%26 - • = →
%3D - • ? →
%3F
擴展參數
BIP-21 支援未來擴展,但有特殊規則:
- ✓ 可選參數:錢包可以忽略不認識的參數
- △ req- 前綴:以 req- 開頭的參數是必要的,如果錢包不支援該參數,應拒絕處理整個 URI
與其他 BIP 的整合
BIP-70 Payment Protocol(已棄用)
BIP-70 定義了 r 參數用於支付請求:
bitcoin:?r=https://merchant.com/pay.php?order=123
注意: BIP-70 Payment Protocol 因安全和隱私問題已被大多數錢包棄用。
閃電網路整合
現代錢包支援統一 QR Code,同時包含鏈上地址和閃電發票:
bitcoin:bc1q...?amount=0.001&lightning=lnbc100n1p...
實際應用
- ✓ 網頁支付按鈕:
<a href="bitcoin:..."> - ✓ QR Code:將 URI 編碼為 QR Code 供掃描
- ✓ 電商結帳:預填金額和訂單資訊
- ✓ 捐款連結:一鍵打開錢包應用
錢包支援
所有主流比特幣錢包都支援 BIP-21 URI:
- • Bitcoin Core
- • BlueWallet
- • Sparrow
- • Electrum
- • 所有現代硬體錢包配套軟體
延伸閱讀: 查看 GitHub 上的完整 BIP-21 文件