Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The Stellar Disbursement Platform consists of three services deployed together:

## Architecture Diagram

![Architecture Diagram](/assets/SDP/SDP2-2.png)
![Architecture Diagram](/assets/sdp/2.png)

### User Roles {#user-roles}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ For detailed configuration instructions, see the [Embedded Wallets Configuration

When creating a new disbursement, select **"Embedded Wallet"** as the wallet provider in the disbursement details form.

![Creating a disbursement with Embedded Wallet selected](/assets/SDP/SDP46.png)
![Creating a disbursement with Embedded Wallet selected](/assets/sdp/47.png)

**What to configure:**

Expand Down Expand Up @@ -155,7 +155,7 @@ We also recommend enabling verification because it requires users to authenticat

When the receiver clicks the link, they'll see a page inviting them to create their wallet account:

![Invitation to create an embedded wallet with passkey](/assets/SDP/SDP47.png)
![Invitation to create an embedded wallet with passkey](/assets/sdp/48.png)

**The passkey creation process:**

Expand Down Expand Up @@ -185,7 +185,7 @@ If a receiver already has a passkey for a different disbursement, they can simpl

After creating their passkey, receivers are prompted to complete verification before they can receive funds:

![Verification prompt after wallet creation](/assets/SDP/SDP48.png)
![Verification prompt after wallet creation](/assets/sdp/49.png)

The verification step ensures that the receiver is who they claim to be. Depending on how you configured the disbursement, receivers may need to:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ Single tenant mode - Login URL:

### Log into the SDP

Open http://localhost:3000 and log in using the admin credentials generated by the setup wizard (organization: default). ![Login](/assets/SDP/SDP32.png)
Open http://localhost:3000 and log in using the admin credentials generated by the setup wizard (organization: default).

![Login SDP Screenshot](/assets/sdp/33.png)

### Send a test disbursement

Expand All @@ -69,15 +71,21 @@ Click `New Disbursement +` on the dashboard; you’ll see a funded distribution
- Select XLM as the asset to disburse.
- Pick Demo Wallet as the recipient wallet.
- Choose Date of Birth as the verification method; recipients will enter it to confirm their identity.
- Give disbursement a name. ![Disbursement Details](/assets/SDP/SDP33.png)
- Give disbursement a name.

![Disbursement Details SDP Screenshot](/assets/sdp/34.png)

Create and Upload a Disbursement File:

- Download the sample via `Download CSV Template`; it includes all required columns.
- Update the placeholder/invalid phone numbers before using it.
- The verification column holds the identity data recipients must match. ![Disbursement CSV](/assets/SDP/SDP34.png)
- The verification column holds the identity data recipients must match.

![Disbursement CSV SDP Screenshot](/assets/sdp/35.png)

Click the Review button. When you are ready to start the disbursement, click the "Confirm disbursement" button. In Disbursement Details you’ll see the payment in `Ready` status, meaning the receiver has yet to accept the invitation and payment. ![Disbursement Dashboard](/assets/SDP/SDP35.png)
Click the Review button. When you are ready to start the disbursement, click the "Confirm disbursement" button. In Disbursement Details you’ll see the payment in `Ready` status, meaning the receiver has yet to accept the invitation and payment.

![Disbursement Dashboard SDP Screenshot](/assets/sdp/36.png)

### Receive Payment

Expand All @@ -91,20 +99,32 @@ Claim the payment in the demo wallet by first creating a wallet:

- Open the demo wallet: http://localhost:4000.
- Click `Generate Keypair for new account` to create a keypair; save the public and secret keys if you plan to reuse the account.
- Click `Create account` to create the account on the Stellar testnet (the account starts with 10,000 XLM). ![Demo Wallet Creation](/assets/SDP/SDP36.png)
- Click `Create account` to create the account on the Stellar testnet (the account starts with 10,000 XLM).

![Demo Wallet Creation](/assets/sdp/37.png)

To receive your payment, initialize a SEP-24 deposit:

- Under Asset XLM, click `Add Home Domain`, enter `localhost:8000`, and click `Override`.
- In the `Select action` dropdown, choose `SEP-24 Deposit`, then click `Start`. ![SEP-24 Deposit](/assets/SDP/SDP37.png)
- In the `Select action` dropdown, choose `SEP-24 Deposit`, then click `Start`.

![SEP 24 Deposit](/assets/sdp/38.png)

Verify your identity:

- When prompted, enter the same phone number used in the disbursement CSV.
- Complete the OTP and Date of Birth verification. The OTP appears in the `sdp-api` container logs (e.g., “Here is the 6-digit verification code you requested ...”). ![OTP Code](/assets/SDP/SDP38.png) ![PII Verification](/assets/SDP/SDP39.png)
- Complete the OTP and Date of Birth verification. The OTP appears in the `sdp-api` container logs (e.g., “Here is the 6-digit verification code you requested ...”).

