Skip to content

Commit

Permalink
refactor(book): update documentation (#615)
Browse files Browse the repository at this point in the history
  • Loading branch information
IscoRuta98 committed Sep 21, 2023
1 parent 1427287 commit 8da313a
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 20 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ A non-custodial TEE-hosted signing wallet implementation.
* [web-server](web-server) – Wallet enclave server
* [web-client](web-client) – Wallet connector app (demonstration client)
* [asset-services](asset-services) – Additional asset and account support services
* [backend-services](backend-services) - Python based server to interact with third pary Libraries.

- For a more comprehensive documention of the Nautilus wallet, please refer to the following link: https://ntls-io.github.io/nautilus-wallet/nautilus-wallet.html
2 changes: 1 addition & 1 deletion docs/book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
- [Wallet Connector app](design/wallet-connector-app.md)
- [Asset services](design/asset-services.md)
- [KYC service](design/kyc-service.md)
- [User verification]()
- [Backend Services](design/backend-services.md)

# Operations

Expand Down
23 changes: 23 additions & 0 deletions docs/book/src/design/backend-services.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Backend services Documentation

This documentation provides an overview of the backend services used in our project. These services are essential for handling various functionalities and integrating with third-party libraries.

## Backend Service Overview

The backend service is implemented in Python and is built using the [FastAPI](https://fastapi.tiangolo.com/) framework. It serves as the core component responsible for handling various tasks and interacting with external libraries.

## Third-Party Library Integration

Our backend services seamlessly integrate with the following third-party libraries to enhance functionality:

- [Twilio Auth API](https://www.twilio.com/docs/authy/quickstart): This library enables Two-Factor Authentication for transactions above a certain limit or to specific recipient addresses. It enhances security in our application.


- [ODMantic](https://art049.github.io/odmantic/): ODMantic serves as an Object Document Mapper for MongoDB, allowing us to work with MongoDB databases using standard Python type hints. It simplifies database interactions and data modeling.


- [XRPL Python Library](https://xrpl-py.readthedocs.io/en/stable/): This library facilitates the autofund functionality in our application, making it easier to handle transactions on the XRP Ledger.

## Source code

You can find the source code for our backend services on GitHub: [Backend Services Repository](https://github.com/ntls-io/nautilus-wallet/tree/main/backend-services)
1 change: 1 addition & 0 deletions docs/book/src/design/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ The Nautilus Wallet system consists of the following high systems:
3. [Asset services](asset-services.md), which help manage and govern the asset:
- The KYC service
- User verification service
4. [Backend services](backend-services.md), which manages communication between the Wallet Connector app and third party services.

## System Landscape diagram

Expand Down
31 changes: 24 additions & 7 deletions docs/book/src/design/wallet-connector-app.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
# Wallet Connector app
# Wallet Connector App Documentation

The Wallet Connector app runs on web and smartphone (Android, iOS) devices, and allows transacting users to manage wallets and authorise transactions using a combination of QR codes and PIN based authentication.
Welcome to the documentation for the Wallet Connector app. This document provides an overview of the app's functionality and its technology stack.

The Connector app is primarily intended to facilitate transactions for transacting users other than the device owner (such as customers, friends, or family members, friends, or customers),
so each session that the Connector app establishes with the Wallet TEE is designed to be interactive, private, and short-lived.
The Connector app retains no session state between sessions, and device owners and different transacting users have no access to each others' wallets or accounts.

## Source code
## Wallet Connector App Overview

* <https://github.com/ntls-io/nautilus-wallet/tree/main/web-client>
The Wallet Connector app is designed to run on web and smartphone devices (Android and iOS). It serves as a tool for transacting users to manage wallets and authorize transactions using a combination of QR codes and PIN-based authentication.

The primary purpose of the Connector app is to facilitate transactions for users other than the device owner, such as customers, friends, or family members. Each session established by the Connector app with the Wallet Trusted Execution Environment (TEE) is designed to be interactive, private, and short-lived. No session state is retained between sessions, and device owners and different transacting users have no access to each other's wallets or accounts.

## Useful Links to Connector App's Technology Stack

- [Angular](https://angular.io/): The frontend framework for building dynamic web applications.

- [Ionic Framework](https://ionicframework.com/): A framework for building cross-platform mobile applications.

- [Akita State Management](https://opensource.salesforce.com/akita/): A state management library for Angular applications.

- [Jasmine Testing Framework](https://jasmine.github.io/): A testing framework for JavaScript applications.

- [Storybook](https://storybook.js.org/): A development environment for UI components.

## Source Code

You can access the source code for the Wallet Connector app on GitHub:

- [Web-client Repository](https://github.com/ntls-io/nautilus-wallet/tree/main/web-client)
8 changes: 5 additions & 3 deletions docs/book/src/design/wallet-tee.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The Wallet SGX enclave contains the system's [Trusted Computing Base (TCB)][TCB]

Once generated, secret keys and other sensitive data never leaves the enclave unencrypted. All persistent storage is cryptographically sealed and authenticated, and all trusted communication with the enclave occurs over cryptographically attested and mutually-authenticated channels.

[TCB]: https://en.wikipedia.org/wiki/Trusted_computing_base
To learn more about Trusted Computing Base, click on the following [link](https://en.wikipedia.org/wiki/Trusted_computing_base).

## Host service

Expand All @@ -20,6 +20,8 @@ The SGX enclave is embedded in an untrusted host service, which facilitates comm
* Remote attestation, which allows the Connector app to remotely verify the identity and integrity of the enclave, and exchange keys to set up a trusted communication channel
* Sealed message exchange, which allows the Connector app to request wallet operations, and receive results

## Source code
## Source Code

* <https://github.com/ntls-io/nautilus-wallet/tree/main/web-server>
You can access the source code for the Wallet TEE server on GitHub:

* [Web-server Repository](https://github.com/ntls-io/nautilus-wallet/tree/main/web-server)
47 changes: 38 additions & 9 deletions docs/book/src/nautilus-wallet.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Nautilus Wallet Documentation

Welcome to the documentation for the Nautilus Wallet project. This document provides an overview of the Nautilus Wallet and its features, along with useful links for further information.


<!-- Show the text logo with a background colour, to be compatible with light and dark themes. -->
<div style="
background-color: #003450;
Expand All @@ -6,21 +11,45 @@
padding: 1.5em 2em;
">
<img src="images/logo-title.svg" alt="Nautilus Wallet logo">
</div>
</div>

## Nautilus Wallet Overview

The **Nautilus Wallet** is a cryptographic wallet hosted on a Trusted Execution Environment (TEE). It offers non-custodial services and is accessible to users who do not own a smartphone or device. The project also includes services for managing and governing assets in the context of Central Bank Digital Currency (CBDC).

The **Nautilus Wallet** project is a [TEE]-hosted, non-custodial cryptographic wallet that's accessible to users who don't own a smartphone or device.

The project also includes services for managing and governing assets in a [CBDC] context.

[TEE]: https://en.wikipedia.org/wiki/Trusted_execution_environment
[Intel SGX]: https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.html
[CBDC]: https://en.wikipedia.org/wiki/Central_bank_digital_currency
- Trusted Execution Environment (TEE): https://en.wikipedia.org/wiki/Trusted_execution_environment
- Intel SGX: https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.html
- CBDC: https://en.wikipedia.org/wiki/Central_bank_digital_currency

## Nautilus Wallet Features

- **Send and receive funds in XRP**: Users can send and receive funds using [XRP](https://xrpl.org/what-is-xrp.html), Ripple's Native Digital Currency.

- **Basic Know Your Customer (KYC) Integration**: New users can complete KYC processes with the support of Onfido.

- **Payment Connector**: Users can act as connectors, charging a fee for transactions executed on their devices. The fee is displayed to users before completing a transaction.

- **Two-factor authentication**: Users can verify their phone numbers and enable optional two-factor authentication via SMS. This adds an extra layer of security for authorizing transactions.

- **PIN Reset**: Users can reset their PIN if they answer security questions correctly.

- **Bookmarking recipients**: Users can bookmark preferred recipients for easier transactions.

- **Pull payments**: Pull payments can be initiated by the receiving party and authorized by the sending party. This is especially useful for vendor transactions.

- **Recurring payments**: Users can set up recurring payments to the same recipient when their wallet balance allows.


## Links
## Useful Links

- [GitHub](https://github.com/ntls-io/nautilus-wallet)
- [Product Information](https://ntls.io/nautilus-wallet/)
- [GitHub Repository](https://github.com/ntls-io/nautilus-wallet)
- [Product Demo](https://staging.ntls.io)

## See also

- [Technical Architecture](https://github.com/ntls-io/nautilus-wallet/wiki/Technical-Architecture) (GitHub Wiki)
- [Nautilus Wallet & CBDC Suite - Technical Architecture](https://docs.google.com/document/d/1gCRxOZiuo6qXNpZOcoovM_wTNUc_8u-GfyyraEGTaWA/edit) (Google Docs)
- [Technical Architecture (GitHub Wiki)](https://github.com/ntls-io/nautilus-wallet/wiki/Technical-Architecture)
- [Nautilus Wallet & CBDC Suite - Technical Architecture (Google Docs)](https://docs.google.com/document/d/1gCRxOZiuo6qXNpZOcoovM_wTNUc_8u-GfyyraEGTaWA/edit)

0 comments on commit 8da313a

Please sign in to comment.