Introducing SAFE Wallet app


That’s an address I have in Myetherwallet.


Ohh!, you need to create a ThanksCoins wallet with the SAFE Wallet app: safe:// After you authorise the app you can just click the + button on the top menu to create it, then make sure you set the public key in the public key field.
Note that you can even enter anything as the public key, and it’s probably advisable to do so since for the moment this is just a demo.
Please note that these ThanksCoins have absolutely no value in any market, and they are not listed in any exchange even that there could be some other coins out there with the same name. These ThanksCoins are only useful to play with the SAFE Wallet app.


I did that earlier and it worked fine. After testing I removed the wallet. I just wanted to note that “One moment please” stays there forever without explanation in some cases like this one. Sorry if I alerted you for no good reason.


Right, thanks a lot, indeed I need to add some error handling to show the errors in a message in the UI.


Again, for those developers out there, I just published a new repo which is meant to evolve as a package that can be used by any SAFE app to implement a SAFE Altcoin wallet.

The plan is to work on it to make the API much cleaner, well documented, and to maintain it not only finalising its current functionality (since it’s not fully complete now), but also adding new features as I move forward with the development of the SAFE Wallet app.

You can find the source code at As you can see the README doesn’t contain any information yet but it has some placeholders to give an idea of what I would like to document in the next few days. I hope it’s helpful already as is, even that I’d like to enhance it and change several things.

The SAFE Wallet app v0.10.0 published in Alpha-2 uses this same version internally, so anyone who wants to start integrating this package in its own app will make it compatible with the working ThanksCoins wallet. The intention is to extend it to allow the management of not only ThanksCoins but any/many Altcoin/s on the SAFEnet, and maybe safecoins too.


Hey are there any kind of docs or tutorials for this, looks quite cool, would like to mess with it


Not yet, I’m trying to get them ready, they’ll be placed in the README itself, I shared the code as some people are already able to understand the design by looking into it but the doc. will definitely help much more. I’ll post an update here when the first draft is ready, hopefully in a few days.


I pushed the following changes to the repo:

  • First draft of the documentation is now available in the README
  • Refactored the code to make use of async/await instead of Promises
  • Published it as an npm package and instructions to use it are in the README.

Some of the next steps include to work on documenting the API and the use cases around the API.


Neat, I’m looking to test this now. Thanks for the contribution.


I finally got around to testing this and it had me smiling and giggling like a school boy! Really, really great work @bochaco! :slight_smile:

