{"id":31619397,"url":"https://github.com/multiversx/mx-template-service","last_synced_at":"2025-10-06T14:06:05.522Z","repository":{"id":38369543,"uuid":"396787225","full_name":"multiversx/mx-template-service","owner":"multiversx","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-26T11:27:54.000Z","size":1202,"stargazers_count":14,"open_issues_count":2,"forks_count":6,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-06-27T11:49:34.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/multiversx.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}},"created_at":"2021-08-16T12:34:30.000Z","updated_at":"2024-06-27T11:49:34.167Z","dependencies_parsed_at":"2024-04-09T09:28:28.443Z","dependency_job_id":"5abcd671-dc0d-4ed0-b144-df9191746abc","html_url":"https://github.com/multiversx/mx-template-service","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/multiversx/mx-template-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-template-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-template-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-template-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-template-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/multiversx","download_url":"https://codeload.github.com/multiversx/mx-template-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-template-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278621844,"owners_count":26017253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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-10-06T14:06:04.019Z","updated_at":"2025-10-06T14:06:05.507Z","avatar_url":"https://github.com/multiversx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"REST API facade template for microservices that interacts with the MultiversX blockchain.\n\n## Quick start\n\n1. Run `npm install` in the project directory\n2. Optionally make edits to `config/config.yaml` and/or `.env` files\n\n## Dependencies\n\n1. Redis Server is required to be installed [docs](https://redis.io/).\n2. MySQL Server is required to be installed [docs](https://dev.mysql.com/doc/refman/8.0/en/installing.html).\n3. MongoDB Server is required to be installed [docs](https://docs.mongodb.com/).\n\nYou can run `docker-compose up` (or `docker-compose up -d` as detached) in a separate terminal to use a local Docker container for all these dependencies.\n\nAfter running the sample, you can stop the Docker container with `docker-compose down`\n\n## Available Features / Modules\n\n### `Public API`\n\nEndpoints that can be used by anyone (public endpoints).\n\n### `Private API`\n\nEndpoints that are not exposed on the internet\nFor example: We do not want to expose our metrics and cache interactions to anyone (/metrics /cache)\n\n### `Cache Warmer`\n\nThis is used to keep the application cache in sync with new updates.\n\n### `Transaction Processor`\n\nThis is used for scanning the transactions from MultiversX Blockchain.\n\n### `Queue Worker`\n\nThis is used for concurrently processing heavy jobs.\n\n### `Grafana dashboard`\n\nYou can find a predefined Grafana dashboard with basic metrics at [http://localhost:3010](http://localhost:3010)\n\nUse `admin` for user and password fields. Then navigate to `Dashboards` -\u003e `Template Service`\n\n## Available Scripts\n\nThis is a MultiversX project built on Nest.js framework.\n\n### Environment variables\n\nIn order to simplify the scripts, the templates will use the following environment variables:\n\n- `NODE_ENV`\n\n**Description**: Defines the environment in which the application runs. This influences various configuration settings.\n\n**Possible Values**: `mainnet`, `testnet`, `devnet`, `infra`\n\n**Usage**: Determines the environment-specific configurations and behaviors of the application.\n\n- `NODE_APP`\n\n**Description**: Specifies which part of the application to start.\n\n**Possible Values**: `api`, `cache-warmer`, `transactions-processor`, `queue-worker`\n\n**Usage**: Selects the specific application module to run.\n\n- `NODE_DEBUG`\n\n**Description**: Enables or disables development debug mode.\n\n**Possible Values**: `true`, `false`\n\n**Usage**: When set to true, the application starts in debug mode, useful for development.\n\n- `NODE_WATCH`\n\n**Description**: Enables or disables development watch mode.\n\n**Possible Values**: `true`, `false`\n\n**Usage**: When set to true, the application starts in watch mode, which automatically reloads the app on code changes.\n\n\n### `npm run start`\n\nRuns the app in the production mode.\nMake requests to [http://localhost:3001](http://localhost:3001).\n\nRedis Server is required to be installed.\n\n## Running the api\n\n```bash\n# development watch mode on devnet\n$ NODE_ENV=devnet NODE_APP=api NODE_WATCH=true npm run start\nor\n$ NODE_ENV=devnet NODE_WATCH=true npm run start:api\n\n# development debug mode on devnet\n$ NODE_ENV=devnet NODE_APP=api NODE_DEBUG=true npm run start\nor\n$ NODE_ENV=devnet NODE_DEBUG=true npm run start:api\n\n# development mode\n$ NODE_ENV=devnet NODE_APP=api npm run start\nor\n$ NODE_ENV=devnet npm run start:api\n\n# production mode\n$ NODE_ENV=mainnet NODE_APP=api npm run start\nor\n$ NODE_ENV=mainnet npm run start:api\n```\n\n## Running the transactions-processor\n\n```bash\n# development watch mode on devnet\n$ NODE_ENV=devnet NODE_APP=transactions-processor NODE_WATCH=true npm run start\nor\n$ NODE_ENV=devnet NODE_WATCH=true npm run start:transactions-processor\n\n# development debug mode on devnet\n$ NODE_ENV=devnet NODE_APP=transactions-processor NODE_DEBUG=true npm run start\nor\n$ NODE_ENV=devnet NODE_DEBUG=true npm run start:transactions-processor\n\n# development mode on devnet\n$ NODE_ENV=devnet NODE_APP=transactions-processor npm run start\nor\n$ NODE_ENV=devnet npm run start:transactions-processor\n\n# production mode\n$ NODE_ENV=mainnet npm run start:transactions-processor\n```\n\n## Running the queue-worker\n\n```bash\n# development watch mode on devnet\n$ NODE_ENV=devnet NODE_APP=queue-worker NODE_WATCH=true npm run start\nor\n$ NODE_ENV=devnet NODE_WATCH=true npm run start:queue-worker\n\n# development debug mode on devnet\n$ NODE_ENV=devnet NODE_APP=queue-worker NODE_DEBUG=true npm run start\nor\n$ NODE_ENV=devnet NODE_DEBUG=true npm run start:queue-worker\n\n# development mode on devnet\n$ NODE_ENV=devnet NODE_APP=queue-worker npm run start\nor\n$ NODE_ENV=devnet npm run start:queue-worker\n\n# production mode\n$ NODE_ENV=mainnet npm run start:queue-worker\n```\n\nRequests can be made to http://localhost:3001 for the api. The app will reload when you'll make edits (if opened in watch mode). You will also see any lint errors in the console.​\n\n### `npm run test`\n\n```bash\n# unit tests\n$ npm run test\n\n# e2e tests\n$ npm run test:e2e\n\n# test coverage\n$ npm run test:cov\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiversx%2Fmx-template-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiversx%2Fmx-template-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiversx%2Fmx-template-service/lists"}