ordinals / ord

👁‍🗨 Rare and exotic sats
https://ordinals.com
Creative Commons Zero v1.0 Universal
3.83k stars 1.36k forks source link

ord wallet not seeing full cardinal or runes balances #3632

Open cryptoni9n opened 5 months ago

cryptoni9n commented 5 months ago

when minting a rune from the ord wallet, by default, the rune and the change from the tx go to new receiving addresses. This is fine but the ord wallet balance command isn't showing the balances for these new utxos held by the wallet. It is being reported from many in the Ordicord that their displayed balances are incomplete.

The is causing users to think that their outputs were sent to 'another wallet', because they're not familiar with the way the wallet dissuades address reuse and they also don't see their funds/runes. In these cases, ord wallet outputs shows all of the utxos with proper balances, but the runes and funds for some of them aren't being included with the balance results.

I have a thread with a pinned explanation for more detail up on the Ordicord here: https://discord.com/channels/987504378242007100/1231226072385720440

I will be attempting to recreate this in 0.18.3 and will post more information here as I find it.

This is a high volume issue on the Ordicord. It has led me to believe that adding an ord setting that gives users a way to enable address reuse would be popular.

edit: I edited the title and rewrote the problem with my new understanding of it.

cryptoni9n commented 5 months ago

I'm testing now in 0.18.3 and this does not appear to be an issue in this latest version. It's possible that users experiencing this issue are using 0.18.1 or earlier, and that the described behaviour has changed as of the wallet migration in 0.18.2 - still testing, just recording my notes here.

gmart7t2 commented 5 months ago

ord wallet balance doesn't only show sats in the current receiving address.

I've seen the problem you are describing twice now, and the problem assists to be with bitcoin core, not ord.

When I run "listunspent" in Bitcoin Core, some utxos that are in the wallet don't show up.

There's a utxo I know exists, it isn't spent, it's at an address that getaddressinfo shows as "ismine: true", but even rescanning the Blockchain from block 0 doesn't let the wallet find it.

I added some debugging to bitcoind to try to figure out why the utxo wasn't showing up, but the act of restarting bitcoind fixed the problem. That's good, in that now my balance shows up correctly, but bad in that I can't find the cause of the problem.

Even switching back to the original version of Core without the debug now shows all the mixing utxos.

So maybe just try restarting bitcoind (and ord server, if using cookie auth, because the cookie will change when you restart bitcoind.

cryptoni9n commented 5 months ago

this issue is affecting many of our discord members and apparently more than one wallet, (reported with unisat and xverse).

image

edit: rewrote

aboutmydreams commented 5 months ago

Same question, is there any way to transfer this rune to the original receive address? Only this address has a balance that allows me to spend gas on transfers or transactions

aboutmydreams commented 5 months ago

In my current observation, on versions after 0.18.2, running ord wallet balance I can see all my balances.

But I haven't found a simple way to transfer it. If anyone has a way, please tell me.

gmart7t2 commented 5 months ago

I etched a bunch of tokens at the halving. Some time in the last day, all the 10000 sat utxos containing the runes disappeared from the "bitcoin-cli listunspent" output.

I restarted bitcoind and now they are back.

This can't be an ord issue, because I'm not using ord, only bitcoin-cli.

gmart7t2 commented 5 months ago

I found the problem:

$ bitcoin-cli -rpcwallet=ord listunspent | wc -l
1

$ bitcoin-cli -rpcwallet=ord lockunspent true
true

$ bitcoin-cli -rpcwallet=ord listunspent | wc -l
3

Simply unlocking all utxos makes them show up again.

Something is locking the outputs and leaving them locked.

cryptoni9n commented 5 months ago

I found the problem:

$ bitcoin-cli -rpcwallet=ord listunspent | wc -l
1

$ bitcoin-cli -rpcwallet=ord lockunspent true
true

$ bitcoin-cli -rpcwallet=ord listunspent | wc -l
3

Simply unlocking all utxos makes them show up again.

Something is locking the outputs and leaving them locked.

Huge thanks for your work on this Greg! I'll update the Ordicord post with the new instruction on how to unlock the utxos in core.

cryptoni9n commented 5 months ago

In my current observation, on versions after 0.18.2, running ord wallet balance I can see all my balances.

But I haven't found a simple way to transfer it. If anyone has a way, please tell me.

Hi aboutmydreams - you can transfer runes using the ord wallet send <RECEIVING_ADDRESS> <OUTGOING> where outgoing is formatted like this: 100:THE.RUNE.NAME.HERE where 100 is the number of THE.RUNE.NAME.HERE that you want to send.

If you need further assistance, please reach out to the #tech-support channel on our official Discord server, The Ordicord

REAL1N commented 5 months ago

根据我目前的观察,在 0.18.2 之后的版本上,运行ord wallet balance我可以看到我的所有余额。 但我还没有找到简单的方法来转移它。如果有人有办法请告诉我。

您好,aboutmydreams - 您可以使用ord wallet send <RECEIVING_ADDRESS> <OUTGOING>以下格式传输符文:100:THE.RUNE.NAME.HERE其中 100 是您要发送的 THE.RUNE.NAME.HERE 的数量。

如果您需要进一步帮助,请联系我们的官方 Discord 服务器The Ordicord上的 #tech-support 频道

100:THE.RUNE.NAME.HERE replaces ? Will this command cost gas? Thank you.

cryptoni9n commented 5 months ago

根据我目前的观察,在 0.18.2 之后的版本上,运行ord wallet balance我可以看到我的所有余额。 但我还没有找到简单的方法来转移它。如果有人有办法请告诉我。

您好,aboutmydreams - 您可以使用ord wallet send <RECEIVING_ADDRESS> <OUTGOING>以下格式传输符文:100:THE.RUNE.NAME.HERE其中 100 是您要发送的 THE.RUNE.NAME.HERE 的数量。 如果您需要进一步帮助,请联系我们的官方 Discord 服务器The Ordicord上的 #tech-support 频道

100:THE.RUNE.NAME.HERE replaces ? Will this command cost gas? Thank you.

yes, sending a transaction will cost fees.

cryptoni9n commented 5 months ago

UPDATE: I've had this advice from Greg work for multiple people with this issue. If your ord wallet is not seeing some of your utxos or their associated sats or runes, try this:

Find the address of one of the missing transactions. Run bitcoin-cli getaddressinfo on the address in core. Look for ismine. Yes means the wallet knows it owns the address.

If you get yes, you probably just need to bitcoin-cli -rpcwallet=<WALLET> rescanblockchain

  • rescanning the blockchain for the wallet having the issue is the fix that is working for people. If you're experiencing this issue with the ord wallet, please try rescanning and then checking your balance afterwards. If you get no, it may be a gap limit issue. But probably not if unisat can see it
raphjaph commented 5 months ago

I think this happens when the tx is still in the mempool. The solution to this is adding mempool support to the wallet and explorer so pending txs can be incorporated into the output.

gmart7t2 commented 5 months ago

I think this happens when the tx is still in the mempool. The solution to this is adding mempool support to the wallet and explorer so pending txs can be incorporated into the output.

Maybe, but for me it happened without anything being unconfirmed. The utxos were locked by ord, and then ignored because they were locked.