Is my money just gone?

I tried to deposit my Zcash into an exchange (Poloniex) from my shielded address last week, and now their support is saying they can’t confirm that the transaction ever took place despite zcash-cli z_gettotalbalance now returning 0.

This is the command I used: zcash-cli z_sendmany "$ZADDR" "[{\"address\": \"$TO\", \"amount\": $AMOUNT}]" 1 0.002

  1. explorer.zcha.in doesn’t show any balance or transaction history for $TO. Is this expected? If so, would the recipient have the funds in a shielded address or something?

  2. How can I view my shielded transaction history from the Zcash CLI. It’s extremely frustrating to not even be able to give them a transaction ID as proof that I sent anything.

If my money is gone, what the hell happened? Who has it now? Is it just lost to the abyss?


Edit: Just thought of this: my zcashd has been stuck at 77% for ages; leaving my laptop on overnight (2013 MBP with fast Haswell CPU, SSD, and wired gigabit connection) moves it forward at most one percent. Could it be that the “0 ZEC balance” is a local state and the transaction will only be pushed to the network after I hit 100%? If so, how can I start over and do this transfer in a reasonable amount of time?

Thanks!

As you sent this very recently then transaction expiry would prevent your transaction from being mined after 20 blocks see Transaction Expiry - Electric Coin Company (it’s possible to override this but I’m going to guess you didn’t). If your node wasn’t synced at the time you sent it then basically this wouldn’t have gone through as it’d be expired as soon as you sent it.

Also, after looking at that command you used, you sent it with a crazy fee so it probably was just rejected. The default is there for a good reason (0.0001) and you sent it 20 times higher than that and there are safeguards against mistakes.

So, it’s highly likely it is still in your wallet (particularly if a block explorer isn’t showing any transactions for the to address).

As for why it isn’t showing, syncing your wallet is definitely the best first step. It’d be useful to know what version of zcashd you are running as to why it is so slow to sync zcashd --version. Upgrade to the latest regardless if you haven’t already done so.

If you are running the latest version and it is 100% synced and it is still now showing there are other things you can do but I’d rule out the simple stuff first.

6 Likes

Thanks for the quick reply! Based on all that, I guess I’ll go ahead start fresh with a new Zcash profile and leaving it overnight to see if that gets things into a better state.

It sounds like my transaction almost certainly didn’t go through, so that’s a relief. By trying to send money before it was fully synced, could I have triggered a bug that caused my local client to think that the transaction had actually taken place and essentially fork the blockchain?

Ah, thanks, I copied that command from an example without realizing that the last two parameters were optional.

It says v2.0.1, which is the latest stable release. Would it have caused an issue that I’d started off by reusing an old copy of the blockchain created by zcash4mac early this year?

1 Like

Yeh, I’d say that’s a very high probability.

I doubt it, it would just fail and just return to your wallet. I’m not entirely sure when that would happen though - hence the suggestion of waiting until fully synced. It’s quite a common scenario and there was some recent work in this area which I’ll have to go and find (it either did a better job of guessing the expiry height or prevented spends until it was synced) edit: this is the issue I was thinking of but maybe nothing has been implemented yet Client sends an expired transaction when not caught up with blockchain · Issue #3393 · zcash/zcash · GitHub

That’s the latest release so you are good. There wouldn’t have been an issue using previous blockchain data and in fact it simply saves you from downloading that again. It’s more likely either the transaction expired or the fee caused the transaction to be rejected - I’m not sure exactly where you are stuck but there have been multiple reports of slow syncing until you get past Overwinter or Sapling activation heights due to banning nodes. You may get some more info on this in the debug.log. Also, I think some more stuff may have been added to 2.0.2 which will release imminently.

edit: see this PR for sync issues don't ban peers when loading pre-sapling (and pre-blossom) blocks by LarryRuane · Pull Request #3670 · zcash/zcash · GitHub (this is in 2.0.2)

1 Like

Hmm, okay, thanks for all the help!

No instances of “ban” or “misbehaving”, but I see almost 3000 instances of this in debug.log:

2018-11-30 01:55:53 ERROR: ContextualCheckTransaction(): overwinter is not active yet
2018-11-30 01:55:53 ERROR: AcceptToMemoryPool: ContextualCheckTransaction failed

Should I just put a pin in this until 2.0.2 is released?

I’d leave it running to see if it progresses (even if it is really slow).

If Overwinter isn’t active then that fix above I don’t think is even relevant as this was post-Overwinter and pre-Sapling. You might get a better answer from a dev shortly but for now, I’d just leave it running.

2 Likes

Wouldn’t it be an option to download the QT ZEC wallet and import the private key?

I mean the new QT wallet synced fully in less than 24 hours without any problems. Just an idea.

2 Likes

I believe 2.0.2 will solve the “overwinter is not active yet” problem when syncing.

4 Likes

Okay yeah, starting fresh fixed the issue of the client incorrectly reporting my balance as 0, and then 2.0.2 helped it sync from 0 to 100% A LOT faster (under a day). Thanks for all the help everyone!

6 Likes