NAV
Mooti Product Documentation

Welcome to Mooti’s public facing documentation. These pages include an overview of the technical capabilities of Mooti’s products, why and how you would implement them, and the technical details on how to do so.

These documents assume a basic familiarity with public/private encryption key pairs, programming, HTTP, and API consumption. These pages are tailored to clients integrating Mooti’s product into their existing architecture and applications.

Below is our current suite of products with details on the common client needs they serve and also how they compliment each other to offer a comprehensive solution. We also handle a good deal of custom work related to these products for various clients so please contact us if you have a specific requirement that isn’t outlined below.

Mooti Edge

Overview

Mooti Edge is our suite of libraries on both Android and iOS that are used to handle securely managing key pairs on mobile devices. Capabilities include:

These features provided a critical first step for any organization that is looking to let their users manage their own self sovereign identity and is also critical for any infrastructure that relies on public/private key pairs such as writing transactions to a blockchain.

Integration Options

The following options are available for leveraging these libraries.

  1. They can be provided to your development team for integration into your existing mobile applications.
  2. We can assist with integrating the libraries into your mobile application
  3. Clients can white-label our existing Mooti mobile application with their own branding and we handle development.

Common Use Cases

The following are scenarios where Mooti Edge is commonly used by our clients.

Library Structure and Methods

The following classes and methods are available on both iOS and Android and are nearly identical except some small differences which are noted when necessary. In addition to the library classes, we also have boilerplate application files to standup a mobile app on iOS and Android. These are valuable for understanding the correct implementation of the library classes, testing functionality, and can also be repurposed to serve as the basis of a client specific white-labeled application.

SecuredPreferenceStore

Deals with storing, creating, and retrieving keys on device as well as protecting them via password, pin, fingerprint, or facial recognition. These protection methods are referred to as key protection factors.

MootiCrypto

Deals with encrypting and decrypting strings using a user’s keys.

MootiCom

Used to send encrypted messages to Mooti Server and receive requests from Mooti Server to prove ownership of a private key.

EncryptionManager

Ties directly into encryption methods, libraries, and algorithms. This class is used by MootiCrypto and varies somewhat depending on libraries available on each mobile platform. This is not designed to be used directly but is used by MootiCrypto.

Mooti Server

Overview

Mooti Server is our hosted or deployable (in your infrastructure) solution that complements the functionality in Mooti Edge to enable a comprehensive infrastructure for interacting with users and their key pairs. It also provides functionality to keep a running internal chain of hashes for all user identity attestation records. These internal hashes can be written to a public blockchain at set intervals to create a fully auditable and tamper proof record of when users created their identity (public/private keypair) and verify themselves (verify ownership of a private key).

Capabilities

The following standard functionality is available in our core codebase and is customized as needed on specific projects.

Hosting Options

There are two standard hosting options for Mooti Server which can both be adjusted to meet specific requirements.

Hosted as a Service

Mooti can host the server in our infrastructure and will be responsible for all server maintenance, monitoring, and updates. This solution is good for projects where a client is looking to quickly test our solution without creating their own infrastructure and also works well in production for clients who would rather not have another server to manage.

Self Hosted Solution

Mooti can also deliver AWS AMIs, docker images, or compiled application files with instructions to deploy our solution in your own infrastructure. This option works well for clients who have internal compliance requirements to satisfy and want to maintain more control over pieces of their technical infrastructure.

Common Use Cases

The following are some common use cases where Mooti Server can be leveraged.