Status

Website: Status.im

Status.im

  • Last reviewed version
  • 2019041610-nightly
  • published April 16th, 2019

Status is a web3-enabled messenger application that relies on the Whisper protocol to function. Your instance of the application broadcasts messages into the ether and all other participants pick them up and forward them along to everyone else. Everyone gets everyone's message, but encrypted. To decrypt a message, one needs a special key. In this case, that key is the name of the topic you're communicating about.

If you imagine a chatroom called "Chat", the way to receive messages meant for that group is to try and decode every message you find with the key "Chat". If you succeed, that message belongs in there. If not, you drop the message or forward it along. A caveat of Whisper (the protocol used here for passing messages along) is that one needs to be online to see the message when it arrives, because it has nowhere to persist. Status gets around this with the use of mailservers - applications that store the messages for 24 hours and pass them along, so that late joiners can catch up.

The wallet inside the application is rudimentary, just enough to allow users to use the web3 enabled applications around the web. A very basic dapp browser comes built-in which is essentially a list of hardcoded URLs in the application's source code. The wallet is fully local, meaning you control your keys using a password to log in, and the wallet can always be restored using the recovery phrase the application shows on account creation. Additionally, if you lost the phrase, you can hack your way through the local app files on your phone to get to the keystore file, at which point you'll only need to remember the password once you import it into another wallet.

Multi-account support

Multi account support in Status is difficult to set up but easy to use once configured.

Switching accounts entails going to settings, logging out, and logging in with another user. It would be easier if fingerprint login was supported like in Trust, as the current password-based setup only makes people who use multiple accounts pick unsafe passwords to be able to switch quickly (password managers do not help matters).

Status does not allow custom derivation paths, and each new account is a new identity in its own right with its own special recovery phrase and thus new tree of wallets. Sending ether or tokens to m/44'/60'/0'/0/0 works, but sending them to m/44'/60'/0'/0/1 will not register the assets and they have to be extracted via other means.

Status does not allow private key imports, making these assets unrecoverable through this app.

Status maintains privacy across user identities by clearing dapp browser cache, cookies and localstorage.

Status is an app you consider not when you think about ease of use or other pleasantries - it's what you pick up when you're planning a revolution.

A very special feature making Status worth considering is the fact that it's technically unstoppable. The organization had a Chaos Unicorn Day on April 1st 2019 during which all infrastructure provided by the team was shut down for 24 hours. The aim was to find out whether or not people (users) could get the network back up and running without relying on a centralized provider.The results were impressive, earning Status the prestigious Unstoppable badge. Status is an app you consider not when you think about ease of use or other pleasantries - it's what you pick up when you're planning a revolution.

Such resilience comes at a cost, however. Status has rather fierce bandwidth and battery power requirements, and shouldn't be considered an application you can keep always-on if you're limited on either of those. The UX has also historically taken a back seat to primary functionality which makes the app less polished than perhaps some of its competition. This would improve markedly if the team adds a "wallet only" mode in the future.

Customization is both extreme and lacking - custom tokens are a no-no, but custom nodes and networks are very much a yes.

The ability to customize connection settings and asset support - something we value greatly at Wallets.Review - is both good and bad. On one hand, one can enter any node address, any network ID, and any mailserver setup one desires. This is ideal for custom setups, local testnets, private networks, your own nodes, and more. On the other hand, there's absolutely no support for custom tokens, neither ERC20 nor ERC721. If you're sent a token that isn't hardcoded as an allowed asset inside the app, you're out of luck trying to retrieve it unless you export your wallet into another application. Granted, the token will still be in your address, just not visible, which means dapps can still access them so theoretically accessing a wallet dapp through the built-in dapp browser would help there, but it's still very impractical.

In terms of wallet features, it's quite basic. While it does support ENS names so you can enter addresses like `bitfalls.eth` into the recipient field, you cannot scan these names in via QR codes. Apropos QR codes, the `?value` argument is supported and translates to Wei, but floating point numbers (like `100.5`) won't work, and including units at the end of the value (e.g. `100.5+ETH`) doesn't work either. As such, Status only partially supports EIP-681, further failing with the lack of EIP-831 (the `pay-` prefix standard for Ethereum URIs).

If you need something through which to leak some sensitive documents or with which to overthrow a government reliably, it's hard to find better than Status.

User experience could be better. The app will sometimes crash, lock up, take a while to change screens, fail transactions and on occasion miss messages. It won't let you log in with biometrics and prompting a user to enter a secure password after every logout can be tedious indeed. Some options aren't too clear and functionality of all three aspects - chat, wallet, dapps - is rudimentary, though all are improving with chat extensions, better wallet signing flow, and a token-curated dapp store on the short term roadmap.

Status is a solid tool for censorship-resistance, playing perfectly into the Web3 arc. The UX issues and lack of custom token support make it a hard sell to current users, and it being in-development means that it can have stability and performance issues at times, making it frustrating to use. Still, if you need something through which to leak some sensitive documents or with which to overthrow a government reliably, it's hard to find better than Status.

Download Status