{"id":13892821,"url":"https://github.com/ndejong/keybase-network-graph","last_synced_at":"2025-07-29T19:04:22.260Z","repository":{"id":143026052,"uuid":"164297729","full_name":"ndejong/keybase-network-graph","owner":"ndejong","description":"Generate a GraphML graph datafile representing the Keybase.io network based on an origin Keybase user id value.","archived":false,"fork":false,"pushed_at":"2019-01-07T02:16:10.000Z","size":2234,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T21:35:47.625Z","etag":null,"topics":["gephi","graphml","keybase","keybase-api"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ndejong.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-01-06T10:43:12.000Z","updated_at":"2022-09-19T05:01:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"65925403-3cf0-4740-82b7-ac97ceb7ee16","html_url":"https://github.com/ndejong/keybase-network-graph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ndejong/keybase-network-graph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndejong%2Fkeybase-network-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndejong%2Fkeybase-network-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndejong%2Fkeybase-network-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndejong%2Fkeybase-network-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ndejong","download_url":"https://codeload.github.com/ndejong/keybase-network-graph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndejong%2Fkeybase-network-graph/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502994,"owners_count":23618675,"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":["gephi","graphml","keybase","keybase-api"],"created_at":"2024-08-06T17:01:15.077Z","updated_at":"2025-07-09T20:37:02.692Z","avatar_url":"https://github.com/ndejong.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Keybase Network Graph\n\nGenerate a [GraphML](http://graphml.graphdrawing.org/) graph datafile representing the [Keybase.io](https://keybase.io) \nnetwork based on an origin Keybase user id value.\n\n### Usage\n**Step 1:** Determine the user id (uid) you wish to center the network graph data collection around.  This is easily \nachieved by visiting [Keybase.io](https://keybase.io) for the user, reviewing any element in the user **chain** and \nfinding the `uid` value from the JSON payload data shown.\n\n**Step 2:** Run `keybase-network-graph.py` as per the example below, start small `--depth=1` since the networks can \nblow out very large very quickly.  The tool is single threaded so it will take some time collecting all the required\ndata.  Data is stored in the `--path` so no Keybase data should be requested more than once. \n\n**Step 3:** Load the output GraphML file in Gephi (like Photoshop for graphs) - GraphML has the broadest set of \ngraph features supported in Gephi hence the data-format choice.\n\n**Step 4:** Explore the data set...\n\n\n### Example\n```commandline\n$ ./keybase-network-graph.py --uid 3195b4ddeb6f4c4250ab2b5ff7c68b19 --depth 1\n\nprocessing:3195b4ddeb6f4c4250ab2b5ff7c68b19 depth:0 uid_total:1\ncomplete:3195b4ddeb6f4c4250ab2b5ff7c68b19 followers_added:17\n...\nprocessing:96ef480ac888bdff3ecb2a8f6e368b00 depth:1 uid_total:326\ncomplete:96ef480ac888bdff3ecb2a8f6e368b00 followers_added:0\n\nGraphML file: /tmp/keybase-network-graph/3195b4ddeb6f4c4250ab2b5ff7c68b19.graphml\n```\n\n### Command Line Arguments\n```commandline\n$ ./keybase-network-graph.py -h\nusage: keybase-network-graph.py [-h] --uid \u003cuid\u003e [--depth \u003cdepth\u003e]\n                                [--path \u003cpath\u003e] [--nograph]\nKeybase Network Grapher\n\noptional arguments:\n  -h, --help       show this help message and exit\n  --uid \u003cuid\u003e      Initial uid to start collecting data on, required.\n  --depth \u003cdepth\u003e  Maximum depth of user connections to collect data on,\n                   default = 1\n  --path \u003cpath\u003e    Maximum depth of user connections to collect data down to,\n                   default = /tmp/keybase-network-graph\n  --nograph        Prevent GraphML generation.\n```\n\n### Gephi Hints\n**Learn to use the \"Ego Filter\"**\n\nAn Ego Filter allows you to filter out the noise from a graph focusing in on just one node, this helps focus your \nvisualisations - [article here on Ego Filters](https://markhneedham.com/blog/2012/04/30/gephi-centring-a-graph-around-an-individual-node/)\n\n**Use the username label**\n\nThe `username` label can be enabled using the icons at the bottom of the visualisation, the following Youtube video may\nhelp - https://www.youtube.com/watch?v=eu1mibcOrN0\n\n**Other Gephi tutorials**\n\nThe following Gephi tutorial is also quite helpful - https://www.youtube.com/watch?v=dSx5_PjaWVE\n\n**Issues with Gephi on Ubuntu**\n\nUbuntu 18.04 (and 18.10) does not run Gephi out of the box due to an incompatible default version of Java.  This can be\nresolved by installing `openjdk-8-jdk` and updating the `alternatives` configuration as such\n```commandline\nsudo apt-get install openjdk-8-jdk\n\nsudo update-java-alternatives --list\n\nsudo update-alternatives --config javac\nsudo update-alternatives --config java\n```\n\n### Gephi Visualization Samples of Keybase networks\n![screenshot_101043.png](assets/screenshot_101043.png)\n\n![screenshot_075321.png](assets/screenshot_075321.png)\n\n![screenshot_074349.png](assets/screenshot_074349.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndejong%2Fkeybase-network-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndejong%2Fkeybase-network-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndejong%2Fkeybase-network-graph/lists"}