Introducing SAFE Wallet app

That’s because once you have a failed transaction due to any type of issue, like entering the wrong recipient, either the sending or the receiving wallet can go to an invalid state that it doesn’t recover itself yet. I will be working on validations, error handling and recovery mechanisms for all these scenarios shortly. In the neantime you can create new wallets to make sure they work as expected with coins transferred back and forth.

Public Key


I think you’re kicking ass Gabriel. Keep up the great work!


congratulation bochaco and welcome @anita and @vivavisual
safe:// opened in 2 seconds creating all the key was fun and interesting then the thankscoin transfer from safefaucet was less than 5 seconds.
very well done the arborescence is simple and easy to use
very nice work:slight_smile:


First of all, thanks @bochaco and your team mates! The domain ending of this app speaks for itself - WOW, great work!

I, tried to understand the underlying code, but it’s hard as it’s compressed/obfuscated. Therefore I have one question in particular. Could you elaborate on how the transfer (especially the recieving) of the coins work?

What I don’t understand is:

  • Is every coin a Mutable Data or is there just a balance per user?
  • In both cases, how do you “modify” the wallet of the recieving user so that the coins appear? The only thing I can think of is a public MD with encrypted entries. Otherwise I couldn’t see how the sender gains access rights without the interaction of the reciever. Also, in this case everyone could see my balance?

Would be really great to hear some insights on these points, if possible. Maybe this helps others too.


Thanks @Mindphreaker!
I’ll be working on a detailed document where I explain the coin wallet’s design & protocol, and publish it along with the code of the SAFE Faucet app in the next few weeks, so it can help others to develop wallets and hopefully make them compatible with the SAFE Wallet app so we can play with different apps sending coins. Let me give you a brief explanation here in the meantime though.

Every coin is a Public MutableData which only permission set is to allow Update to anyone. The MD has a single entry which key is coin-data and its value is a simple json with two attributes: owner and prev_owner. As you may know at the moment is not possible to change ownership of a MD so I mimic that by inspecting and updating this single entry in the coin’s MD.

The SAFE Wallet app keeps a Private MD which is the actual wallet in the network, I call this the Coins Wallet MD. This MD contains just a list of encrypted coins’ XorName addresses. In addition to the Coins Wallet MD, there is another Public MD, which is used to receive notifications of transactions, this is implemented in the exact same way as the email app inbox MD, I call it Wallet TX Inbox. When the SAFE Wallet app detects that there is a new entry in the Wallet TX Inbox, it reads the TX which contains the list of coins transferred, it validates the new ownership, and it then adds the coin’s XorName address to the Wallet MD so it gets reflected in the balance.

You can see there is a color associated to each item, I’m planning to add a filter on the top menu/tool bar so you can dinamically filter the items to show. It was also suggested by @vivavisual, to additionally allow a simplified version of the items, i.e. not a list view but a view where each item is shown in a reduced way, perhaps not allowing to edit or delete it but just view it, and you can then enable the extended/edit view somehow. Thanks a lot for the feedback, all messages I’m receiving from the faucet are very valuable.


Thank you @nymarek. I was amazed by the speed too. Imagine that with more vaults! Thank you everyone for your comments.


you are welcome @vivavisual , yes I sense a new arborescence of coin vaults at that speed will be efficient, on our side we have created a new very advance small device (alien tech) that I sense david will be interested, we have been working on before the maid was launch and it can compatible with maid and any crypto vault access as well from anywhere a personal one:)… we can share more to any of the maid team who is interested.
thank you @vivavisual. tallk to you soon


Just created my Safe Wallet. What fun! I got 6 thanks coin and will now look for someone to send some to. Great work and a nifty example of the sort of app that is really useful for the SAFE Network


Finally got the chance to play with the new and improved wallet app and I’m stunned. I like that it is fun, bright, and clean/well organized. @bochaco @vivavisual @anita amazing job! And having the code open sourced and tutorial on API usage will be a great resource @bochaco. Keep up the great work!


Same thing here, got to it just now and all what @Nigel says :slight_smile:
Super nice app, very well done…! It was just a pleasure to use, and to be thinking that I could soon have my real credentials stored like this :heart_eyes:

I’m looking forward to see the details of it!

One thing about passwords: I’m thinking that some other kind of organisation could be useful. I (currently) have tons of passwords and it would fill up the view to store all of them separately. Just something to think about :slight_smile:
(Eventually maybe the need for so many passwords decreases, but that could take a while :slight_smile: )


I successfully created a ThanksCoin wallet, but I seem to be unable to create a SAFE wallet. The screenshot shows all I see, and “Save” does nothing.

It’s not working yet…

You cannot create a Safecoin wallet because Safecoin doesn’t exist yet. Even as proof of concept, in this moment don’t have the basic features that all future safecoin wallet must comply.


Ok. I guess I misunderstood @David_MacGregor’s post. Great app, anyway, so thanks!

1 Like

Just set up the Safe Wallet then Thankscoin Wallet. It worked perfectly. So easy a caveman can do it. I’d mistyped my own public key which made the app go search endlessly, my fault. When the key was typed in correctly the coins were deposited quickly. More ether than bitcoin like.
You developer people continue to provide new and interesting learning experiences.
Thank you


This is a great idea. Hopefully this can be implemented worldwide to prevent Cybercrime in 2018 head.


For all devs out there interested in this, I just published the SAFE Faucet code/repo at:

I didn’t have time yet to either document the wallet’s design or to do some refactoring I may like to do, perhaps to use the async/await instead.
However I’m sure this should already be useful and helpful for developers to start digging in until I mange to publish some design documentation. All the interactions with the SAFE API are in the src/storage.js file. Please let me know any questions you may have, I’ll be happy to help.


safe:// gets stuck on “One moment please” when I try to get free ThanksCoins to address: 0xDD314ab8E732cE2503C8857220BAA68E789c9f33

1 Like

Hi @Sascha, the error I see when trying to send to that address seems to imply that the wallet doesn’t exist at that address. Are you sure that’s the Public Key of your ThanksCoins wallet? aren’t you confusing it perhaps with the Label?


That’s an address I have in Myetherwallet.

1 Like