{"id":22267766,"url":"https://github.com/transmute-industries/did-method-meliorism","last_synced_at":"2025-03-25T14:43:44.489Z","repository":{"id":98113212,"uuid":"529961403","full_name":"transmute-industries/did-method-meliorism","owner":"transmute-industries","description":"Experimental DID Method","archived":false,"fork":false,"pushed_at":"2022-08-28T19:59:43.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T13:28:20.578Z","etag":null,"topics":["did","ipfs","jose","json-patch","web"],"latest_commit_sha":null,"homepage":"https://transmute-industries.github.io/did-method-meliorism","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/transmute-industries.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-08-28T19:37:23.000Z","updated_at":"2022-08-28T19:45:07.000Z","dependencies_parsed_at":"2023-05-23T20:30:33.932Z","dependency_job_id":null,"html_url":"https://github.com/transmute-industries/did-method-meliorism","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/transmute-industries%2Fdid-method-meliorism","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fdid-method-meliorism/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fdid-method-meliorism/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transmute-industries%2Fdid-method-meliorism/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/transmute-industries","download_url":"https://codeload.github.com/transmute-industries/did-method-meliorism/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245485683,"owners_count":20623236,"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":["did","ipfs","jose","json-patch","web"],"created_at":"2024-12-03T11:08:48.285Z","updated_at":"2025-03-25T14:43:44.467Z","avatar_url":"https://github.com/transmute-industries.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# did:meliorism\n\n[![Spec](https://github.com/transmute-industries/did-method-meliorism/actions/workflows/cd.yml/badge.svg)](https://github.com/transmute-industries/did-method-meliorism/actions/workflows/cd.yml)\n\nAn experimental Decentralized Identifier Method.\n\n[Read the method specification](https://transmute-industries.github.io/did-method-meliorism/).\n\n## Use\n\nYou will need to setup a `.env` from the given `example.env`.\n\nCurrently, only infura based configuration for IPFS is supported.\n\n- [infura.io](https://infura.io/).\n\n```\nnvm use 18\nnpm i\nnpm t\n```\n\n### Development\n\nThe command line binary is aliased to an npm script,\nso you can develop the cli locally without needing to install the package globally.\n\n```\nnpm run did:meliorism -- --help\n```\n\n```\nnpm run did:meliorism -- --version\n```\n\n#### Create\n\n```\nnpm run did:meliorism -- create --base ./data/document.json\n```\n\n```\nnpm run did:meliorism -- create --base ./data/document.json --no-ipfs\n```\n\n#### Resolve\n\n```\nnpm run did:meliorism -- resolve did:meliorism:QmPNzsLMBsz36Bhi13B2KaWNWexdoofaZKVrEbmvsLzmiA\n```\n\n```\nnpm run did:meliorism -- resolve did:meliorism:eyJwYXRjaGVzIjpbImh0dHBzOi8vYS5leGFtcGxlL3BhdGNoZXMvMCIsImh0dHBzOi8vYi5leGFtcGxlL3BhdGNoZXMvMSIsImh0dHBzOi8vYy5leGFtcGxlL3BhdGNoZXMvMiJdfQ\n```\n\n#### Generate Key\n\n```\nnpm run did:meliorism -- generate-key EdDSA\n```\n\n### Patches\n\n#### Add Nothing\n\n```\nnpm run did:meliorism -- update \\\n--no-changes \\\n--authorization ./data/verification-method.json\n```\n\n#### Add Verification Method\n\n```\nnpm run did:meliorism -- update \\\n--verification-method ./data/verification-method.json \\\n--purpose \"authentication, credentials, capabilities\" \\\n--authorization ./data/verification-method.json\n```\n\nPublish a \"no-controller\" patch to IPFS:\n\n```\nnpm run did:meliorism -- update \\\n--no-controller \\\n--verification-method ./data/verification-method.json \\\n--purpose \"authentication, credentials, capabilities\" \\\n--authorization ./data/verification-method.json \\\n--publish ipfs\n```\n\n```\nnpm run did:meliorism -- update \\\n--no-changes \\\n--no-controller \\\n--authorization ./data/verification-method.json \\\n--publish ipfs\n```\n\nThese are useful when creating an immutable DID,\nwhere the patches cannot know the controller because they are used to compute it.\n\nFor example:\n\n```\nnpm run did:meliorism -- create ipfs://QmbLFwfvjFdsAsVUHg3uPB3kTDxzm7A4LiVgskZ3EW8vpf ipfs://QmVJoRQ3XA6DshUzZNF8eFRvzKtoQT9EHJXybYMPjCuSNa#0\n```\n\n```\nnpm run did:meliorism -- resolve did:meliorism:QmRSiZ93nduWbjHVbuLaHt4sFS9qPBCW8akjoTDwp7ZENv\n```\n\n### Immutable Example\n\nYou can chain commands by leveraging `--silent` and `jq` and redirects.\n\nFirst create a \"no-controller\" key pair you will use to sign the `didDocument` JSON patches.\n\n```\nnpm run did:meliorism --silent -- generate-key EdDSA \\\n--no-controller  \u003e ./data/immutable-no-controller-key-pair.json\n```\n\nNext create and publish one or more \"no-contoller\" signed json patches:\n\n```\nnpm run did:meliorism --silent -- update \\\n--no-controller \\\n--verification-method ./data/immutable-no-controller-key-pair.json \\\n--purpose \"authentication, credentials, capabilities\" \\\n--authorization ./data/immutable-no-controller-key-pair.json \\\n--publish ipfs\n```\n\n```\nnpm run did:meliorism --silent -- update \\\n--no-changes \\\n--no-controller \\\n--authorization ./data/immutable-no-controller-key-pair.json \\\n--publish data-uri\n```\n\nFinally create the identifier from the patch URLs:\n\n```\nnpm run did:meliorism --silent -- create ipfs://QmTwmG3nFqtM5o2F11X9XByYwTJCHeVtPLJroyvQKEXkE3 data:application/jose,eyJqd2siOnsia3R5IjoiT0tQIiwiY3J2IjoiRWQyNTUxOSIsImFsZyI6IkVkRFNBIiwieCI6IjlDYUxISmw0a1ZLZmN6MUN2aC1FVFhmVWYxdzBFbS0zU1RlclE0SFRKMGsifSwiYWxnIjoiRWREU0EiLCJjdHkiOiJhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb24ifQ.W10.F7Zm8OHhABsUZgiAUOA_VmqTpJQzVlZO1lq28BD3iTa1BxPEZVsnu03xtRhNE8BLaKQSanGAwIeq44abqxhDCg\n```\n\n```\nnpm run did:meliorism --silent -- resolve did:meliorism:QmR1HjCnenp76NKihLG4Av8bcf7LcLEDJQwooWaVmKgibk | jq\n```\n\nYou can verify that a DID is immutable by checking its `didDocumentMetadata`:\n\n```\nnpm run did:meliorism --silent -- resolve did:meliorism:QmR1HjCnenp76NKihLG4Av8bcf7LcLEDJQwooWaVmKgibk | jq '.didDocumentMetadata'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransmute-industries%2Fdid-method-meliorism","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftransmute-industries%2Fdid-method-meliorism","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftransmute-industries%2Fdid-method-meliorism/lists"}