ord
ord copied to clipboard
Is it possible to look for rare sats in a non-taproot wallet?
The guide refers to a process of importing wallet descriptors into a read only wallet and then searching for rare sats within. The example shows a wpkh descriptor.
https://docs.ordinals.com/guides/sat-hunting.html#searching-for-rare-ordinals-in-a-wallet-that-exports-multi-path-descriptors
But running the following with a native segwit wallet fails
ord --wallet mywallet wallet sats
error: wallet "mywallet" contains unexpected output descriptors, and does not appear to be an `ord` wallet, create a new wallet with `ord wallet create`
https://github.com/casey/ord/blob/master/src/options.rs#L208
It seems this is now only possible on taproot wallets. Is it possible to scan a non-taproot wallet for rare sats?
You can use this as a workaround:
bitcoin-cli -rpcwallet=mywallet listunspent | jq -r '.[] | [ .txid, .vout|tostring ] | join(":")' | xargs -L 1 ord list | jq '.[] | select(.rarity != "common")'
Brilliant. This worked for me. For anyone like me where you've got stuff in nonstandard locations and have to tell ord about the locations, here's what worked for me. Run this from the directory that contains your ord binary:
bitcoin-cli -rpcwallet=mywallet listunspent | jq -r '.[] | [ .txid, .vout|tostring ] | join(":")' | xargs -L 1 ./ord --index /pathto/sats/index.redb --bitcoin-data-dir /pathto/SSD/BITCOIN list | jq '.[] | select(.rarity != "common")'
Ord is fussy about what wallets it will talk to.
I removed the fussiness and it works to allow scanning for rare sats:
diff --git a/src/options.rs b/src/options.rs
index 6b0823f..e676e06 100644
--- a/src/options.rs
+++ b/src/options.rs
@@ -192,6 +192,8 @@ impl Options {
client.load_wallet(&self.wallet)?;
}
+ let skip_wallet_descriptor_checks = true;
+ if !skip_wallet_descriptor_checks {
let descriptors = client.list_descriptors(None)?.descriptors;
let tr = descriptors
@@ -208,6 +210,7 @@ impl Options {
bail!("wallet \"{}\" contains unexpected output descriptors, and does not appear to be an `ord` wallet, create a new wallet with `ord wallet create`", self.wallet);
}
}
+ }
Ok(client)
}
Thanks. That was going to be my next step.
I removed the fussiness
Is this in your fork, @gmart7t2 ?