{"id":28533822,"url":"https://github.com/epam/openvasp-java-client","last_synced_at":"2025-07-07T20:31:33.616Z","repository":{"id":46606913,"uuid":"255626272","full_name":"epam/openvasp-java-client","owner":"epam","description":"A reference implementation for a JAVA client for the OpenVASP standard. Not yet compatible with the current OpenVASP protocol version.","archived":false,"fork":false,"pushed_at":"2023-06-14T22:33:57.000Z","size":2381,"stargazers_count":6,"open_issues_count":7,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-09T17:09:42.936Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epam.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":null,"support":null}},"created_at":"2020-04-14T14:05:51.000Z","updated_at":"2025-02-05T17:35:23.000Z","dependencies_parsed_at":"2023-01-23T08:15:49.008Z","dependency_job_id":null,"html_url":"https://github.com/epam/openvasp-java-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epam/openvasp-java-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fopenvasp-java-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fopenvasp-java-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fopenvasp-java-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fopenvasp-java-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epam","download_url":"https://codeload.github.com/epam/openvasp-java-client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fopenvasp-java-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264142581,"owners_count":23563525,"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":[],"created_at":"2025-06-09T17:08:49.423Z","updated_at":"2025-07-07T20:31:33.611Z","avatar_url":"https://github.com/epam.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenVASP Java Client\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/OpenVASP/openvasp-java-client)\n\n## TODOs\n\n\u003e Determine tests coverage\n\u003e Where does the VASP.abi come from?\n\nThis is a reference implementation of a Java client for the OpenVASP standard.\n\n\u003e Standardization is the process of implementing and developing technical standards based on the consensus of different parties that include\n\u003e firms, users, interest groups, standards organizations and governments.\n\u003e\n\u003e - Wikipedia\n\n## What is OpenVASP?\n\n**VASP** stands for *Virtual Asset Service Provider*.\nOpenVASP is an open protocol to implement FATF's travel rule for virtual assets.\n\nThe protocol facilitates robust compliance for VASPs, solely based on a set of principles, regardless of jurisdiction or virtual asset and without membership or registration with a centralized third-party.\n\n[Old Whitepaper](https://openvasp.org/wp-content/uploads/2020/09/OpenVasp_Whitepaper.pdf) | [Read more →](https://www.openvasp.org/)\n\n\u003e The current implementation only includes the Whitepaper specs.\n\u003e [OVIPs](https://github.com/OpenVASP/ovips) (OpenVASP Improvement Proposals) are currently not implemented, but they are in the roadmap.\n\u003e The OVIPs were under heavy changes since the inception of the Whitepaper.\n\u003e OVIPs were created at the end of current implementation.\n\u003e\n\u003e Client exists as an initial working implementation (packaged as a .NET library).\n\u003e The `openvasp-csharp-client` repo is heavily outdated\n\u003e \u003chttps://github.com/OpenVASP/openvasp-csharp-client\u003e\n\n## Reference architecture\n\n![Reference architecture](OpenVASP-whitepaper.drawio.svg)\n\n![Protocol Stack](OpenVASP-stack.drawio.svg)\n\n### Main Components\n\n- **OpenVASP Client**.\nIt is the main artifact that implements the OpenVASP the protocol.\nIt is a redistributable Java library.\nCore of **OpenVASP Client** exchanges messages as described in the white paper using the Whisper/WAKU protocol.\nThe **OpenVASP Client** uses the Java `web3j` RPC-JSON client to connect to Ethereum.\n- **OpenVASP Host**.\nIt is a companion demo application.\nIts only purpose is to showcase the **OpenVASP Client** to customers.\nThat is, it serves as an example of how to use the **OpenVASP Client**.\nIt contains a support persistance layer, *e.g.*, banking application.\n- **OpenVASP UI**.\nJavascript web application (Angular.js) using the **OpenVASP Host**.\n- **Smart Contracts**.\nEthereum Smart Contracts written in Solidity.\nThese Smart Contracts are only used for VASPs registration, *i.e.*, only for identity claims.s\nThe most important piece of information provided by the Smart Contracts is the VASP's public encryption key.\nMoreover, they also provide metadata related VASP information, such as address, postal code, and so on.\n\n## Getting started\n\nThis is a Maven project that can be easily reused.\n\n### How to build\n\n```sh\nmvn compile\n```\n\nCompiled classes and generated source code will be under the `target/` folder.\n\nThe Client uses the `web3j` plugin to generate a Java stub to invoke the Smart Contracts.\nThe ABI (Application Binary Interface) of the contracts is located in:\n\n```text\nsrc/main/resources/VASP.abi\n```\n\nAnd the generated stub is generated in\n\n```text\ntarget/generated-sources/web3j/java/org/openvasp/client/contract/VASP.java\n```\n\nFor more information on stub generation for smart contracts see\n\u003chttp://docs.web3j.io/latest/command_line_tools/#generated-javakotlin-project-structure\u003e\n\n### Test\n\nAs a Maven project, just run\n\n```sh\nmvn test\n```\n\n### Local deployment\n\nOriginator/Beneficiary roles provided by java-host.\n\nEthereum server/geth (Golang) needed to provide Whisper \u0026 Smart Contracts.\n\n### Encryption in Java\n\nUse of \u003chttps://downloads.bouncycastle.org/fips-java/BC-FJA-UserGuide-1.0.2.pdf\u003e\nThe dependency tree contains this dependency as part of `web3j`.\n\n```sh\nmvn dependency:tree\n```\n\n```sh\n...\n[INFO] +- org.web3j:core:jar:4.5.18:compile\n[INFO] |  +- org.web3j:abi:jar:4.5.18:compile\n[INFO] |  |  \\- org.web3j:utils:jar:4.5.18:compile\n[INFO] |  |     \\- org.bouncycastle:bcprov-jdk15on:jar:1.65:compile \u003c\u003c--\n...\n```\n\n## Contributing\n\nWant to help build this project? Check out our [contributing documentation](CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under the terms of the MIT License (see the file [LICENSE](LICENSE)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Fopenvasp-java-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepam%2Fopenvasp-java-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Fopenvasp-java-client/lists"}