> For the complete documentation index, see [llms.txt](https://docs-sdk.crypto-chief.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-sdk.crypto-chief.com/processing/java.md).

# Java SDK

The official pure-Java client for the [Crypto Chief](https://crypto-chief.com/processing/) crypto processing API. No Kotlin runtime, no reactive bridges — straightforward synchronous API with records, builders, and OkHttp. One dependency gives you typed access to payments, payouts, on-chain transactions, wallets, and webhooks across 25+ chains.

[![Maven Central](https://img.shields.io/maven-central/v/com.crypto-chief/cryptochief-crypto-processing-java.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.crypto-chief/cryptochief-crypto-processing-java)

## Requirements

* JDK **17+** at runtime
* A Crypto Chief **Merchant ID** and **API key** (Dashboard → Integration)

## Installation

{% tabs %}
{% tab title="Maven" %}

```xml
<dependency>
  <groupId>com.crypto-chief</groupId>
  <artifactId>cryptochief-crypto-processing-java</artifactId>
  <version>0.1.0</version>
</dependency>
```

{% endtab %}

{% tab title="Gradle (Kotlin DSL)" %}

```kotlin
dependencies {
    implementation("com.crypto-chief:cryptochief-crypto-processing-java:0.1.0")
}
```

{% endtab %}

{% tab title="Gradle (Groovy)" %}

```groovy
dependencies {
    implementation 'com.crypto-chief:cryptochief-crypto-processing-java:0.1.0'
}
```

{% endtab %}
{% endtabs %}

The SDK is **synchronous** and **records-first** — every DTO is a Java 17 record, services expose plain blocking methods, and the only runtime dependencies are OkHttp and Jackson.

## Quickstart

```java
import com.cryptochief.processing.Chain;
import com.cryptochief.processing.CryptoChiefClient;
import com.cryptochief.processing.models.EstimatePayoutRequest;

public class App {
    public static void main(String[] args) {
        try (CryptoChiefClient client = CryptoChiefClient.create("MERCHANT_ID", "API_KEY")) {
            var est = client.payouts().estimate(
                EstimatePayoutRequest.of(Chain.ETH_SEPOLIA, "ETH", "0.0001", "0xRecipient..."));
            System.out.println("amount to receive: " + est.amountToReceive());
        }
    }
}
```

{% hint style="success" %}
If `estimate` returns without throwing, your credentials and signing are working end-to-end.
{% endhint %}

## What you can do

| Domain                       | Service                 | Key methods                                                |
| ---------------------------- | ----------------------- | ---------------------------------------------------------- |
| Single & batch payouts       | `client.payouts()`      | `estimate`, `execute`, `batchExecute`, `info`, `history`   |
| Sign / execute arbitrary txs | `client.transactions()` | `sign`, `execute`, `signEvmCall`, `jettonTransfer`         |
| Accept payments              | `client.payIns()`       | `create`, `selectAsset`, `cancel`, `info`, `history`       |
| Wallets + RSA decrypt        | `client.wallets()`      | `generate`, `list`, `freeze`, `decryptPrivateKey`          |
| Treasury sweeps              | `client.sweeps()`       | `force`, `history`, `walletHistory`                        |
| On-chain queries             | `client.blockchain()`   | `contractsAvailable`, `walletBalance`, `transactionStatus` |
| Fiat ↔ crypto rates          | `client.currencies()`   | `fiatToCrypto`, `cryptoToFiat`                             |

## Explore the guides

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>🔑 Authentication</strong></td><td>Credentials, client setup, and request signing.</td><td><a href="/pages/LRz1AWeXjcjQbODAhoJZ">/pages/LRz1AWeXjcjQbODAhoJZ</a></td></tr><tr><td><strong>💸 Send a payout</strong></td><td>Estimate, execute idempotently, and confirm.</td><td><a href="/pages/7ekX77JXwiCzlr2OsBSJ">/pages/7ekX77JXwiCzlr2OsBSJ</a></td></tr><tr><td><strong>📥 Accept payments</strong></td><td>Create PayIn invoices and read deposits.</td><td><a href="/pages/7CgsvoPXIdKeBMkBTnRK">/pages/7CgsvoPXIdKeBMkBTnRK</a></td></tr><tr><td><strong>📡 Webhooks</strong></td><td>Verify signatures and handle typed events.</td><td><a href="/pages/qpn9oddppaoWhjgtQ8I1">/pages/qpn9oddppaoWhjgtQ8I1</a></td></tr><tr><td><strong>🧩 Contract calls</strong></td><td>EVM / TRON ABI calls with no hand-encoded calldata.</td><td><a href="/pages/9ocp6xqQDeXIgDWWURhH">/pages/9ocp6xqQDeXIgDWWURhH</a></td></tr><tr><td><strong>💎 TON transfers</strong></td><td>Jetton, NFT, and comment transfers in one call.</td><td><a href="/pages/LlFuoXiNSfJhi8WImJKs">/pages/LlFuoXiNSfJhi8WImJKs</a></td></tr></tbody></table>
