{"id":20756658,"url":"https://github.com/rubixchain/did-java","last_synced_at":"2026-03-15T14:33:26.644Z","repository":{"id":119009905,"uuid":"449996510","full_name":"rubixchain/DID-java","owner":"rubixchain","description":"Decentralized Identity Creation in java ","archived":false,"fork":false,"pushed_at":"2023-07-19T06:39:31.000Z","size":1215,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T15:54:11.057Z","etag":null,"topics":["blockchain","decentralized","identity","privacy","web3"],"latest_commit_sha":null,"homepage":"https://rubix.net","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubixchain.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-01-20T07:27:09.000Z","updated_at":"2024-01-15T15:47:55.000Z","dependencies_parsed_at":"2023-12-26T20:00:27.713Z","dependency_job_id":null,"html_url":"https://github.com/rubixchain/DID-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rubixchain/DID-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubixchain%2FDID-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubixchain%2FDID-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubixchain%2FDID-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubixchain%2FDID-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubixchain","download_url":"https://codeload.github.com/rubixchain/DID-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubixchain%2FDID-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27764632,"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","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["blockchain","decentralized","identity","privacy","web3"],"created_at":"2024-11-17T09:34:20.187Z","updated_at":"2025-12-16T12:43:40.547Z","avatar_url":"https://github.com/rubixchain.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"### DID \u0026 its significance\n\n DID (Decentralized identity) is a trust framework in which identifiers such as usernames can be replaced with IDs that are self-owned, independent, and enable data exchange using blockchain technology, providing privacy and secure transactions. Our lives are increasingly linked to apps, devices and services, and we’re often subject to data breaches and privacy loss. Hence, a standards-based decentralized identity system can provide greater privacy and control over your data.  \n\nRubix Decentralized Identity (DID) project is an open standard enabling users to create self-owned identities, and use blockchain networks for getting decentralized tamper proof verifiable claims. The claims are 100% on-chain and publicly verifiable.\n\n### Key features of Rubix DID\n\n1. Identities are self-created and self-owned allowing more control for user over his data i.e., no Certificate   Authority (CA) is required for generating identity key pairs.\n2. Information is immutable, once it is issued by using cryptographic proofs and object-oriented Distributed File System (DFS).\n3. Real world DFS based on content-based addressing, preserves complete integrity over signed data.\n4. Parallel scalable ledger allows asynchronous claims and verification.\n5. Instant confirmation and finality.\n6. Data confidentiality is preserved by encrypting the signed certificate using patented Non-Linear Secret Sharing (NLSS) method.\n7. Selective disclosure property helps user to choose partial revealing of data for verification.\n8. The information cannot be decrypted without the consent of the issuer and/or the certificate holder.\n9. In Compliance with globally accepted standards like : \u003cbr\u003e\n        a. IMS Open Badges\u003cbr\u003e\n        b.W3C Verifiable Claims\u003cbr\u003e\n        c.W3C Linked Data Signatures\u003cbr\u003e\n\n10. Follows digital preservation rules like GDPR, CCPA.\n11. All transactions are on-chain, while also being cost effective.\n12. Light weight infrastructure with support for multi architectural designs.\n\n\u003cbr\u003e\n\nThe Library / SDK consists of a Function which when called on creates the Decentralized ID or DID for short.\nIn addition to creation of DID, a folder named Rubix will be created in home of the system, which contains DATA folder that hosts the DID.png, PublicShare.png and PrivateShare.png\nThe Input parameter that the createDID method takes is a .png file with dimensions 256x256\n\n### SDK to use Rubix Decentralized Identity (DID)\n\n[**Download here**](https://github.com/rubixchain/DID-java/raw/main/DID.jar)\n\nPlease use the following line which will import the method createDID to your current working code file:\n\n````\nimport static com.rubix.DIDCreation.DIDcreate.*;\n````\n\nInput format of the Java method is shown below:\n\n````\n - ​​createDID(data,imageFile.getInputStream());\n ````\n\nThe variable data can be any String. Eg: phone number based auth can use user phone number as data.\nThe variable imageFile is of type MultipartFile which is a library that can be used to take .png files as input.\u003cbr\u003e\n\nThe output of the called method createDID will a JSONObject in the format given below:\n\n````\n{\n \"Status\" : \"\",\n \"DID\" : \"\"\n}\n````\n\nValue of status is either “Success” or “Failed”. \u003cbr\u003e\n\n### How is a DID created ?\n\nEvery node joining the Rubix network must create a DID. There is an option for creation of DID after node setup. A CURL request is called when the user selects this option.\n\nThe creation process is a logic that combines a 256x256 image and a system generated hash value. The image chosen here is a standard image used for all DID creations across the network. The hash value on the other hand, is the hashed value of the peerID of the node, which is in turn generated during node setup by IPFS protocol. The combination of both is a hash value which is then used as a DID for the node.\n\nThe DID is further split into two parts, namely [Public Share](https://learn.rubix.net/public-share/) and [Private Share](https://learn.rubix.net/private-share/). These parts are used during various athentication and data transfer scenarios. More about this can be found on the above links.\n\n### Use Cases\n\nA DID-oriented blockchain can be used for applications that are currently running on a centralised authentication mechanism. For example, a traditional food delivery app can be transitioned into a DID-oriented authentication system to provide for more user data privacy and security.\n\n### Inner working of createDID method\n\n- When the createDID method is called along with the input parameter which is your .png file of 256x256\n- This image is converted into binary.\n- An input parameter String is given which can be any string as the user wishes,\n- it can be any detail provided by the user such as name,address,phone number etc.\n- This input string is hashed, then this hash is again hashed multiple times.\n- This hash is embedded with the image binary.\n- This embedded image file is then split to provide DID.png, PrivateShare.png, PublicShare.png and your corresponding DID, using our patented NLSS algorithm\n\n### Additional points to be  noted by the developer\n\n- developer must look into the basics of ipfs protocol.\n- The ipfs version which we follow is 0.6.0.\n- Going through this doc will give you an idea about the working of the protocol.\n\u003chttps://docs.ipfs.io/\u003e\n- You can find more about DID in our White Paper (Page 3)\n \u003chttps://github.com/rubixchain/rubixnetwork/blob/master/RubiX_WhitePaper_R1.7.pdf\u003e\n\n### Other possibilities\n\nThe creation logic could be improved or made more effecient and still provide a similar level of functionality.\n\n\u003cblockquote class=\"Rubix-tweet\"\u003e\u003cp lang=\"en\" dir=\"ltr\"\u003eCrypto, public chains will transform the access management enormously for the better. In Rubix, every node/user gets #DID automatically assigned,can build verifiable claims around it,build DNS, build alternatives to #SAML \u0026 much more\u003c/p\u003e\u0026mdash; Rubix (@rubixchain) \u003ca href=\"https://twitter.com/RubixChain/status/1484763352966447104\"\u003eJanuary 22, 2022\u003c/a\u003e\u003c/blockquote\u003e \u003cscript async src=\"https://platform.Rubix.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\nIf you have questions or feedback, please DM us at [@rubixchain](http://twitter.com/rubixChain).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubixchain%2Fdid-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubixchain%2Fdid-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubixchain%2Fdid-java/lists"}