We are working hard to make sure our next iteration of 3rd party developer tools gets shipped soon. Lightweight, they provide native feeling and have access to the full ethereum decentralized experience, augmented by the Status app's unique features.
Status is investing lots of energy to make decentralized primitives available on mobile platforms. Let’s allow ethereum developers to leverage Status' first class features and UX so that they can focus on what they do best: innovate. Open and free, Status is now extensible too.
Specifically we want:
- To make Status awesome for end users who want to easily use mini DApps
- To make Status an appealing way for ethereum devs to extend their work on mobile
- High usage
- Extensions are not applications. They alleviate users from the heavy cost of installing through an appstore.
- A typical scenario consists of a user scanning a QR code using its native mobile camera and being redirect to Status augmented by the extension (after being granted necessary permissions). It can then disappear right after usage or persist depending on user preference. #nofriction
When it comes to openness and data control, Status sets the bar the highest. To that end the following points will guide our decisions:
- Secure and aware of privacy
- Simple build model and no friction to publish
- Decentralized, controlled by end users
- Open - access to Status and ethereum features
- Smooth on all platforms
Status is inherently malleable. It is Status’ responsibility to choose carefully what is available to extensions and how it can be extended.
Openness is fundamental to Status. It is based on three pillars: data access, API and extension points.
There is a delicate balance between providing the access needed to create awesome DApps while ensuring strong data control for users. To that end, a new security model that emphasizes data destination will be considered (in p2p world, the knowledge of what you send and who you send it to is fundamental).
Data in status in kept is kept in a single, tree-based entity. Extensions will rely on a query mechanism for accessing subset of this data. Depending on the security granted, extensions might have access to most of the data manipulated by status.
Specifically those data will be available:
- Local profile / wallet details
- Contacts details
- Local ethereum state
APIs are the building blocks used by 3rd party developers. Status offers a set of high-level components alleviating developers from the traditional pains of mobile UI development.
- Ethereum interactions (transactions, contract creation and calls)
- Swarm / IPFS primitives
- Status specific features (modify profile, contacts access, manipulate wallet)
Also available are the high-level UI components loosely based on the ReactNative model. Those components are the same as the ones used by Status and focus on performance, great UX and ease of use.
Extensions are only as useful as the extensions points are relevant. As a developer, you will be constrained by what can be extended. There is a balance to be found between extensibility and Status identity.
At first we will allow the following features to be extended:
- Display of chat messages
- Types of commands
- Types of chat
- Display of the wallet’s asset details
We will refine these extension points according to the feedback we receive.