{"id":18263308,"url":"https://github.com/safe-global/safe-price-service","last_synced_at":"2026-03-09T10:01:12.791Z","repository":{"id":203761929,"uuid":"699391337","full_name":"safe-global/safe-price-service","owner":"safe-global","description":"Retrieve prices for native assets and ERC20/ERC721 tokens in a custom chain using multiple oracles","archived":false,"fork":false,"pushed_at":"2025-05-26T10:41:07.000Z","size":111,"stargazers_count":5,"open_issues_count":5,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-26T11:47:54.072Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/safe-global.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-02T14:40:46.000Z","updated_at":"2025-05-26T10:41:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b334212-7825-4681-9d1f-52926f3f768a","html_url":"https://github.com/safe-global/safe-price-service","commit_stats":null,"previous_names":["safe-global/safe-price-service"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/safe-global/safe-price-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-price-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-price-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-price-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-price-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/safe-global","download_url":"https://codeload.github.com/safe-global/safe-price-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-price-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30290889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: 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":[],"created_at":"2024-11-05T11:10:44.029Z","updated_at":"2026-03-09T10:01:12.770Z","avatar_url":"https://github.com/safe-global.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Python CI](https://github.com/safe-global/safe-price-service/actions/workflows/python.yml/badge.svg?branch=main)](https://github.com/safe-global/safe-price-service/actions/workflows/python.yml)\n[![Coverage Status](https://coveralls.io/repos/github/safe-global/safe-price-service/badge.svg?branch=main)](https://coveralls.io/github/safe-global/safe-price-service?branch=main)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n![Python 3.12](https://img.shields.io/badge/Python-3.12-blue.svg)\n![Django 5](https://img.shields.io/badge/Django-5-blue.svg)\n[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/safeglobal/safe-price-service?label=Docker\u0026sort=semver)](https://hub.docker.com/r/safeglobal/safe-price-service)\n\n# Safe Price Service\n\nReturns fiat prices for base currencies and ERC20 tokens.\n\nThis logic was previously on the [Safe Transaction Service](https://github.com/safe-global/safe-transaction-service). As it was not needed anymore but a lot of work was done,\na decision was made to create a new service and give it to the Ethereum community.\n\nIt's expected that the project will be community driven, Safe team will only take care of updating dependencies and reviewing community PRs, so please don't open issues\nabout your favorite token not returning a price or price being wrong.\n\n## Configuration\n\nOne instance of the service can support multiple EVM compatible chains.\n\n```bash\ncp .env.sample .env\n```\n\nConfigure environment variables on `.env`:\n\n- `DJANGO_SECRET_KEY`: **IMPORTANT: Update it with a secure generated string**.\n- `ETHEREUM_NODES_URLS`: Comma separated list of the node RPCs for the chains supported for fetching prices.\n- `PRICES_CACHE_TTL_MINUTES`: Minutes to keep a price in cache.\n\n## Execution\n\n```bash\ndocker compose build\ndocker compose up\n```\n\nThen go to http://localhost:8000 to see the service documentation.\n\nExample request to get USD for Gnosis token on mainnet:\nhttp://localhost:8000/api/v1/1/tokens/0x6810e776880C02933D47DB1b9fc05908e5386b96/prices/usd/\n\n## Endpoints\n\n- /v1/{chainId}/tokens/{address}/prices/usd/\n\n## Contributors\n\n[See contributors](https://github.com/safe-global/safe-price-service/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-price-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsafe-global%2Fsafe-price-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-price-service/lists"}