Solana blockchain client, written in pure Java. Solanaj is an API for integrating with Solana blockchain using the Solana RPC API
This fork includes functionality for multiple Solana programs, including the Serum DEX.
- Java 11+
- bitcoinj
- OkHttp
- Moshi
- Build SolanaJ:
mvn clean install -DskipTests
- To use in another project, add this dependency to Maven:
<dependency> <groupId>org.p2p</groupId> <artifactId>solanaj</artifactId> <version>1.2-SNAPSHOT</version> </dependency>
secretkey.dat is required to be in the root directory.
Create a solanaj.properties file.
test.solana.pubkey = Pubkey of destination SOL wallet for testing
test.solana.pubkey.source.usdc = Pubkey of private key's USDC wallet
test.solana.pubkey.destination.usdc = Pubkey of destination's USDC wallet
RpcClient client = new RpcClient(Cluster.TESTNET);
PublicKey fromPublicKey = new PublicKey("QqCCvshxtqMAL2CVALqiJB7uEeE5mjSPsseQdDzsRUo");
PublicKey toPublickKey = new PublicKey("GrDMoeqMLFjeXQ24H56S1RLgT4R76jsuWCd6SvXyGPQ5");
int lamports = 3000;
Account signer = new Account(secret_key);
Transaction transaction = new Transaction();
transaction.addInstruction(SystemProgram.transfer(fromPublicKey, toPublickKey, lamports));
String signature = client.getApi().sendTransaction(transaction, signer);
RpcClient client = new RpcClient(Cluster.TESTNET);
long balance = client.getApi().getBalance(new PublicKey("QqCCvshxtqMAL2CVALqiJB7uEeE5mjSPsseQdDzsRUo"));
final PublicKey solUsdcPublicKey = new PublicKey("7xMDbYTCqQEcK2aM9LbetGtNFJpzKdfXzLL5juaLh4GJ");
final Market solUsdcMarket = new MarketBuilder()
.setClient(new RpcClient())
.setPublicKey(solUsdcPublicKey)
.setRetrieveOrderBooks(true)
.build();
final OrderBook bids = solUsdcMarket.getBidOrderBook();
// Create account from private key
final Account feePayer = new Account(Base58.decode(new String(data)));
final Transaction transaction = new Transaction();
// Add instruction to write memo
transaction.addInstruction(
MemoProgram.writeUtf8(feePayer.getPublicKey(),"Hello from SolanaJ :)")
);
String response = result = client.getApi().sendTransaction(transaction, feePayer);
Welcome to contribute, feel free to change and open a PR.
Solanaj is available under the MIT license. See the LICENSE file for more info.