{"id":15642149,"url":"https://github.com/paulmillr/tx-tor-broadcaster","last_synced_at":"2025-07-30T06:13:02.672Z","repository":{"id":44404968,"uuid":"512484890","full_name":"paulmillr/tx-tor-broadcaster","owner":"paulmillr","description":"CLI utility that broadcasts BTC, ETH, SOL, ZEC \u0026 XMR transactions through TOR using public block explorers","archived":false,"fork":false,"pushed_at":"2024-12-20T01:16:29.000Z","size":37,"stargazers_count":74,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-09T16:13:19.062Z","etag":null,"topics":["broadcast","tor","transaction","tx"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/paulmillr.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-10T16:33:02.000Z","updated_at":"2025-03-19T23:08:09.000Z","dependencies_parsed_at":"2025-02-09T22:00:33.210Z","dependency_job_id":"6c80a804-fe47-4335-a5ab-09978cd6dd1f","html_url":"https://github.com/paulmillr/tx-tor-broadcaster","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"5e17f679e5634bb82bfbc4420541ad4379f4eb92"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulmillr%2Ftx-tor-broadcaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulmillr%2Ftx-tor-broadcaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulmillr%2Ftx-tor-broadcaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulmillr%2Ftx-tor-broadcaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulmillr","download_url":"https://codeload.github.com/paulmillr/tx-tor-broadcaster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065282,"owners_count":21041872,"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":["broadcast","tor","transaction","tx"],"created_at":"2024-10-03T11:54:55.415Z","updated_at":"2025-04-09T16:13:25.948Z","avatar_url":"https://github.com/paulmillr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tx-tor-broadcaster\n\nCLI utility that broadcasts BTC, ETH, SOL, ZEC \u0026 XMR transactions through [TOR](https://www.torproject.org) using public block explorers.\n\nProvides a great degree of anonymity for your transactions.\n\nEnsures no traffic is passed outside TOR, including DNS requests. Uses one small dependency which\nprovides list of popular user agents. See [fingerprinting](#fingerprinting) section for additional information.\n\n_Check out all web3 utility libraries:_ [ETH](https://github.com/paulmillr/micro-eth-signer), [BTC](https://github.com/paulmillr/scure-btc-signer), [SOL](https://github.com/paulmillr/micro-sol-signer), [tx-tor-broadcaster](https://github.com/paulmillr/tx-tor-broadcaster)\n\n## Usage\n\n\u003e npm install -g tx-tor-broadcaster\n\nThe command line interface is simple: call `txtor \u003cNET\u003e \u003cTX\u003e` command through terminal.\n\nYou must have Tor or Tor Browser up \u0026 running.\n\nYou can specify a few options via env variables, if needed:\n\n- `TOR_HOST=192.168.2.5 txtor zec \u003ctx\u003e`; default is `127.0.0.1`\n- `TOR_SOCKS_PORT=9051 txtor bch \u003ctx\u003e`; default is `9050` (`9150` should be used for Tor Browser)\n- `TOR_RETRY_LIMIT=2 txtor sol \u003ctx\u003e`; default is `10`\n\n```sh\ntxtor\n# Usage: txtor \u003cNET\u003e \u003cTX\u003e\n# NET: btc, eth, sol, zec, xmr, bch\n\ntxtor btc 0100000001c997a5e56e104102fa209c6a852dd90660a20b2d9c352423edce25857fcd3704000000004847304402204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4acdd12909d831cc56cbbac4622082221a8768d1d0901ffffffff0200ca9a3b00000000434104ae1a62fe09c5f51b13905f07f06b99a2f7159b2225f374cd378d71302fa28414e7aab37397f554a7df5f142c21c1b7303b8a0626f1baded5c72a704f7e6cd84cac00286bee0000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac00000000\ntxtor eth 0xf86c0a8502540be400825208944bbeeb066ed09b7aed07bf39eee0460dfa261520880de0b6b3a7640000801ca0f3ae52c1ef3300f44df0bcfd1341c232ed6134672b16e35699ae3f5fe2493379a023d23d2955a239dd6f61c4e8b2678d174356ff424eac53da53e17706c43ef871\ntxtor sol 4vC38p4bz7XyiXrk6HtaooUqwxTWKocf45cstASGtmrD398biNJnmTcUCVEojE7wVQvgdYbjHJqRFZPpzfCQpmUN\n```\n\nNode.js API:\n\n```js\nimport { Broadcaster } from 'tx-tor-broadcaster';\nconst br = new Broadcaster(net, tx); // , opts = { socksHost, socksPort, retryLimit }\nconsole.log(`${bold}TOR exit IP:${reset}`, await br.getIP());\nconst res = await br.broadcast();\nif (res) console.log(`${green}${bold}Published${reset} (${res.host}): ${res.txId}`);\n```\n\n## Fingerprinting\n\nFingerprinting is an algorithm that allows to uniquely identify user within the global dataset.\nFor example, if you are using obscure old browser for everything, it's easy to\nidentify you within millions of users.\n\nThe app uses popular user agents [(package)](https://github.com/paulmillr/popular-user-agents) to\npopulate `User-Agent` header. If more than 120 days have passed since the dependency was last updated,\nthe package will stop working.\n\nThis mitigates only one variable. There are many others:\n\n- Headers\n    - `Accept`: e.g. `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n    - `Accept-Encoding`: compression support `gzip, deflate, br`\n    - `Accept-Language`: OS language\n- TLS/SSL settings; indicating supported...\n    - TLS protocols e.g. 1.3, 1.2\n    - HTTP versions e.g. HTTP2, HTTP3\n    - cipher suites e.g. `TLS_AES_256_GCM_SHA384` or `TLS_CHACHA20_POLY1305_SHA256`\n    - named groups e.g. `x25519, secp256r1, x448, secp521r1, secp384r1`\n- Network/TCP settings, possibly MTU/Nagle algorithm status\n\nIt has been decided the best way to go is not copying full browser behavior,\nbut instead, just setting the `User-Agent` header; to ensure Cloudflare is bypassed properly.\n\nSince there are tens of variables that can affect fingerprint calculation,\nit's non-trivial to set all of them properly. Not only that, we'll need to\nupdate the params with every browser update. And we'll still probably\nmiss some minor detail.\n\n- Let's say there are 1000 people who send TX through Tor using popular browser User Agent\n- Out of them, only 100 will set additional headers like `Accept-Language`. Many of them\n  will send different information in headers; some will support Enconding, some will not\n- So, the more we mimic a particular browser, the more we increase our fingerprinting vector\n\nTo view the data you're leaving, check out\n[httpbin](http://httpbin.org/headers), [httpbin ssl](https://httpbin.org/headers),\n[browserleaks](https://browserleaks.com/ssl) and [valdikss](http://witch.valdikss.org.ru).\n\n## License\n\nMIT License (c) 2022 Paul Miller (https://paulmillr.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulmillr%2Ftx-tor-broadcaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulmillr%2Ftx-tor-broadcaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulmillr%2Ftx-tor-broadcaster/lists"}