---
# System prepended metadata

title: OSE Mobile Initial Requirements

---

# OSE Mobile Initial Requirements
# Overview

We’re building a react native mobile app and need to know what it does and how it does it!


## Onstage Demo
- Registration and then access to the conference
    - Employee cred
    - Self attested name and address
    - Credit card info
- Conference pass credential

## Functional Flows

1. Create a DID
    1. Click create DID
    2. Store recovery words
    3. DID private key stored in the secure element of the device
2. Recover a DID
    1. Able to create or “recover”
    2. Submit recovery words
    3. Re-generate private key and store in secure enclave
3. Self issue a credential
    1. Click on “Credentials” view
    2. Click “plus” to create a new credential based on a drop-down of pre-filled schemas
    3. Fill out form builder
    4. Sign and build credential using your DID
4. Respond to a presentation request
    1. Scan a QR code of a SSI Service
    2. Parse and render a request
    3. Be able to select credentials to fulfill the request
    4. Submit the request
    5. Receive and parse a Presentation Response

# Requirements

### Key and Security Requirements

- Store private keys in a secure enclave
- Display recovery words and support recovery flow
- Support **did:key** to start, later did:ion
- Use the ssi sdk with gomobile

### Functionality Requirements

- DID management
    - create a DID
    - view a DID
    - recover a DID after deletion/uninstall
    - update a DID
        - add keys, remove keys of different types
- Credential management
    - receive a credential (QR code scan)
    - view a credential
    - submit a credential (presentation exchange)
    - Self attest to a credential (self issuance)
- Connection to a SSI Service
    - Get issued a credential
    - Respond to a presentation request
- Scan a QR code for
    - Credential Applications
    - Presentation Requests

---

- Connect to a DWN?
    - See URL and status
- Connect multiple wallets / keys / DIDs together

### Test Requirements

- Automated testing for the mobile apps
- Testing for the go-mobile SDK

### Design Requirements

- Ugly and functional
- Make it pretty later

## Other apps we may build

We may want to ship other OSS apps quickly, for example a social media app like damus is an example of something on the nostr platform: 

[https://github.com/damus-io/damus](https://github.com/damus-io/damus)