{"id":35780254,"url":"https://github.com/casper-network/casper-java-sdk","last_synced_at":"2026-01-07T06:00:29.808Z","repository":{"id":37425339,"uuid":"385884631","full_name":"casper-network/casper-java-sdk","owner":"casper-network","description":"Java library for interacting with a CSPR node","archived":false,"fork":false,"pushed_at":"2025-11-14T14:21:33.000Z","size":93688,"stargazers_count":10,"open_issues_count":35,"forks_count":25,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-11-14T16:18:32.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/casper-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-07-14T09:30:03.000Z","updated_at":"2025-08-13T11:23:02.000Z","dependencies_parsed_at":"2023-10-11T20:20:39.939Z","dependency_job_id":"cf815659-af1a-4391-a36f-a66db33aede7","html_url":"https://github.com/casper-network/casper-java-sdk","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/casper-network/casper-java-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fcasper-java-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fcasper-java-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fcasper-java-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fcasper-java-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/casper-network","download_url":"https://codeload.github.com/casper-network/casper-java-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fcasper-java-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28233227,"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":"2026-01-07T02:00:05.975Z","response_time":58,"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":[],"created_at":"2026-01-07T06:00:05.873Z","updated_at":"2026-01-07T06:00:29.800Z","avatar_url":"https://github.com/casper-network.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Java CI](https://github.com/casper-network/casper-java-sdk/actions/workflows/gradle.yml/badge.svg)](https://github.com/casper-network/casper-java-sdk/actions/workflows/gradle.yml)\n![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/casper-network/casper-java-sdk?sort=semver)\n[![Project license](https://img.shields.io/badge/license-Apache%202-blue)](https://www.apache.org/licenses/LICENSE-2.0.txt)\n\n# Casper Java SDK\n \nThis project implements the SDK to interact with a Casper Node. It wraps the Json-RPC requests and maps the results to Java objects. \n\n## Dependencies\n- Java 8 \n- Gradle\n- [crypto-keys](https://github.com/crypto-keys)\n\n## Build instructions\n```\n./gradlew build\n```\n\n## Including the library\n\nUsing gradle:\n\n```gradle\nimplementation 'network.casper:casper-java-sdk:2.4.1'\n```\n\nUsing maven:\n\n``` xml\n\u003cdependency\u003e\n    \u003cgroupId\u003enetwork.casper\u003c/groupId\u003e\n    \u003cartifactId\u003ecasper-java-sdk\u003c/artifactId\u003e\n    \u003cversion\u003e2.4.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## How to\n\n### 1. [Set-up a connection](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/AbstractJsonRpcTests.java#L23-L39)\n\n```Java\ncasperService = CasperService.usingPeer(\"127.0.0.1\",\"7777\");\n```\n\n### 2. Query a block\nRetrieve block info by a block identifier\n\n#### [Last block](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L119)\n```Java\nJsonBlockData result = casperService.getBlock();\n```\n#### [By height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L138-L139)\n```Java\nJsonBlockData result = casperService.getBlock(new HeightBlockIdentifier(1234));\n```\n#### [By hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L126-L127)\n```Java\nJsonBlockData blockData = casperService.getBlock(new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 3. Query transfers\nRetrieve block transfers by a block identifier\n\n#### [Last block](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L148)\n```Java\nTransferData transferData = casperService.getBlockTransfers();\n```\n#### [By block height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L155)\n```Java\nTransferData transferData = casperService.getBlockTransfers(new HeightBlockIdentifier(1234));\n```\n#### [By block hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L170-L171)\n```Java\nTransferData transferData = casperService.getBlockTransfers(new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 3. Query state root hash\nRetrieve the state root hash given the BlockIdentifier\n#### [Last block](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L186)\n```Java\nStateRootHashData stateRootData = casperService.getStateRootHash();\n```\n#### [By block height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L193)\n```Java\nStateRootHashData stateRootData = casperService.getStateRootHash(new HeightBlockIdentifier(1234));\n```\n#### [By block hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L201-L202)\n```Java\nStateRootHashData stateRootData = casperService.getStateRootHash(new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 4. [Query deploy](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L225-L226)\nGet a Deploy from the network\n```Java\nDeployData deployData = casperService.getDeploy(\"--hash--\");\n```\n\n### 5. [Query peers](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L111)\nGet network peers data\n```Java\nPeerData peerData = casperService.getPeerData();\n```\n\n### 6. [Query stored value](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L212-L215)\nRetrieve a stored value from the network\n```Java\nStoredValueData result = casperService.getStateItem(\"--stateRootHash--\", \"key\", Arrays.asList(\"The path components starting from the key as base\"));\n```\n\n### 7. [Get node status](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L242)\nReturn the current status of the node\n```Java\nStatusData status = casperService.getStatus()\n```\n\n### 8. Get account info\nReturns an Account from the network\n#### [By block height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L280-L282)\n```Java\nAccountData account = casperService.getStateAccountInfo(\"--publicKey--\", new HeightBlockIdentifier(1234));\n```\n#### [By block hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L268-L270)\n```Java\nAccountData account = casperService.getStateAccountInfo(\"--publicKey--\", new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 9. Get auction info\nReturns the Auction info for a given block\n#### [By block height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L302)\n```Java\nAuctionData auction = casperService.getStateAuctionInfo(new HeightBlockIdentifier(1234));\n```\n#### [By block hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L292-L293)\n```Java\nAuctionData auction = casperServiceMainnet.getStateAuctionInfo(new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 10. Get era info\nReturns an EraInfo from the network\n#### [By block height](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L311)\n```Java\nEraInfoData eraInfoData = casperService.getEraInfoBySwitchBlock(new HeightBlockIdentifier(1234));\n```\n#### [By block hash](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperServiceTests.java#L325-L326)\n```Java\nEraInfoData eraInfoData = casperService.getEraInfoBySwitchBlock(new HashBlockIdentifier(\"--hash--\"));\n```\n\n### 11. Deploy\n#### [Transfering CSPR ](https://github.com/casper-network/casper-java-sdk/blob/main/src/test/java/com/casper/sdk/service/CasperDeployServiceTests.java#L73-L77)\n\n```Java\nDeploy deploy = CasperDeployService.buildTransferDeploy(from, to,\n    BigInteger.valueOf(2500000000L), \"casper-test\",\n    id, BigInteger.valueOf(100000000L), 1L, ttl, new Date(),\n    new ArrayList\u003c\u003e());\n\nDeployResult deployResult =  casperServiceTestnet.putDeploy(deploy);\n```\n\n### 12. Consuming Events\n\nThe Java SDK supports the consumption of casper events using the event service API. This API allows the consumer to \nchoose the events to be provided as Pojos or as raw JSON via the EventTarget enum values. Each event stream is consumed \nindividually by providing the required stream (main, sigs, and deploys) using the EventType parameter to the consumeEvents method.\n\nFor more information on events see: [Monitoring and Consuming Events](https://docs.casperlabs.io/dapp-dev-guide/building-dapps/monitoring-events/).\n\n#### Consuming Raw JSON Event Strings\n```Java\n// Construct an events service\nfinal EventService eventService = EventService.usingPeer(new URI(\"http://localhost:28101\"));\n\n// Consume the main events as raw JSON\neventService.consumeEvents(EventType.MAIN, EventTarget.RAW, 0L, new EventConsumer\u003cString\u003e(){\n    \n    @Override\n    public void accept(final Event\u003cString\u003e event) {\n        // Obtain the raw JSON event as a String\n        final String json = event.getData();\n        // Obtain the optional event ID\n        final long id = event.getId().orElse(0L);\n    }\n});\n```\n\n#### Consuming Pojo Events\n\n```Java\n// Construct an events service\nfinal EventService eventService = EventService.usingPeer(new URI(\"http://localhost:28101\"));\n\n// Consume the main events as Casper Java SDK Pojos\neventService.consumeEvents(EventType.MAIN, EventTarget.POJO, 0L, new EventConsumer\u003cEventData\u003e() {\n    \n    @Override\n    public void accept(final Event\u003cEventData\u003e event) {\n\n        switch (event.getDataType()) {\n\n            case BLOCK_ADDED:\n                handleBlockAdded(event.getId().get(), ((BlockAdded) event.getData()));\n                break;\n                \n            // And so on...    \n        }\n    }\n});\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasper-network%2Fcasper-java-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcasper-network%2Fcasper-java-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasper-network%2Fcasper-java-sdk/lists"}