{"id":29273992,"url":"https://github.com/stellar/smart-wallet-demo-app","last_synced_at":"2026-02-28T07:36:30.738Z","repository":{"id":301042894,"uuid":"1000655460","full_name":"stellar/smart-wallet-demo-app","owner":"stellar","description":"Smart Wallet Demo App","archived":false,"fork":false,"pushed_at":"2025-12-05T17:05:40.000Z","size":3836,"stargazers_count":43,"open_issues_count":1,"forks_count":10,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-12-09T04:34:35.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stellar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-12T05:59:26.000Z","updated_at":"2025-12-05T17:05:42.000Z","dependencies_parsed_at":"2025-06-24T22:22:51.982Z","dependency_job_id":"d255b0c3-3fc5-4aac-ba97-2ff94a661e3e","html_url":"https://github.com/stellar/smart-wallet-demo-app","commit_stats":null,"previous_names":["stellar/smart-wallet-demo-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stellar/smart-wallet-demo-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsmart-wallet-demo-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsmart-wallet-demo-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsmart-wallet-demo-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsmart-wallet-demo-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stellar","download_url":"https://codeload.github.com/stellar/smart-wallet-demo-app/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsmart-wallet-demo-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29927623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-05T03:13:12.024Z","updated_at":"2026-02-28T07:36:30.733Z","avatar_url":"https://github.com/stellar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Instructions\n\n### SDP\n\n1. Go through the forgot-password flow with the user `admin@example.com`, and set the password.\n1. Login and create an API key with ALL write permissions by going to `API Keys` -\u003e `Create API Key` and set the permissions to `ALL: READ\u0026WRITE`. Copy the generated key and use it for The smart-wallet's `SDP_EMBEDDED_WALLETS_API_KEY` env.\n1. Create a disbursement using `SDP Embedded Wallet` as the wallet provider, and set a file like:\n\n   ```csv\n   email,id,amount,verification\n   foo@example.com,4ba1,0.01,2000-01-01\n   ```\n\n1. Start the disbursement and check the links in the emails porinted in the logs.\n\n# Stellar Smart Wallet Demo\n\nThis monorepo provides a complete, modular demo application for a Stellar-based smart wallet. It includes everything you need to explore and extend a full-stack Stellar wallet solution. From backend services and frontend interface to smart contracts. While not a white-label solution, it serves as a solid foundation for developers who want to build their own Stellar-powered wallets.\n\n## Monorepo Structure\n\nThis repository is organized as follows:\n\n- [apps/](./apps)\n  - [backend/](./apps/backend) | Node.js backend (API)\n  - [web/](./apps/web) | React-based web application\n- [contracts/](./contracts) | Smart contracts (e.g., Soroban)\n- [scripts/](./scripts) | Utility scripts for setting up and managing the environment\n- [Makefile](./Makefile) | Project-level build and dev commands\n- [docker-compose.yml](./docker-compose.yml) | Container orchestration\n\n## Requirements\n\n- [Docker](https://www.docker.com/)\n- [Node.js](https://nodejs.org/) v22+\n- [NPM](https://www.npmjs.com/)\n- [Make](https://www.gnu.org/software/make/)\n\n## Quick Start\n\nTo start with the whole infrastructure, please refer to the [complete_infra](./complete_infra) directory.\n\nTo start with the applications hosted in this repository using Docker:\n\n```bash\nmake docker-setup-dev\nmake docker-start-dev\n```\n\n### Environment Variables\n\nMake sure to configure your environment variables before running the apps:\n\n- Backend\n\n  - `apps/backend/src/config/.env.example` (used as a reference)\n  - `apps/backend/src/config/.env.development`\n  - `apps/backend/src/config/.env.test`\n\n- Web\n  - `apps/web/src/config/.env.example` (used as a reference)\n  - `apps/web/src/config/.env.local`\n  - `apps/web/src/config/.env.test`\n\n## Running Apps Individually\n\nYou can also work on a specific app (e.g., backend or web) without running the full stack.\n\n### Example: Running the Backend Only\n\n```bash\nmake docker-setup-dev PROFILE=backend\nmake docker-start-dev PROFILE=backend\n```\n\n### Example: Running the Web App Only\n\n```bash\nmake docker-setup-dev PROFILE=web\nmake docker-start-dev PROFILE=web\n```\n\n## Local Development Commands\n\nAll workspace apps support the following `make` commands:\n\n| Command                         | Description                                                                                        |\n| ------------------------------- | -------------------------------------------------------------------------------------------------- |\n| `setup-dev`                     | Installs dependencies and performs initial setup for the app                                       |\n| `clean-setup-dev`               | Removes previous builds and sets up a clean dev environment                                        |\n| `clean-setup`                   | Cleans previous installations and prepares for new setup                                           |\n| `build`                         | Builds the selected app                                                                            |\n| `start`                         | Starts the app in production mode                                                                  |\n| `start-dev`                     | Starts the app in development mode                                                                 |\n| `start-staging`                 | Starts the app using staging configuration                                                         |\n| `test`                          | Runs tests for the selected app                                                                    |\n| `test-coverage`                 | Runs tests and shows coverage                                                                      |\n| `lint`                          | Runs ESLint on the codebase                                                                        |\n| `lint-fix`                      | Auto-fixes linting issues                                                                          |\n| `type-check`                    | Runs TypeScript type checking                                                                      |\n| `format-code`                   | Formats the code using Prettier                                                                    |\n| `serve`                         | Runs a local static server (**only for web**)                                                      |\n| `migration-run`                 | Runs database migrations (**only for backend**)                                                    |\n| `migration-generate`            | Generates a new migration based on entities changes (**only for backend**)                         |\n| `docker-run-migration-run`      | Runs database migrations - on a Docker container (**only for backend**)                            |\n| `docker-run-migration-generate` | Generates a new migration based on entities changes - on a Docker container (**only for backend**) |\n\nUse these commands by specifying the `APP` variable. For example:\n\n```bash\nmake build APP=web\nmake test APP=backend\n```\n\n## Smart Contracts\n\nThe `contracts` folder contains Stellar smart contracts (e.g., Soroban) used by the backend or client apps. Instructions for compiling, testing, and deploying contracts are documented in that directory’s README.\n\n## Airdrop API\n\nThe backend includes airdrop functionality through the embedded wallets API for Merkle proof verification and airdrop claims. The airdrop contract needs to be deployed and proofs need to be uploaded to the backend before users can claim their airdrops.\n\n### Setup\n\n1. Deploy an airdrop contract (see [contracts/](./contracts))\n2. Generate proofs: `npm run --workspace=scripts generate-proofs`\n3. Upload proofs: `npm run --workspace=scripts upload-proofs`\n4. Get airdrop options: `GET /api/embedded-wallets/airdrop/options`\n5. Complete airdrop claim: `POST /api/embedded-wallets/airdrop/complete`\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellar%2Fsmart-wallet-demo-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstellar%2Fsmart-wallet-demo-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellar%2Fsmart-wallet-demo-app/lists"}