# Photon SDK

## What is Photon SDK?

Photon is a collection of open source components designed to make building bitcoin wallets and non-custodial financial apps easier and more secure. App developers can build compelling seedless user experiences using encrypted cloud backup and multi-sig. The SDK is targeted towards react native apps, but native libraries for iOS and Android are planned as well (see the roadmap below).

![Seedless Wallet Restore Flow](https://raw.githubusercontent.com/photon-sdk/photon-lib/demo-images/restore_flow.gif)

### What's included?

Photon SDK is fully open source on GitHub. It includes three primary components:

1. [photon-keyserver](https://github.com/photon-sdk/photon-keyserver): stores high entropy encryption keys and provides server side security such as rate limited PIN authentication
2. [photon-lib](https://github.com/photon-sdk/photon-lib): a React Native client module that can be integrated into any wallet application
3. [photon-app](https://github.com/photon-sdk/photon-app): a demo React Native application that documents how these components work together in a final product

{% embed url="<https://github.com/photon-sdk>" %}
Photon SDK on GitHub
{% endembed %}

### Learn more

You can read more about Photon SDK, its design decisions, and tradeoffs in the Advancing Bitcoin blog post.

{% embed url="<https://ghost.advancingbitcoin.com/photon-sdk-seedless-wallet-toolbox/>" %}
Advancing Bitcoin Blog Post
{% endembed %}

### Threat Model Document

You can also read about the security tradeoffs in the threat model document.

{% embed url="<https://github.com/photon-sdk/photon-lib/blob/master/threat-model.md>" %}
Threat Model Document
{% endembed %}

## Open Source Components

### Photon Key Server

For more information on the key server please read here.

{% content-ref url="photon-key-server" %}
[photon-key-server](https://docs.photonsdk.org/photon-key-server)
{% endcontent-ref %}

Please review the key server api page for documentation how to use the REST api.

{% content-ref url="key-server-api" %}
[key-server-api](https://docs.photonsdk.org/key-server-api)
{% endcontent-ref %}

### Photon Lib

Photon lib is a high level library for building bitcoin wallets with react native. You can lean more about the library and how to get started here.

{% content-ref url="photon-lib" %}
[photon-lib](https://docs.photonsdk.org/photon-lib)
{% endcontent-ref %}

### Demo App

You can try the demo app that showcases the seedless wallet UX that Photon enables.

{% content-ref url="demo-app" %}
[demo-app](https://docs.photonsdk.org/demo-app)
{% endcontent-ref %}

## Contributing

The Photon SDK is fully open source. Feel free to suggest new features in respective GitHub repository issues or start building on it and provide feedback.

### Join the community Discord

Our Discord channel is available if you have any questions about using or contributing to photon.

{% embed url="<https://discord.com/channels/915026692102316113/947535857995366440>" %}
Photon SDK Community Discord
{% endembed %}
