{"id":13408133,"url":"https://github.com/multiversx/mx-nft-service","last_synced_at":"2026-03-14T22:05:52.048Z","repository":{"id":64399088,"uuid":"352973686","full_name":"multiversx/mx-nft-service","owner":"multiversx","description":"Unified GraphQL for providing information regarding nfts in MultiversX Blockchain and indexing auctions on different marketplaces","archived":false,"fork":false,"pushed_at":"2025-09-08T16:13:55.000Z","size":8545,"stargazers_count":14,"open_issues_count":0,"forks_count":8,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-10-06T14:11:05.964Z","etag":null,"topics":["blockchain","graphql","nft"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/multiversx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2021-03-30T11:17:42.000Z","updated_at":"2025-08-20T07:24:20.000Z","dependencies_parsed_at":"2023-02-17T21:00:56.692Z","dependency_job_id":"6eac8d3d-8bcb-4148-9b2c-89565132d4f4","html_url":"https://github.com/multiversx/mx-nft-service","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/multiversx/mx-nft-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-nft-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-nft-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-nft-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-nft-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/multiversx","download_url":"https://codeload.github.com/multiversx/mx-nft-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiversx%2Fmx-nft-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30519115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-14T19:51:21.629Z","status":"ssl_error","status_checked_at":"2026-03-14T19:51:12.959Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["blockchain","graphql","nft"],"created_at":"2024-07-30T20:00:50.968Z","updated_at":"2026-03-14T22:05:52.010Z","avatar_url":"https://github.com/multiversx.png","language":"TypeScript","funding_links":[],"categories":["MultiversX official"],"sub_categories":["Dev dApps"],"readme":"GraphQl service to provide informations regarding nfts and auctions on MultiversX Blockchain\n\n## Dependencies\n\n1. Node.js \u003e @16.x.x is required to be installed [docs](https://nodejs.org/en/)\n1. Redis Server is required to be installed [docs](https://redis.io/).\n1. MySQL Server is required to be installed [docs](https://dev.mysql.com/doc/refman/8.0/en/installing.html).\n1. MongoDB Server is required to be installed [docs](https://www.mongodb.com/docs/manual/installation).\n\nYou can use `docker-compose up` 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 Scripts\n\nThis is an MultiversX project built on Nest.js framework.\n\n### `npm run start:prod`\n\nRuns the app in the production mode.\nMake requests to [http://localhost:3005/graphql](http://localhost:3005/graphql).\n\n## Running the app\n\n1. At the root folder run (make sure you have node v16.x.x)\n\n```bash\n$ npm install\n```\n\n2. Create .env file from .env.example (all flags are disabled by default)\n\n3. Start the app\n\n```bash\n# development debug mode\n$ npm run start:debug\n# development mode\n$ npm run start:dev\n# production mode\n$ npm run start:prod\n```\n\nIt depends on the following external systems:\n\n- gateway:\n  - interaction with the indexed marketplace\n  - docs: [https://docs.multiversx.com/sdk-and-tools/proxy/](https://docs.multiversx.com/sdk-and-tools/proxy/)\n- index:\n  - to gather information regarding nft history\n  - docs: [https://docs.multiversx.com/sdk-and-tools/elastic-search/)\n- api:\n  - to get information regarding nfts and collections\n  - docs: [https://docs.multiversx.com/sdk-and-tools/rest-api/multiversx-api/](https://docs.multiversx.com/sdk-and-tools/rest-api/multiversx-api/)\n    It uses on the following internal systems:\n- redis: used to cache various data, for performance purposes\n- rabbitmq: pub/sub for sending mainly NFT process information\n\nA service instance can be started with the following behavior:\n\n- public API: provides graphQL queries for the consumers\n- private API: used to report prometheus metrics \u0026 health checks\n- rabbitMq: used to report prometheus metrics \u0026 health checks\n- claimable auctions: update status for auctions in db for auctions that reached deadline\n- cache warmer: used to proactively fetch data \u0026 pushes it to cache, to improve performance \u0026 scalability\n- cache invalidation - uses rabbitMq to invalidate cache an multiple instances\n- elastic updater: used to attach various extra information to items in the elasticsearch, for not having to fetch associated data from other external systems when performing listing requests\n- multiple cronjobs: update data in elastic service for nsfw, rarity, traits, scam\n\nIt depends on the following optional external systems:\n\n- events notifier rabbitmq: queue that pushes logs \u0026 events which are handled internally e.g. to trigger auctions indexing\n- data: provides eGLD price information for transactions\n- ipfs: ipfs gateway for uploading nft media and metadata\n- AWS S3: used to upload nft media for faster performance\n\nIt uses the following optional internal systems:\n\n- mysql database: used to store mainly auction information\n- mongo database: used to store mainly NFT traits information\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiversx%2Fmx-nft-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiversx%2Fmx-nft-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiversx%2Fmx-nft-service/lists"}