Its up to you then to figure out how you want or not want to support the usage of “free items” in your extension over bits exchanged for items. How you protect that is up to you to determine.
Knowing if bits is enabled or not doesn’t matter since, in theory, you could allow a channel to have free and bits exchanged items at the same time regardless of the setting.
Additionally a Desktop app cannot validate JWT’s or create JWT’s to talk to the config service anyway as you would be leaking your extension client secret.
That is unless your Desktop app connects to a server and the server handles the security and data relay.
In fact I can’t think of a way for a desktop app to recieve bits transaction JWT’s without a relay server. And that server can handle the necassary security.
You could also send the isBitsEnabled flag with your transactionRecipet JWT when you POST it to yoru server after a transactionComplete occurs.
As trn JWT’s only exist if bits are enabled.
But then you just have to figure out how you want to support free items or not.
I guess a you’d store the product list on your server, and the streamer can enable/disable the free item and you cross reference that list