{"id":17209208,"url":"https://github.com/jabbany/stratumitm","last_synced_at":"2025-04-13T22:32:46.210Z","repository":{"id":138388160,"uuid":"120716532","full_name":"jabbany/StratuMITM","owner":"jabbany","description":"A MITM \"forwarding proxy\" for the Stratum mining protocol. For debugging use ONLY.","archived":false,"fork":false,"pushed_at":"2018-03-17T22:24:06.000Z","size":48,"stargazers_count":33,"open_issues_count":2,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-27T13:11:06.540Z","etag":null,"topics":["forwarding-proxy","mining","stratum"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jabbany.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2018-02-08T05:43:24.000Z","updated_at":"2025-01-24T17:38:48.000Z","dependencies_parsed_at":"2023-04-30T11:00:40.533Z","dependency_job_id":null,"html_url":"https://github.com/jabbany/StratuMITM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbany%2FStratuMITM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbany%2FStratuMITM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbany%2FStratuMITM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jabbany%2FStratuMITM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jabbany","download_url":"https://codeload.github.com/jabbany/StratuMITM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248790782,"owners_count":21162089,"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","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":["forwarding-proxy","mining","stratum"],"created_at":"2024-10-15T02:51:02.609Z","updated_at":"2025-04-13T22:32:45.462Z","avatar_url":"https://github.com/jabbany.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StratuMITM\nA forwarding proxy designed to MITM the Stratum Mining Protocol. This project\nis designed to help debug Stratum implementations and view the messages being \nsent.\n\n## How does it work?\nStratuMITM is a run as a local Stratum bypass proxy. The idea is that instead \nof contacting a remote Stratum server, you can have (or force) your miner \ninstance's to contact the local Stratum proxy instead. StratuMITM then allows \nyou to modify (rewrite) and redirect traffic.\n\n## Why would I want it?\nStratuMITM lets you redirect local Stratum messages to a remote server and \nallows you to \"unpack\" messages and \"repack\" them with different information\nsuch as mining credentials. This can coerce a program relying on instructions\npassed to it through Stratum to do other things (i.e. encourage a miner to mine\nfor a different pool and/or a different account than it is configured to).\n\nIf you don't have access to the local server's miner configuration (i.e. which \nStratum pool it connects to and configured user credentials) but you do have \naccess to the local OS configuration or manage the local network, you may want\nto use StratuMITM to edit the mining settings \"over the air\". It's useful if \nyou get \"taxed\" by your mining software - instead of submitting the mining tax \n/ devfee, you get to use it at your own discretion.\n\nWhile StratuMITM could be used nefariously (i.e. coercing a server behind a NAT\nyou operate to produce results for you - aka stealing shares) we certainly don't\nrecommend using it for that purpose. **Never MITM connections from hosts you do \nnot own.**\n\nFor details on some specific use case samples, read the items in \n[docs/cases/](docs/cases/).\n\n### What about TLS?\nSome details are in the docs, but the tl;dr is: If the client/miner does not do\ncertificate pinning (it's not caught on much yet), then you can just as easily \nMITM the TLS connection. If it does, then this project will not help you.\n\n## Licensing\nStratuMITM code is released to the public domain meaning there are no \nrestrictions on its use. In cases where that is not possible, this code is \nlicensed under the Unlicense. See [License](LICENSE.md) for details.\n\nNote: Certain configurations of StratuMITM could be used for nefarious purposes.\nThe authors offer no warranty and are not liable for any damages (see license\nfor details).\n\n## Donate \nYou can donate to the project at the following addresses:\n\n- ZEC: t1eba1MCGKcViRTztUGqVUiuN2utQ71Sy1V\n- ETH: 0x663c603f20b883ccf86e56390fd0966f71c9fdc2\n- BTC: 1A2t2vAM9VZ4VbTp2i75e6j2DwoSaruyCh\n\nOr by mining for these addresses on any of the popular pools.\n\nDonations are completely voluntary and will support future development and \nresolving issues. This software does not contain any DevFees and is written in \nJavaScript so you can audit that it actually does not.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabbany%2Fstratumitm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjabbany%2Fstratumitm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabbany%2Fstratumitm/lists"}