Project Decorum - Wallet Release

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

Features
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.

Usage
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:

safe://wallet.decorum

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.

Motivation
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.

Disclaimer
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.

70 Likes

@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:

15 Likes

Awesome! Looking forward to checking it out!

Edit: pub id: traktion

6 Likes

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:

EDIT 2:

Public-IDs that have a wallet:

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

Thatā€™s awesome! Canā€™t wait to test it out!

5 Likes

I wrote a piece about that here:

8 Likes

Canā€™t wait to check this out tonight!

Sounds interesting, great work boys.

8 Likes

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?

7 Likes

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.

9 Likes

11 Likes

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.

4 Likes

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.

17 Likes

I got this error: traktion has no Decorum inbox

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

3 Likes

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

Could you send some to ā€œsimpletonā€ and some to ā€œfergishā€ too?

3 Likes

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.

4 Likes

Sure, Iā€™ll create some, but I wonā€™t feel ā€œenrichedā€ till Rene sends me some troons. :smile:

4 Likes

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