{"id":38607025,"url":"https://github.com/ic4j/ic4j-management","last_synced_at":"2026-01-17T08:39:21.962Z","repository":{"id":39568428,"uuid":"507058508","full_name":"ic4j/ic4j-management","owner":"ic4j","description":"IC4J Management Service","archived":false,"fork":false,"pushed_at":"2025-05-25T20:22:32.000Z","size":210,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-25T21:28:23.673Z","etag":null,"topics":["dfinity","internet-computer","java"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ic4j.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,"zenodo":null}},"created_at":"2022-06-24T15:27:09.000Z","updated_at":"2025-05-25T20:22:35.000Z","dependencies_parsed_at":"2024-03-15T21:50:23.120Z","dependency_job_id":"fd0ff71b-2640-4e14-973e-018307398cc5","html_url":"https://github.com/ic4j/ic4j-management","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"65ab4e13f171c6c9d4d043d5edef8f11203e3a37"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ic4j/ic4j-management","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ic4j%2Fic4j-management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ic4j%2Fic4j-management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ic4j%2Fic4j-management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ic4j%2Fic4j-management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ic4j","download_url":"https://codeload.github.com/ic4j/ic4j-management/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ic4j%2Fic4j-management/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: 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":["dfinity","internet-computer","java"],"created_at":"2026-01-17T08:39:21.164Z","updated_at":"2026-01-17T08:39:21.955Z","avatar_url":"https://github.com/ic4j.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## IC4J Management Java Service \n\nThis Java library is an implementation of Dfinity's Virtual Canister Management API and directly communicates with the Management Virtual Canister.\n \n \u003ca href=\"https://internetcomputer.org/docs/current/references/ic-interface-spec#ic-management-canister\"\u003e\nhttps://internetcomputer.org/docs/current/references/ic-interface-spec#ic-management-canister\n\u003c/a\u003e\n \nDevelopers can utilize this library within any Java application to perform various operations, such as creating, deleting, starting, and stopping a canister, installing, uninstalling, and reinstalling WASM canister code, updating canister settings, and adding additional funds to a canister.\n\nTo test Management Service locally, install local Internet Computer instance. Then just configure custom Java properties with management.location value pointing to the local instance and management.identity pointing to identity PEM file.\n\nTo use Management Service create ManagementService object. Define your own properties if you want to use local instance of the service. \n\n```\nIdentity identity = BasicIdentity.fromPEMFile(sourceReader);\n\nAgent agent = new AgentBuilder().transport(transport)\n\t\t\t.identity(identity)\n\t\t\t.build();\n\nManagementService managementService = ManagementService.create(agent);\n```\nThen call Management Service methods.  \n\n\n\n```\nPrincipal canisterId = managementService.provisionalCreateCanisterWithCycles(Optional.empty(), Optional.empty()).get();\n\nLOG.info(canisterId.toString());\n\t\t\t\nPath path = Paths.get(getClass().getClassLoader().getResource(WASM_FILE).getPath());\n\t\t\t\nbyte [] wasmModule = Files.readAllBytes(path);\t\n\t\t\t\nmanagementService.installCode(canisterId, Mode.install, wasmModule, ArrayUtils.EMPTY_BYTE_ARRAY);\n\t\t\t\nCanisterStatusResponse canisterStatusResponse =  managementService.canisterStatus(canisterId).get();\n\t\t\t\nLOG.info(canisterStatusResponse.status.name());\t\t\t\t\t\t\n\t\t\t\nmanagementService.stopCanister(canisterId);\t\n\t\t\t\ncanisterStatusResponse =  managementService.canisterStatus(canisterId).get();\n\t\t\t\nLOG.info(canisterStatusResponse.status.name());\t\t\n\t\t\t\nmanagementService.uninstallCode(canisterId);\t\t\t\n\nmanagementService.deleteCanister(canisterId);\n```\n\n\n# Downloads / Accessing Binaries\n\nTo add Java IC4J Management Service library to your Java project use Maven or Gradle import from Maven Central.\n\n\u003ca href=\"https://search.maven.org/artifact/ic4j/ic4j-management/0.7.5/jar\"\u003e\nhttps://search.maven.org/artifact/ic4j/ic4j-management/0.7.5/jar\n\u003c/a\u003e\n\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.ic4j\u003c/groupId\u003e\n  \u003cartifactId\u003eic4j-management\u003c/artifactId\u003e\n  \u003cversion\u003e0.7.5\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n```\nimplementation 'org.ic4j:ic4j-management:0.7.5'\n```\n\n\n# Build\n\nYou need JDK 8+ to build IC4J Management Service.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fic4j%2Fic4j-management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fic4j%2Fic4j-management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fic4j%2Fic4j-management/lists"}