Satハンティング
Ordinal hunting is difficult but rewarding. The feeling of owning a wallet full of UTXOs, redolent with the scent of rare and exotic sats, is beyond compare.
オーディナルズはsatoshiの番号です。すべてのsatoshiにはオーディナル番号があり、すべてのオーディナル番号にはsatoshiがあります。
準備
始める前に必要なものがいくつかあります。
-
まず、トランザクションインデックスを持つ同期されたBitcoin Coreノードが必要です。トランザクションインデックシングを有効にするには、コマンドラインで
-txindex
を渡してください:bitcoind -txindex
または、Bitcoin設定ファイルに以下を追加してください:
txindex=1
起動してチェーンの最新部分に追いつくまで待ち、その時点で次のコマンドが現在のブロック高を出力するはずです:
bitcoin-cli getblockcount
-
二番目に、同期された
ord
インデックスが必要です。-
repo から
ord
のコピーを取得してください。 -
ord --index-sats server
を実行してください。Bitcoin Coreノードに接続し、インデックシングを開始するはずです。 -
Once it has finished indexing, leave the server running and submit new
ord
commands in a separate terminal session.
-
-
Third, you'll need a wallet with UTXOs that you want to search.
Searching for Rare Ordinals
Searching for Rare Ordinals in a Bitcoin Core Wallet
The ord wallet
command is just a wrapper around Bitcoin Core's RPC API, so searching for rare ordinals in a Bitcoin Core wallet is Easy. Assuming your wallet is named foo
:
-
Load your wallet:
bitcoin-cli loadwallet foo
-
Display any rare ordinals wallet
foo
's UTXOs:ord --index-sats wallet --name foo sats
Searching for Rare Ordinals in a Non-Bitcoin Core Wallet
The ord wallet
command is just a wrapper around Bitcoin Core's RPC API, so to search for rare ordinals in a non-Bitcoin Core wallet, you'll need to import your wallet's descriptors into Bitcoin Core.
Descriptors describe the ways that wallets generate private keys and public keys.
You should only import descriptors into Bitcoin Core for your wallet's public keys, not its private keys.
If your wallet's public key descriptor is compromised, an attacker will be able to see your wallet's addresses, but your funds will be safe.
If your wallet's private key descriptor is compromised, an attacker can drain your wallet of funds.
-
Get the wallet descriptor from the wallet whose UTXOs you want to search for rare ordinals. It will look something like this:
wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29
-
Create a watch-only wallet named
foo-watch-only
:bitcoin-cli createwallet foo-watch-only true true
Feel free to give it a better name than
foo-watch-only
! -
Load the
foo-watch-only
wallet:bitcoin-cli loadwallet foo-watch-only
-
Import your wallet descriptors into
foo-watch-only
:bitcoin-cli importdescriptors \ '[{ "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#tpnxnxax", "timestamp":0 }]'
If you know the Unix timestamp when your wallet first started receive transactions, you may use it for the value of
"timestamp"
instead of0
. This will reduce the time it takes for Bitcoin Core to search for your wallet's UTXOs. -
Check that everything worked:
bitcoin-cli getwalletinfo
-
Display your wallet's rare ordinals:
ord wallet sats
Searching for Rare Ordinals in a Wallet that Exports Multi-path Descriptors
Some descriptors describe multiple paths in one descriptor using angle brackets, e.g., <0;1>
. Multi-path descriptors are not yet supported by Bitcoin Core, so you'll first need to convert them into multiple descriptors, and then import those multiple descriptors into Bitcoin Core.
-
First get the multi-path descriptor from your wallet. It will look something like this:
wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/<0;1>/*)#fw76ulgt
-
Create a descriptor for the receive address path:
wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)
And the change address path:
wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)
-
Get and note the checksum for the receive address descriptor, in this case
tpnxnxax
:bitcoin-cli getdescriptorinfo \ 'wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)'
{ "descriptor": "wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29", "checksum": "tpnxnxax", "isrange": true, "issolvable": true, "hasprivatekeys": false }
And for the change address descriptor, in this case
64k8wnd7
:bitcoin-cli getdescriptorinfo \ 'wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)'
{ "descriptor": "wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)#fyfc5f6a", "checksum": "64k8wnd7", "isrange": true, "issolvable": true, "hasprivatekeys": false }
-
Load the wallet you want to import the descriptors into:
bitcoin-cli loadwallet foo-watch-only
-
Now import the descriptors, with the correct checksums, into Bitcoin Core.
bitcoin-cli \ importdescriptors \ '[ { "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#tpnxnxax" "timestamp":0 }, { "desc": "wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/1/*)#64k8wnd7", "timestamp":0 } ]'
If you know the Unix timestamp when your wallet first started receive transactions, you may use it for the value of the
"timestamp"
fields instead of0
. This will reduce the time it takes for Bitcoin Core to search for your wallet's UTXOs. -
Check that everything worked:
bitcoin-cli getwalletinfo
-
Display your wallet's rare ordinals:
ord wallet sats
Exporting Descriptors
Sparrowウォレット
Navigate to the Settings
tab, then to Script Policy
, and press the edit button to display the descriptor.
Transferring Ordinals
The ord
wallet supports transferring specific satoshis by using the name of the satoshi. To send the satoshi zonefruits
, do:
ord wallet send <RECEIVING_ADDRESS> zonefruits --fee-rate 21
You can also use the bitcoin-cli
commands createrawtransaction
, signrawtransactionwithwallet
, and sendrawtransaction
, but this method can be complex and is outside the scope of this guide.