{"id":48775908,"url":"https://github.com/karma0/nombot","last_synced_at":"2026-04-13T12:33:22.836Z","repository":{"id":37748013,"uuid":"106576546","full_name":"karma0/nombot","owner":"karma0","description":"Cryptocurrency Trading Bot","archived":false,"fork":false,"pushed_at":"2024-12-01T13:40:01.000Z","size":508,"stargazers_count":58,"open_issues_count":14,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-12-01T14:31:44.095Z","etag":null,"topics":["algorithm","cryptocurrency","cryptocurrency-trading-bot","currencies","exchange","market-maker","market-making","python","strategy"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karma0.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-11T16:00:21.000Z","updated_at":"2024-10-11T06:35:15.000Z","dependencies_parsed_at":"2023-02-19T01:16:10.373Z","dependency_job_id":"dd283c5d-6d54-4e32-ae64-67187d9d0a2d","html_url":"https://github.com/karma0/nombot","commit_stats":{"total_commits":407,"total_committers":4,"mean_commits":101.75,"dds":0.5257985257985258,"last_synced_commit":"aae75ed502821a291b235a4ed75d0100c985080e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/karma0/nombot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karma0%2Fnombot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karma0%2Fnombot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karma0%2Fnombot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karma0%2Fnombot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karma0","download_url":"https://codeload.github.com/karma0/nombot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karma0%2Fnombot/sbom","scorecard":{"id":550649,"data":{"date":"2025-08-11","repo":{"name":"github.com/karma0/nombot","commit":"aae75ed502821a291b235a4ed75d0100c985080e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T10:44:42.211Z","repository_id":37748013,"created_at":"2025-08-20T10:44:42.211Z","updated_at":"2025-08-20T10:44:42.211Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["algorithm","cryptocurrency","cryptocurrency-trading-bot","currencies","exchange","market-maker","market-making","python","strategy"],"created_at":"2026-04-13T12:33:21.760Z","updated_at":"2026-04-13T12:33:22.822Z","avatar_url":"https://github.com/karma0.png","language":"Python","readme":".. image:: https://travis-ci.org/karma0/nombot.svg?branch=master\n    :target: https://travis-ci.org/karma0/nombot\n\n.. image:: https://readthedocs.org/projects/nombot/badge/?version=latest\n    :target: https://nombot.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/karma0/nombot/shield.svg\n    :target: https://pyup.io/repos/github/karma0/nombot/\n    :alt: Updates\n\n.. image:: https://pyup.io/repos/github/karma0/nombot/python-3-shield.svg\n    :target: https://pyup.io/repos/github/karma0/nombot/\n    :alt: Python 3\n\n\nnombot\n======\n\nA flexible cryptocurrency trading bot written in Python and ``bors``.\n\nDependencies\n------------\n\nSome assumptions are made that you are familiar with Python and operate\nin Linux. There is currently no way to test on Windows or Apple\noperating systems, and while you may use the OTS strategies that come\nwith this repository, in order to expand on your strategy development\ntime is a likely requirement.\n\nIf you are able to use ``docker``, this will solve the first problem. If\nyou are able to pay for development services, that will solve the\nsecond.\n\nPython Dependencies\n~~~~~~~~~~~~~~~~~~~\n\n-  Python 3.6+ is assumed\n-  ``bors``\n-  ``ccxt``\n-  ``dataclasses``\n\nKey Features\n------------\n\nExchanges\n~~~~~~~~~\n\n-  Extensible for any exchange using CCXT.\n-  Exchange helper facilities; \\_connection pooling, websockets, shared\n   contexts.\n-  Mutiple exchange connectivity allowing for arbitrage.\n-  Strive toward dynamic, forward-compatible interfaces.\n\nCurrencies\n~~~~~~~~~~\n\nAll currencies supported; *if the exchange supports it, it will\nwork*. \\* Wallet support, allowing for automated coin transfers.\n*(coming soon)*\n\nAlgorithms\n~~~~~~~~~~\n\nImplementation is independent of strategy, allowing for maximal\nreuse, flexibility, and enforcing DRY principles.\n\nStrategies\n~~~~~~~~~~\n\n-  \"Plugable\" *strategy* architecture using ``IStrategy`` inheritance.\n-  \"Stackable\" architecture allows you to isolate grouped functionality\n   for reuse.\n-  Utilizes a middleware pipeline for processing.\n-  Shared context objects allow for maximum versatility in complex\n   scenarios.\n-  Utilization of algorithms as backend functional libraries (strategy\n   equates to \"business logic\").\n-  Automatic configuration pass-through.\n-  See ``bors`` for more information.\n\nConfiguration\n~~~~~~~~~~~~~\n\nFlexible modularized configuration using JSON.  See ``config.json.example``.\n\nSecurity\n~~~~~~~~\n\n-  Namespaced immutable configuration will greatly reduce your chance of\n   information leakage and manipulation.\n-  File system storage \u0026 security (requires careful consideration of\n   file permissions; see install notes below).\n\nComing soon...\n~~~~~~~~~~~~~~\n\n-  Backtesting and supporting documentation.\n-  More documentation around creating exchanges, algorithms, and\n   strategies.\n-  Tests, tests, tests!\n-  For a deployment example, see ``siphonexchange``.\n\nSetup\n-----\n\nInstallation\n~~~~~~~~~~~~\n\n.. code:: bash\n\n    git clone https://github.com/karma0/nombot.git nombot \u0026\u0026 cd $_\n    pip install requests numpy pandas\n\nUpgrading to the latest\n~~~~~~~~~~~~~~~~~~~~~~~\n\nThe ``master`` branch will contain the latest release. ``develop`` will\ncontain the latest developments and may break things.\n\n.. code:: bash\n\n    git pull\n\nConfiguration\n~~~~~~~~~~~~~\n\n1. Create your strategy class, using any available algorithms, or\n   creating your own algorithms.\n2. Copy ``config.json.example`` to ``config.json`` and execute\n   ``chmod 600 config.json``.\n3. Change the configuration required for your strategy, exchange(s), API\n   calls, etc. based on the examples.\n\nExecution\n~~~~~~~~~\n\n.. code:: bash\n\n    ./trader.py\n\nContributing\n------------\n\nOptions: 1. Follow the instructions here:\nhttps://help.github.com/articles/fork-a-repo/ 2. Submit an issue or\nfeature request\n`here \u003chttps://help.github.com/articles/fork-a-repo/\u003e`__.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarma0%2Fnombot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarma0%2Fnombot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarma0%2Fnombot/lists"}