This is awesome, thank you , Jim. One wee point, instead of an app being authorised to read a Safecoin balance, perhaps it could be only authorised to answer Y/N to the Q “Is there enough Safecoin to do X?”
If an app needs to withdraw a small amount (with permission) then it can be authorised to go ahead if balance > cost of current operation. The app (in most cases) would not need to know the actual balance, only that there are sufficient funds to do whatever is required.
Or m I making it too complicated for now? Or not reading it all carefully enough?