{"id":15069332,"url":"https://github.com/signum-network/signumj","last_synced_at":"2025-08-08T20:02:50.909Z","repository":{"id":40570103,"uuid":"150605886","full_name":"signum-network/signumj","owner":"signum-network","description":"SignumJ - Java Development Framework","archived":false,"fork":false,"pushed_at":"2024-12-01T18:55:15.000Z","size":3352,"stargazers_count":29,"open_issues_count":9,"forks_count":20,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T15:11:19.400Z","etag":null,"topics":["bitcoin","blockchain","burstcoin","ethereum","java","jdk","signum","transaction"],"latest_commit_sha":null,"homepage":"https://signum.network/","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/signum-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2018-09-27T15:07:32.000Z","updated_at":"2024-08-23T13:33:30.000Z","dependencies_parsed_at":"2025-02-17T16:46:40.546Z","dependency_job_id":null,"html_url":"https://github.com/signum-network/signumj","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signum-network%2Fsignumj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signum-network%2Fsignumj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signum-network%2Fsignumj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signum-network%2Fsignumj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/signum-network","download_url":"https://codeload.github.com/signum-network/signumj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262032,"owners_count":21074230,"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":["bitcoin","blockchain","burstcoin","ethereum","java","jdk","signum","transaction"],"created_at":"2024-09-25T01:41:51.077Z","updated_at":"2025-04-10T17:36:05.706Z","avatar_url":"https://github.com/signum-network.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SignumJ\n[![GPLv3](https://img.shields.io/badge/license-GPLv3-blue.svg)](LICENSE)\n[![](https://jitpack.io/v/signum-network/signumj.svg)](https://jitpack.io/#signum-network/signumj)\n\nSignum Java Development Framework\n\n## Including in your project\n\n* Maven:\n\n```xml\n\u003crepositories\u003e\n\t\u003crepository\u003e\n\t    \u003cid\u003ejitpack.io\u003c/id\u003e\n\t    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n\t\u003c/repository\u003e\n\u003c/repositories\u003e\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n\t    \u003cgroupId\u003ecom.github.signum-network\u003c/groupId\u003e\n\t    \u003cartifactId\u003esignumj\u003c/artifactId\u003e\n\t    \u003cversion\u003ev1.3.1\u003c/version\u003e\n\t\u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n* Gradle:\n\n```gradle\nrepositories {\n\tmaven { url 'https://jitpack.io' }\n}\ndependencies {\n\timplementation 'com.github.signum-network:signumj:v1.3.1'\n}\n```\n\n## Usage\n\n* Commonly used Signum objects / entities / helper classes can be found in the [entity](src/main/java/signumj/entity) package.\n\n* For locally-performed cryptographic operations such as encrypting/decrypting, signing/verifying, etc please see the [SignumCrypto](src/main/java/signumj/crypto/SignumCrypto.java) interface (Use `SignumCrypto.getInstance()` to obtain a singleton instance)\n\n* For Singum Node API calls such as making transactions and looking at blocks/accounts/transactions, please see the [NodeService](src/main/java/signumj/service/NodeService.java) interface. (Use `NodeService.getInstance(\"http://nodeAddress.com:8125\")` to obtain an instance.)\n\nThe `NodeService` wraps the returned values in RxJava Singles. You can create your own `SchedulerAssigner` to automatically make all returned values subscribe on the specified schedulers. If you don't want to use RxJava, call `toFuture()` on any Single.\n\nGSON is used for JSON serialization/deserialization. To obtain a `GsonBuilder` customized to serialize/deserialize the entities, call `SignumUtils.buildGson()`.\n\n### SignumJ badge\n\nIf you use SignumJ on your project, please consider using one the badges available on the [style guide](https://signum.network/styleguide.html).\n\n## Examples\n\nPlease see the [examples folder](src/test/java/signumj/examples).\nBellow a simple example on how to send a transaction and sign it locally.\n\n```java\nimport signumj.Constants;\nimport signumj.crypto.SignumCrypto;\nimport signumj.entity.SignumAddress;\nimport signumj.entity.SignumValue;\nimport signumj.service.NodeService;\n\n/**\n * Example which sends 1 SIGNA to another account with a fee of 0.1 SIGNA.\n * \n * Performs the cryptographic signature locally so does not send the passphrase\n * to over the wire.\n * \n */\npublic class SendTransactionBlockingGet {\n\n\tpublic static void main(String[] args) {\n        NodeService node = NodeService.getInstance(Constants.HTTP_NODE_EUROPE2);\n\n        String passphrase = \"YOUR SENDING ACCOUNT PASSPHRASE, USED TO SIGN MESSAGES LOCALLY\";\n        \n        SignumAddress recipient = SignumAddress.fromRs(\"S-JJQS-MMA4-GHB4-4ZNZU\");\n        SignumValue amountToSend = SignumValue.fromSigna(1);\n        SignumValue fee = SignumValue.fromSigna(0.1);\n        int deadline = 1440; // deadline in minutes before this transaction becomes invalid\n\n        // Generate the transaction without signing it\n        byte[] unsignedTransactionBytes = node.generateTransaction(recipient,\n        \t\tSignumCrypto.getInstance().getPublicKey(passphrase), amountToSend, fee, deadline, null).blockingGet();\n        \n        // Locally sign the transaction using our passphrase\n        byte[] signedTransactionBytes = SignumCrypto.getInstance().signTransaction(passphrase, unsignedTransactionBytes);\n        \n        // Broadcast the transaction through the node, still not sending it any sensitive information.\n        node.broadcastTransaction(signedTransactionBytes).blockingGet();\n    }\n}\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignum-network%2Fsignumj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsignum-network%2Fsignumj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignum-network%2Fsignumj/lists"}