Project Decorum - Wallet Release

We are happy to announce the release of our first experimental app module, the Project Decorum Wallet!

The wallet implements our novel token design that can be considered a hybrid between the typical SAFE MutableData token and the blockchain tokens that are common in the crypto-currency scene:

  • Bitcoin-style divisibility, up to 8 decimals of precision without any additional performance cost from using those decimals
  • Records the history of all transactions in a tree structure, while only revealing transactions on a need-to-know basis
  • Transaction validation only requires validating the direct ancestors of received transactions
  • A transaction “explorer” similar to classic blockchain explorers that allows you to inspect the history of your transactions all the way to the genesis transaction
  • Allows you to easily create you own token (fixed supply only for now)
  • Supports sending tokens directly to someone’s SAFE name (public ID)
  • Allows you to create multiple named wallets and SAFE names (public ID’s)

For more technical details, check out this presentation of the SAFE Dev 2016 Amsterdam meetup.

The official SAFE Browser 0.7 is required, you can download it here.

After installation, create a SAFE account if you don’t have one yet, login and then visit this SAFE location:


On the main page, first create a named wallet. Go to ‘Names’ in the navigation bar and register a SAFE name if you don’t have any yet. Then couple your SAFE name with your wallet on the same page. Transactions can now be sent to your wallet simply by using your SAFE name as the recipient! You may post your SAFE name(s) in this thread so we can all send each other tokens for fun.

We strongly consider to use this token design for Project Decorum’s Clike token that can in the future be exchanged for Project Decorum Coins. Although this design also has performance trade-offs compared to regular MutableData tokens, we hope to see a net improvement for Clike’s intended use as endorsement tokens. The high degree of divisiblity with no performance cost is also desirable.

Developing this particular part of Project Decorum’s goals first was done for several reasons. Since the design of SafeCoin (especially concerning divisiblity) is not necessarily final yet, we hope this experimental design can offer new insights and spark ideas and discussions that may be useful for SafeCoin and perhaps also for tokens of other SAFE projects.

Another reason to develop and release this module first was because it’s narrow in scope while almost all of SAFE’s API features and a lot of cryptography had to be used. As such it functioned as the perfect crash course for developing apps on SAFE, which requires a different way of thinking than regular client-server applications on the internet. Our experience of the past months will help a lot with further development of Project Decorum’s social networking features.

This is an experimental release, it shouldn’t even be considered to be at an Alpha stage. None of the tokens in the wallet represent any value. If you have programming skills it’s possible to break transactions if you know what to do. This is because there’s still one final feature missing from the current SAFE Browser DOM API that we need to make transactions truly immutable.


@bzee and I will offer support in this thread for any problems and questions. Feel free to give feedback! And yes, we know the UI needs more work! :wink:


Awesome! Looking forward to checking it out!

Edit: pub id: traktion


Nice work @bzee and @Seneca!

My wallet at polpolrene is ready to be filled with cash!

EDIT: I just created 10.000 Troons. So if you want some of these coins, feel free to provide your ID here so I can sent you some :+1:


Public-IDs that have a wallet:

  • polpolrene
  • zoki
  • h4xx0r
  • seneca
  • digipl
  • wrnice
  • mirror
  • mytroons
  • Burpee
  • savage
  • traktion
  • Nigel

That’s awesome! Can’t wait to test it out!


I wrote a piece about that here:


Can’t wait to check this out tonight!

Sounds interesting, great work boys.


Excited to see this demonstration of this concept for divisable tokens on the Safe network - great work!

Out of interest, what is the performance trade-off compared to MutableData tokens?

I’m guessing compared to blockchain based tokens these should still be faster, cheaper, and have a far higher transaction capacity?


digipl +20 char…

1 Like

Thanks to @polpolrene’s “troon” tokens he sent me I spotted a fractional number UI bug, I’m going to update the webapp in a few minutes to fix it, it might be unavailable for a minute.

EDIT: Done!

If you receive 5000 MutableData tokens you have to download and validate 5000 MutableData files, period. If you receive 5000 hypothetical Clike tokens using this system, it depends on the transaction history. In the best case scenario that’s just one transaction away from the genesis transaction, in which case you have to download and validate only 2 MutableData files. In a worse scenario those 5000 tokens consist of a set of multiple transactions with smaller amounts that each have a long history (each with their own branch from genesis).

So it depends on the size of the transaction and the velocity of the tokens. Since Clike tokens are consumed when they are used for endorsements and new ones will be mined, the average Clike token will hopefully have a relatively short history.



So, if we compare it to a blockchain, the difference is that on a blockchain, you have to download the history of every single coin, but on this system, you only have to download the history of the coin(s) you are receiving.


Yes, because this relies on SAFE’s lower layers to provide a single source of truth. So as long as SAFE works as intended this should work as well and be far lighter in performance than a blockchain. I don’t think SAFE would replace blockchains though, they just have very different trade-offs in terms of security and performance. The Bitcoin blockchain provides extreme redundancy and allows participants to have a global view of the state of the network, so it gives stronger guarantees. But that also makes it unfit for cheap data storage. SAFE offers less redundancy and will never give you a global view of the state, but if it’s security is good enough in practice then it offers something that’s not out there yet.


I got this error: traktion has no Decorum inbox

Please couple a wallet to your name on the Names page in the web-app!


I want my troons!! Send me some please, Rene.

Could you send some to “simpleton” and some to “fergish” too?


I had to refresh the browser to get stuff to display, but then it all popped up.

You could create them yourself on the Create Token page, just add your own name as the recipient and send the total supply to yourself.


Sure, I’ll create some, but I won’t feel “enriched” till Rene sends me some troons. :smile:


I’m getting “invalid handle: [hex string]” when I try to create and send coins to myself.

Couldn’t something like what you’ve made be made such that when you made a new token, you could choose to make an index of all the tokens and the history of transactions set to readable by all, thus creating a token with a globally viewable history?

1 Like