I created a ThanksCoin wallets (safe://, hit the faucet (safe://, then transferred to another new ThanksCoin wallet. It was all super easy and happened near instantly!

If anyone wants to send me some ThanksCoin to 63ca83faf83e5c47f9ea5915961aeb171b740fe4d4d10c18581c867567fc2e99 please do! I will return any favours if someone has a pub key they want to test!


Sent ya some thanks. But seriously, the potential of this/having ‘banking’ on the safe network is awe inspiring.


Hi guys, i’ve just downloaded the safewallet app. Thanks @bochaco :wink:
If you want to send me some thankscoins my public key is: Swapcoin


You can send you self some Thankscoin by going to safe://


I’m getting this error each time I try to open Does anyone else get this error?
Already tried revoking authentication and authenticate again, but nothing works


I finally had some time to migrate the SAFE Wallet webapp to make use of the latest DOM API exposed by SAFE Browser (Peruse v0.7.0), which I just published (v0.0.12) on the Alpha-2 network at safe://

Likewise, I also updated the SAFE Faucet webapp and published it at safe://

I’m introducing a new feature with these new versions of the webapps, probably an small one, but I think it’s an important one.
You may already be aware of WebIDs and how they can be used on the SAFE Network, as per the PoC prepared for and presented at the past Decentralised Web Summit 20018 by MaidSafe. With WebIDs we can have decentralised user identities on the SAFE Network, which can also contain links to other type of information and services, e.g. the Patter social app allows users to post messages and link them to any WebID.

Now, with this new SAFE Wallet and SAFE Faucet, you can also create a link from a WebID to a ThanksCoin wallet, and you can transfer ThanksCoins using either the recipient’s wallet Public Key (as before), or a WebID provided by the recipient which contains a link to a ThanksCoin wallet.

For those who never used these applications before, in this old post you can find some details, but as a summary, and to update it with the extra step needed to optionally create your WebID/s, the following steps are what it’s needed to be able to get some free ThanksCoins and transfer them among different wallets using WebIDs:

  1. Create you own WebID/s as explained in this post
  2. Connect to the SAFE Wallet (safe://, create a new ‘ThanksCoin Wallet’ item, set its label, private and public keys, select a WebID to link it to, and a pin number. I recommend to switch the toggle to allow the app to store the transactions history as it’s a nice feature to see in action when transferring coins.
  3. Open the SAFE Faucet (safe://, provide your feedback, enter the wallet’s public key, or the WebID linked to your ThanksCoin wallet, click the ‘Get free ThanksCoins!’ button, and wait for a few seconds until a confirmation message is displayed. Go back to the SAFE Wallet to verify that the coins were successfully transferred to your ThanksCoin wallet.
  4. Create other ThanksCoins wallets so you can transfer coins among them.

Please note that these ThanksCoins have absolutely no value in any market, and they are not listed in any exchange even that there could be some other coins out there with the same name. These ThanksCoins are only useful to play with the SAFE Wallet app.

Lastly, an additional feature in this version of the SAFE Faucet is that the feedback is now being posted as messages to the safe://feedback.thankscoin#me WebID, so they are public and can be seen using Patter webapp.

For curious devs, source code for the safe-faucet webapp and safe-coins-wallet package.

I hope you find it fun to transfer some ThanksCoins around, using WebIDs, on the SAFE Network!!!


I tried it using both isntism and isntism.thankscoin but neither worked, then the wallet’s public ID did work, and then I realised, after writing a whole speech about what could be bugged out, that I maybe should have tried id.isntism…

Either way, it did manage to come trough in the end! now who to send some to…

edit: turns out safe://id.isntism did work, why did I have to add safe:// though?


Haven’t tried it yet, but this is great news Gabriel.

I think this is probably because a valid WebID must be a URI. Given the context on SAFE, perhaps we can hard code the safe:// so it shows to the left of any input box, and then allow it to be entered with our without the safe:// prefix, but for now it is probably best to get people used to the idea of what a proper WebID looks like (ie with the safe:// part).

@bochaco If you haven’t already, I think this would be good to announce in the Solid forum.


Hi @isntism, I’m glad to hear you got it working. This is just because WebIDs are defined to be a URI as @happybeing is pointing out, you can read more about the spec here if you’d like to.

Also, the applications check if the recipient string starts with safe://, if so, they assume you’re intending to transfer your coins to a WebID rather to just a public key. The way these apps used to work were with just using the public key, i.e. the public key that you want to transfer the coin’s ownership to, and using the public key the apps figure out how to find the TX inbox to notify the recipient about a new transfer/TX.
Now, in addition to that capability, these apps are also allowing you to provide a WebID URI and they use it to resolve and find out where the TX inbox for the recipient is located.

Therefore, I see you created a WebID at safe://id.isntism#me, so if you then go to any of your ThanksCoin wallets in the SAFE Wallet app, you can select that WebID from the dropdown and link that ThanksCoin wallet to the WebID. At that point, you will be able to transfer coins from the SAFE Faucet or from any other ThanksCoin wallet (in the SAFE Wallet app), by simply using the WebID (safe://id.isntism) URI as the recipient of the transaction.

It’s just that the apps support both type of recipients, i.e. a WebID or a Public Key, so if you provide a URI it assumes it’s a WedID and not a public key. In the future the apps should be able to either do a fallback and attempt both, as well as being capable of detecting if it’s effectively a public key.

@isntism, if you want you can try to transfer some coins to my WebID: safe://webid.bochaco#me. I just transferred you a few to safe://id.isntism#me from my wallet :wink:


Makes sense, guess that it’s just another thing to us ordinary folk need to learn, protocol is part of an ID.


Indeed, just trying to push you to think more about how nice they are, think of this @isntism, I just shared with you my WebID (safe://webid.bochaco#me), from now on you would be able to interact with me regardless of the type of interaction, or type of information you are willing to share with me.

E.g. are you willing to send me a message? perhaps you wanna verify if I effectively signed a message that was posted on your Patter/social app wall? or you perhaps wanna send me some coins because you think I need it for a beer? …well, all you need is that WebID with the corresponding application, and that’s it, the application can infer the information required to perform such operations. I could even change the linked wallet, or change my avatar with a good looking one (it’s hard in my case I know), in any case you will never need to know or be aware of that and it will be transparent to you as a user.