BLACKHATMAPAffiliate & infrastructure forum
Solved

Invoices go green but I can't spend a satoshi — who do I even email about this?

Started 14 Aug 2023 · 13:22 · 6 replies · 487 views

Page 1 of 17 posts

cashflowkid

Member

14 Aug 2023 · 13:22#1

Spent the whole weekend standing BTCPayServer up on a VPS and honestly it was easier than everyone says!! Store is live, checkout looks great, six invoices paid since Friday, all green, all confirmed.

Problem is I can't do anything with the money. Dashboard says the balance is there but the send screen won't let me sign anything, it just tells me there's no private key configured. I've refreshed, I've restarted the container, same thing.

So is this a freeze? Is there a support address? I genuinely cannot find one anywhere, which is either brilliant or terrifying and right now it's terrifying because that's $2,140 of other people's orders I have to fulfil.

—

grindstone

Senior Member

14 Aug 2023 · 13:41↑ replying to #1#2

there is no account and there is no support address. that's the entire product, mate

you connected a watch-only wallet. it can see the coins and it cannot touch them. the keys are in whatever wallet you exported that xpub from — go and look there, the money is sitting in it

9 thanks

funnel71

Jr. Member

14 Aug 2023 · 14:02#3

Frozen by yourself. Novel.

—

PipelineRat

Member

14 Aug 2023 · 15:47↑ replying to #1#4

Two separate failure modes get reported as "frozen" here and they look identical on the dashboard, so check which one you have before you touch anything.

  1. Watch-only. You imported an xpub during setup, which is the recommended path and also the one that surprises everyone. The server derives addresses and monitors them; it has no signing material. Nothing is stuck, the funds are in the wallet that owns the seed. This is what grindstone is describing and it's the likely one.

  2. Node still catching up. If the invoice went green from a mempool sighting and your node is behind the tip, the balance renders but the wallet won't build a spend against it.

bitcoin-cli getblockchaininfo | grep -E 'blocks|headers|verificationprogress'

If verificationprogress isn't within a whisker of 1 and blocks trails headers, you wait. FWIW that's also the reason to put a watchdog on block height before you take a single order — accepting payments you can't confirm is worse than being down, because then you owe a refund you can't prove you never got.

14 thanks

cashflowkid

Member

14 Aug 2023 · 18:09↑ replying to #4#5

It was the xpub!! Opened the hardware wallet and every single payment is sitting right there, all six.

So I've been panicking about a freeze that was me correctly configuring the thing I asked it to do. Amazing. Thanks both.

—

nullroute

Senior Member

14 Aug 2023 · 21:15#6

Worth being precise about what you learned, because you learned the good half.

Nobody can freeze a wallet you hold the keys to. That is an architectural fact and it is the whole reason to carry the server. Plenty of people can still take the server offline in the middle of a checkout session, and your host is one of them. You moved the freeze risk off the money and onto the infrastructure. Different problem, not no problem.

Write down where the seed backup lives and who else can reach it. A one-person setup where that person is unreachable is a single point of failure you built deliberately.

—opsec is a process, not a purchase

quietaccountant

Member

16 Aug 2023 · 10:33↑ replying to #5#7

Congratulations on the resolution; one thing to set up now while there are only six invoices to fix rather than six hundred.

Export a per-invoice line from day one: invoice reference, timestamp, amount received, and the fiat value at that timestamp. The chain records the payment, but it does not record what it was for or what it was worth on the day, and those are the two things anyone will ask you for later. Reconstructing it eighteen months after the fact is possible. It is not a pleasant weekend.

—

You must be logged in to reply. Request an account — new registrations are reviewed by a moderator before approval.