In your trading robot's profile there is a slider labeled "Use stealth invoices". When enabled it will cause the Lightning invoice to not include details of the trade order. When this setting is left off (the default), the invoice will include:
RoboSats - Taking 'Order nnnnn' Selling BTC for nnn.nUSD - Taker bond - This payment WILL FREEZE IN YOUR WALLET, check on the website if it was successful. It will automatically return unless you cheat or cancel unilaterally.
When Steath mode is enabled, the invoice contains instead a payment reference (GUID):
This payment WILL FREEZE IN YOUR WALLET, check on the website if it was successful. It will automatically return unless you cheat or cancel unilaterally. Payment reference: [1234abcd-5678-90ef-abcd-efabcd123456]
The tooltip description for this setting shows:
Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.
This Tweet explains why Stealth invoices was added.
You can now enable "Stealth Invoices" on your robot profile 🥷
Enable it for invoices with succinct descriptions. Ideal if you are using a third party lightning wallet (i.e., not your own node).
Stay private 🤖🤘
And here's the issue in the RoboSats github explaining further:
Add 'stealth invoices': an On/Off toggle for lightning invoice description #168
I'm going to give RoboSats a try. I'm beginning to think more and more about non-kyc Bitcoin and holding a stack that is off the record so to speak.
So if one uses a KYC account to swap via lightning, does just stripping that information prevent the custodian from knowing who exchanged with who?
Right. If you were to use something like Kraken (which requires identity verification / KYC) to pay the lightning invoice using your account balance at Kraken, you probably don't want them to have access to data that would indicate this was a P2P trade on RoboSats.
The problem was that order information on RoboSats is public. So, for example, let's say one of the 87,000 new IRS agents asks Kraken to share the invoice info from withdrawals made, and they see that Bob made a 3M sat withdrawal (~$750) for order #12345, they can then find that order #12345 was where the seller (Bob) sold bitcoin at $25,000. And Kraken shows Bob previously bought that bitcoin at $18K. And Bob didn't report any capital gains for that year. That becomes a problem. By simply not including that Order # in the LN invoice description, the ability to link the LN withdrawal from Kraken to a specific order on RoboSats is essentially impossible as only the buyer and seller have that payment reference GUID information that Kraken would have seen.
That's one example. Another is where, let's say, a data breach at Kraken reveals that Alice (buyer) has received dozens of LN deposits into her Kraken account, and from those RoboSats order numbers from the LN invoices it can be seen that she uses Zelle as her payment method used when buying those sats. And then Zelle terminates her account as a result. Nobody wants or needs that.
Just curious, why would Zelle terminate her account?
Essentially every bank that supports Zelle has in their terms of service:
The following types of payments are prohibited through the Zelle® and Other Payment Services, and we have the right but not the obligation to monitor for, block, cancel and/or reverse such payments:
F. Payments relating to transactions that:
e. are associated with the following “money service business” activities: the sale of traveler's checks or money orders, currency dealers or exchanges (including digital currencies such as Bitcoin), or check cashing; or
Yea it is definitely risky.
that sounds good why isnt stealth invoices on by default? oh nvm someone else already asked the question further down
privacy for everyone! this is great
Why not enable this by default?
Good question. Maybe because the Order number is how the trade is identified. For example, the path in the URL for the order is /order/nnnnn
If you have multiple offers, having the Order number makes it easier to verify that you are paying the right invoice, or makes tracking a payment later easier.
Or maybe there is another reason that I'm not aware of.