![OTP Code SDP Screenshot](/assets/sdp/39.png)

![PII Verification SDP Screenshot](/assets/sdp/40.png)

### Monitoring

- In the SDP dashboard, the payment moves from `Ready` to `PENDING` during the wallet flow, then to `Success` when funds are deposited. ![SDP Dashboard](/assets/SDP/SDP40.png)
- In the SDP dashboard, the payment moves from `Ready` to `PENDING` during the wallet flow, then to `Success` when funds are deposited.

![SDP Dashboard SDP Screenshot](/assets/sdp/41.png)

- In the demo wallet, the balance updates to reflect the new amount.

- In the demo wallet, the balance updates to reflect the new amount. ![Demo Wallet Balance](/assets/SDP/SDP41.png)
![Demo Wallet Balance](/assets/sdp/42.png)
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ The recipient registration experience is paramount to make this application smoo
1. When the recipient opens the wallet app, the wallet immediately onboards the recipient, creates a Stellar account and trustline for the desired asset, initiates a [SEP-24] deposit transaction with the SDP, and opens the SDP's registration webpage as an overlay screen/iframe inside the app.
1. The user confirms their phone number and date of birth directly with the SDP, without sharing any data with the wallet, and after the registration finishes, the user is sent back to the wallet application. Here are the screens demonstrating these steps:

![Registration Flow](/assets/SDP/SDP25.png)
![Registration Flow SDP Screenshot](/assets/sdp/26.png)

1. The user receives the payment within seconds

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,17 @@ docker compose -p sdp-multi-tenant -f docker-compose-monitoring.yml down

### Load the SDP Grafana Dashboard

