{"id":17147976,"url":"https://github.com/toby/keyrun","last_synced_at":"2026-01-20T15:07:17.320Z","repository":{"id":136460164,"uuid":"178742635","full_name":"toby/keyrun","owner":"toby","description":"Distributed content publication and scoring based on Bitcoin","archived":false,"fork":false,"pushed_at":"2019-03-31T21:11:50.000Z","size":62,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-06T03:42:22.718Z","etag":null,"topics":["bitcoin","bittorrent","content-management-system","crypto","cryptocurrency","distributed","magnet-link","p2p"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-03-31T21:11:31.000Z","updated_at":"2024-05-16T15:24:55.000Z","dependencies_parsed_at":"2024-06-19T20:20:58.353Z","dependency_job_id":null,"html_url":"https://github.com/toby/keyrun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/toby/keyrun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toby%2Fkeyrun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toby%2Fkeyrun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toby%2Fkeyrun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toby%2Fkeyrun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toby","download_url":"https://codeload.github.com/toby/keyrun/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toby%2Fkeyrun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28606139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T14:45:23.139Z","status":"ssl_error","status_checked_at":"2026-01-20T14:44:16.929Z","response_time":117,"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":["bitcoin","bittorrent","content-management-system","crypto","cryptocurrency","distributed","magnet-link","p2p"],"created_at":"2024-10-14T21:26:45.805Z","updated_at":"2026-01-20T15:07:17.297Z","avatar_url":"https://github.com/toby.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# key.run\n\n## What is it?\n\nKey.run is an open source, distributed content publication app built on\nBitcoin and BitTorrent. Users publish content pointers known as magnet\nlinks to the blockchain using the key.run web interface and the Bitcoin Core\nwallet. The links are then sorted by the total amount of Bitcoin each\nmagnet url has acquired in key.run transaction fees.\n\nSince key.run uses the blockchain as its db and BitTorrent for content\nstorage, it operates without a centralized server and is designed to be\nhighly resistant to censorship or manipulation.\n\n## Get running\n\nThe fastest way to use key.run is to visit http://key.run and start\ndownloading content with any BitTorrent client that supports magnet\nlinks. We recommend [Transmission](http://www.transmissionbt.com).\n\nPublishing content on key.run requires paying a small Bitcoin fee using\nthe official [Bitcoin Core](https://bitcoin.org/en/download) client\n(additional wallet support coming soon).\n\nTo publish a magnet link, paste the full link url into the text field at\nthe top of key.run and click **Run**. This will open up Bitcoin Core and\nload the transaction needed to publish your link.\n\nOnce you submit your payment using your wallet, your link will show up\non key.run.\n\n## Scoring and content ranking\n\nMagnet links contain a BTIH (BitTorrent info hash) that represents a\nunique individual torrent file. BTIHs are distinct in the key.run db and\nmultiple attempts to publish the same BTIH will be aggregated. The total\nvalue sent to publish a particular BTIH is used for ranking.\n\nCurrently content is ranked by total Bitcoin amount used to publish that\nBTIH. In the future there will be more of a distinction between number\nof transactions and total amount possibly including the ability to sort by each.\n\n## Namespace keys\n\nA namespace key is a Bitcoin address that is monitored for key.run\ntransactions. Messages published to one namespace will not be visible in\nother namespaces.\n\nWhen you start the key.run server you have to give it a namespace key.\nThe default key.run namespace is [2NUysE6fnJNhiUGJbWE2wP8T7AFCtRAVs4](bitcoin:1NUysE6fnJNhiUGJbWE2wP8T7AFCtRAVs4).\nThe server uses Bitcoin [SPV](https://bitcoin.org/en/developer-guide#simplified-payment-verification-spv)\nand will only look for key.run transactions on that bitcoin address. All\nkey.run fees are sent to the namespace key.\n\n## Transaction Fees\n\nKey.run watches for transactions on a single namespace key per server\ninstance. Bitcoin sent in those transactions is collected by the namespace\nowner. Fees are currently fixed at 10,000 Satoshi per transactions but will\neventually be variable (down to the smallest amount allowed in a Bitcoin\ntransaction).\n\nBy default, key.run operates with the namespace key [2NUysE6fnJNhiUGJbWE2wP8T7AFCtRAVs4](bitcoin:1NUysE6fnJNhiUGJbWE2wP8T7AFCtRAVs4).\nFees collected are used to help continue the development of key.run, so\nplease consider using the default namespace even on your own hosted servers.\nYou can also donate bitcoin directly to the namespace key if you would like\nto support the project.\n\n## Hosting your own key.run server\n\nThe http://key.run website is hosted as a reference instance of the\nserver but you are encouraged to download and host your own server.\n\nKey.run is currently built in Clojure so you'll need the following\ninstalled on your machine:\n\n* [Java](https://www.java.com/en/download/)\n* [Leiningen](http://leiningen.org)\n\nYou can then [download the key.run source](https://git.playgrub.com/toby/keyrun)\nand run it with the command `lein run`.\n\nYou can also build the project as an uberjar and run it on any machine\nthat has Java installed (Leiningen isn't needed).\n\nOnce started, the key.run server will synchronize with the Bitcoin\nnetwork then be available for use. By default the web server runs on\nport 9090.\n\n## BIP-70 Payment Protocol\n\nKey.run uses the [BIP-70](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki)\nPayment Protocol to construct proper key.run transactions which are then\npassed to the Bitcoin Core client. This means each client publishes\ncontent directly to the Bitcoin network and no private keys are stored\non the key.run server.\n\n## OP_RETURN\n\nBitcoin transactions can store 40 bytes of data using [OP_RETURN](http://bitzuma.com/posts/op-return-and-the-future-of-bitcoin/).\nBitTorrent magnet links contain a 40 byte hash of a torrent file. That\nhash is stored on the blockchain in the OP_RETURN output of the\ntransaction constructed by key.run.\n\n## Future plans\n\nKey.run is a nascent technology and is meant as a technology\ndemonstration. Future versions will resolve magnet link metadata, allow\nfor sub namespace creation and allow users to earn Bitcoin by splitting\nfees with content publishers and sub namespace creators.\n\n## Who did this?\n\nKey.run is built by [Toby](http://twitter.com/toby). If you would like\nto discuss the project there is a #keyrun channel on Freenode.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoby%2Fkeyrun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoby%2Fkeyrun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoby%2Fkeyrun/lists"}