A Java library for graphene blockchains such as Hive and Bitshares. This is the core of the PalmPay Point of Sale systems. GrapheneJ can also be used for your mobile apps, embedded systems, etc. https://PalmPay.io

agorise 4631ec94a9 Update 'README.md' 1 year ago
.github 51f98e12a4 Create FUNDING.yml 3 years ago
graphenej 6e17a55deb Gradle changes & version bump 3 years ago
sample 1e8a1e0346 Updated dependencies 3 years ago
.gitattributes b745200b53 Trying to remove \r\n from files 6 years ago
.gitignore e056c16aa9 - Added back the files for the sample project to the repository 4 years ago
LICENSE 5440286448 Update LICENSE 4 years ago
README.md 4631ec94a9 Update 'README.md' 1 year ago
build.gradle 6e17a55deb Gradle changes & version bump 3 years ago
gradle.properties d0f9ddbbb9 Fixed a remaining issue with the deserialization of the BitAssetData 'get_object' response 5 years ago
gradlew 5dea8a6eb4 Renamed HistoricalTransfer to OperationHistory 4 years ago
settings.gradle 69a0a64d30 Initial tests in order to introduce a centralized broker architecture 4 years ago



A Java library for mobile app Developers; Graphene/Bitshares blockchain.


In your root build.gradle, add this if you don't already have it.

allprojects {
    repositories {

In your app module, add the following dependency:

dependencies {
    compile 'com.github.bilthon:graphenej:0.4.2'


Very simple funds transfer

This is a simple transfer operation of 1 BTS from account bilthon-15 to bilthon-5

// Creating a transfer operation
TransferOperation transferOperation = new TransferOperationBuilder()
        .setTransferAmount(new AssetAmount(UnsignedLong.valueOf(100000), new Asset("1.3.0")))
        .setSource(new UserAccount("1.2.143563"))       // bilthon-15
        .setDestination(new UserAccount("1.2.139313"))  // bilthon-5
        .setFee(new AssetAmount(UnsignedLong.valueOf(264174), new Asset("1.3.0")))
// Adding operations to the operation list
ArrayList<BaseOperation> operationList = new ArrayList<>();

// Creating a transaction instance
Transaction transaction = new Transaction(sourcePrivateKey, null, operationList);

From here on out, it is just a matter of creating a websocket connection and using a custom handler called

java // Setting up a secure websocket connection. SSLContext context = null; context = NaiveSSLContext.getInstance("TLS"); WebSocketFactory factory = new WebSocketFactory(); factory.setSSLContext(context);

WebSocket mWebSocket = factory.createSocket(FULL_NODE_URL);

mWebSocket.addListener(new TransactionBroadcastSequence(transaction, new Asset("1.3.0"), listener)); mWebSocket.connect(); ```

The provided listener is an instance of the class WitnessResponseListener.