1. Navigate to [http://localhost:3002](http://localhost:3002) and sign in with the default `admin` / `admin` credentials. ![Grafana Login](/assets/SDP/SDP42.png)
1. Navigate to [http://localhost:3002](http://localhost:3002) and sign in with the default `admin` / `admin` credentials.

2. Click the `+` icon in the top navigation bar (next to the search input), choose `Import dashboard`, and paste the contents of [Grafana Dashboard Json](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/dashboard.json). ![Import Dashboard](/assets/SDP/SDP43.png)
![Grafana Login SDP Screenshot](/assets/sdp/43.png)

3. Select the `prometheus` datasource provided by [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml). ![Select Datasource](/assets/SDP/SDP44.png)
2. Click the `+` icon in the top navigation bar (next to the search input), choose `Import dashboard`, and paste the contents of [Grafana Dashboard Json](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/dashboard.json).

![Import Dashboard SDP Screenshot](/assets/sdp/44.png)

3. Select the `prometheus` datasource provided by [datasource](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/dev/grafana/datasource.yaml).

![Select Datasource SDP Screenshot](/assets/sdp/45.png)

This dashboard visualizes HTTP request volume/latency, database query timings, and TSS transaction statistics, details described in [Grafana README.md](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/resources/grafana/README.md). All panels can be filtered by method, route, tenant, or instance so you can distinguish traffic between multiple deployments.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ pagination_label: "Admin Guide: Overview"

The entire SDP step-by-step process usually looks something like the following after the SDP is deployed and organizational users have been set up:

1. The organization funds the SDPs distribution account with a Stellar-based asset (e.g. USDC)
2. An administrator logs in to the SDPs dashboard and uploads a CSV file containing the payment information to initiate a new disbursement
1. The organization funds the SDP's distribution account with a Stellar-based asset (e.g. USDC)
2. An administrator logs in to the SDP's dashboard and uploads a CSV file containing the payment information to initiate a new disbursement
3. The SDP sends a text message to every first-time recipient in the CSV inviting them to download a Stellar-enabled wallet application
4. Meanwhile, the SDP immediately begins making payments to each recipient that already has a wallet registered to them
5. Each first-time recipient clicks a deep link to download the Stellar-enabled wallet application chosen by the organization for this disbursement, downloads the app, and goes through the wallet sign-up process
6. Once the recipient has signed up and their Stellar account has been created, the wallet immediately authenticates with the SDP using parameters from the deep link and opens the SDP registration web view for the recipient to complete verification
7. The user confirms their identity by providing an OTP code sent to their phone number and an additional piece of verification information for security purposes. The SDP supports three different types of verification information: Date of Birth, Personal PIN, and National ID. This information is input by the recipient in a web flow and passes directly to the SDP, meaning the wallet does not need to process or store this information.
8. The SDP verifies the recipients information. If it matches the information from the CSV, the SDP automatically makes the payment to the recipients Stellar account
8. The SDP verifies the recipient's information. If it matches the information from the CSV, the SDP automatically makes the payment to the recipient's Stellar account

Graphic representation of flow of funds:

![Flow of Funds](/assets/SDP/SDP1.png)
![Flow of Funds](/assets/sdp/1.png)
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Channel accounts may disappear after testnet resets. See [Recreating Channel Acc

When a payment fails, the Status History shows a Horizon error with operation codes that explain why the transaction was rejected.

![Payment Failed Error](/assets/SDP/SDP45.png)
![Payment Failed Error](/assets/sdp/46.png)

#### Reading the Error

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ In more detail:
- "Individuals" represents the number of people involved in these transactions.
- "Wallets" indicates the number of unique digital wallets involved in the transactions.

![Analytics](/assets/SDP/SDP24.png)
![Analytics SDP Screenshot](/assets/sdp/25.png)
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ If the tenant was created with a [Circle] distribution account, then the tenant

Once a user with owner privileges logs in, they will see a banner at the top of the page saying that the Circle account is pending configuration:

![Circle Configuration Banner](/assets/SDP/SDP30.png)
![Circle Configuration Banner](/assets/sdp/31.png)

Clicking on the banner will take the user to the Distribution Account section, where they can enter the Circle API key and the Circle Wallet ID.

![Circle Configuration](/assets/SDP/SDP31.png)
![Circle Configuration SDP Screenshot](/assets/sdp/32.png)

:::info

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ This includes:
- Individuals: The total number of individuals who are set to receive disbursements.
- Wallets: The total number of wallets used within the SDP. This usually equals the number of individuals but it is possible for each person to have more than one wallet.

![Dashboard Home](/assets/SDP/SDP19.png)
![Dashboard Home SDP Screenshot](/assets/sdp/20.png)

On the left side of the Stellar Disbursement Platform dashboard is the organization logo and tabs to help you navigate through the platform.

They include:

- Home: This is the main dashboard that provides an overview of your organizations activities.
- Home: This is the main dashboard that provides an overview of your organization's activities.
- Disbursements: This section shows you the history and details of all disbursements.
- Receivers: Lists of individuals who are set to receive disbursements.
- Payments: Here you can find the history and granular details of all payments.
- Wallets: Information related to your organizations wallet, the source of funds for your disbursements.
- Wallets: Information related to your organization's wallet, the source of funds for your disbursements.
- Analytics: Data visualization tools to help you analyze your disbursements and payments.
- Profile: Manage your personal and organizational information.
- Settings: Adjust the settings of the SDP according to your preference.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_position: 20

The Disbursements page provides a paginated list of all disbursements, detailing each disbursement's status and related payment information.

![Disbursements](/assets/SDP/SDP20.png)
![Disbursements SDP Screenshot](/assets/sdp/21.png)

The page contains the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_position: 40

The Payments page provides a list of all payments, detailing each payment's status and related information.

![Payments](/assets/SDP/SDP22.png)
![Payments SDP Screenshot](/assets/sdp/23.png)

The Payments page includes:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_position: 30

The Receivers page displays a list of individuals set to receive payments, with wallet information and payment history. This information allows you to track and manage the payments made to each receiver, and provides a snapshot of each receiver's interaction with a disbursement.

![Receivers](/assets/SDP/SDP20x.png)
![Receivers SDP Screenshot](/assets/sdp/21.png)
Comment thread
JFWooten4 marked this conversation as resolved.

The Receivers page includes the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_position: 50

The Wallets page provides detailed information about your distribution account, which is the primary Stellar account from which your disbursements are made.

![Wallets](/assets/SDP/SDP23.png)
![Wallets SDP Screenshot](/assets/sdp/24.png)

The Wallets page includes the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ La Plataforma de Distribución Stellar consta de tres servicios desplegados junt

## Diagrama de Arquitectura

![Architecture Diagram](/assets/SDP/SDP2-2.png)
![Architecture Diagram](/assets/sdp/2.png)

### Roles de Usuario {#user-roles}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ Single tenant mode - Login URL:

### Inicia sesión en el SDP

Abre http://localhost:3000 e inicia sesión usando las credenciales de administrador generadas por el asistente de configuración (organización: default). ![Login](/assets/SDP/SDP32.png)
Abre http://localhost:3000 e inicia sesión usando las credenciales de administrador generadas por el asistente de configuración (organización: default).

![Login SDP Screenshot](/assets/sdp/33.png)

### Envía una distribución de prueba

Expand All @@ -69,15 +71,21 @@ Haz clic en `New Disbursement +` en el panel; verás una cuenta de distribución
- Selecciona XLM como el activo para distribuir.
- Elige Demo Wallet como la billetera destinataria.
- Selecciona Fecha de Nacimiento como método de verificación; los destinatarios la ingresarán para confirmar su identidad.
- Asigna un nombre a la distribución. ![Disbursement Details](/assets/SDP/SDP33.png)
- Asigna un nombre a la distribución.

![Disbursement Details SDP Screenshot](/assets/sdp/34.png)

Crear y subir un archivo de distribución:

- Descarga el ejemplo usando `Download CSV Template`; incluye todas las columnas requeridas.
- Actualiza los números de teléfono de marcador de posición/invalidos antes de usarlo.
- La columna de verificación contiene los datos de identidad que los destinatarios deben coincidir. ![Disbursement CSV](/assets/SDP/SDP34.png)
- La columna de verificación contiene los datos de identidad que los destinatarios deben coincidir.

![Disbursement CSV SDP Screenshot](/assets/sdp/35.png)

Haz clic en el botón Revisar. Cuando estés listo para iniciar la distribución, haz clic en el botón "Confirmar distribución". En Detalles de la Distribución verás el pago con estado `Ready`, lo que significa que el receptor aún no ha aceptado la invitación ni el pago. ![Disbursement Dashboard](/assets/SDP/SDP35.png)
Haz clic en el botón Revisar. Cuando estés listo para iniciar la distribución, haz clic en el botón "Confirmar distribución". En Detalles de la Distribución verás el pago con estado `Ready`, lo que significa que el receptor aún no ha aceptado la invitación ni el pago.

![Disbursement Dashboard SDP Screenshot](/assets/sdp/36.png)

### Recibir pago

Expand All @@ -91,20 +99,32 @@ Reclama el pago en la billetera de demostración creando primero una billetera:

- Abre la billetera de demo: http://localhost:4000.
- Haz clic en `Generate Keypair for new account` para crear un par de claves; guarda las claves pública y secreta si planeas reutilizar la cuenta.
- Haz clic en `Create account` para crear la cuenta en la testnet de Stellar (la cuenta inicia con 10,000 XLM). ![Demo Wallet Creation](/assets/SDP/SDP36.png)
- Haz clic en `Create account` para crear la cuenta en la testnet de Stellar (la cuenta inicia con 10,000 XLM).

![Demo Wallet Creation](/assets/sdp/37.png)

Para recibir tu pago, inicia un depósito SEP-24:

- Bajo Asset XLM, haz clic en `Add Home Domain`, ingresa `localhost:8000` y haz clic en `Override`.
- En el desplegable `Select action`, elige `SEP-24 Deposit` y luego haz clic en `Start`. ![SEP-24 Deposit](/assets/SDP/SDP37.png)
- En el desplegable `Select action`, elige `SEP-24 Deposit` y luego haz clic en `Start`.

![SEP 24 Deposit](/assets/sdp/38.png)

Verifica tu identidad:

- Cuando se te solicite, ingresa el mismo número de teléfono usado en el CSV de distribución.
- Completa la verificación OTP y Fecha de Nacimiento. El OTP aparece en los logs del contenedor `sdp-api` (por ejemplo, “Aquí está el código de verificación de 6 dígitos que solicitaste ...”). ![OTP Code](/assets/SDP/SDP38.png) ![PII Verification](/assets/SDP/SDP39.png)
- Completa la verificación OTP y Fecha de Nacimiento. El OTP aparece en los logs del contenedor `sdp-api` (por ejemplo, “Aquí está el código de verificación de 6 dígitos que solicitaste ...”).

![OTP Code SDP Screenshot](/assets/sdp/39.png)

![PII Verification SDP Screenshot](/assets/sdp/40.png)

### Monitoreo

- En el panel del SDP, el pago cambia de `Ready` a `PENDING` durante el flujo de la billetera, luego a `Success` cuando se depositan los fondos. ![SDP Dashboard](/assets/SDP/SDP40.png)
- En el panel del SDP, el pago cambia de `Ready` a `PENDING` durante el flujo de la billetera, luego a `Success` cuando se depositan los fondos.

![SDP Dashboard SDP Screenshot](/assets/sdp/41.png)

- En la billetera de demo, el saldo se actualiza para reflejar la nueva cantidad.

- En la billetera de demo, el saldo se actualiza para reflejar la nueva cantidad. ![Demo Wallet Balance](/assets/SDP/SDP41.png)
![Demo Wallet Balance](/assets/sdp/42.png)
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ La experiencia de registro del destinatario es primordial para que esta aplicaci

3. El usuario confirma su número de teléfono y fecha de nacimiento directamente con el SDP, sin compartir ningún dato con la billetera, y después de que finaliza el registro, el usuario es enviado de nuevo a la aplicación de billetera. Aquí están las pantallas que demuestran estos pasos:

![Flujo de Registro](/assets/SDP/SDP25.png)
![Flujo de Registro](/assets/sdp/26.png)

4. El usuario recibe el pago en cuestión de segundos

Expand Down
Loading
Loading