For the complete documentation index, see llms.txt. This page is also available as Markdown.

Getting started x402 V2

The Mogami Java Client SDK makes it easy to bring x402 payments into your applications. With just a few lines of code, you can fetch requirements, sign payloads, and send transactions securely.

Here is a sample code showing how to make a payment:

final String tipUrl = "https://playground.mogami.tech/tip";
OkHttpClient okHttpClient = new OkHttpClient();

try (Response initialResponse = okHttpClient.newCall(new Request.Builder().url(tipUrl).get().build()).execute()) {
    // Extracting the payments requirements from the header
    paymentRequired = X402V2Client.extractPaymentRequired(getHeaders(initialResponse))
                                    .orElseThrow(() -> new IllegalStateException("PaymentRequired should be present"));
} catch (IOException e) {
    System.err.println("IOException during HTTP request to " + tipUrl + ": " + e.getMessage());
    System.exit(-1);
}

// We create a payment with a valid PaymentPayload
PaymentPayload payload = X402V2Client.buildPaymentPayload(
    paymentRequired,
    paymentRequired.accepts().getFirst(),
    Credentials.create(addressPrivateKey)
);

// We call the protected resource with the payment
try (Response paidResponse = okHttpClient.newCall(new Request.Builder().url(tipUrl).get()
                        .headers(Headers.of(X402V2Client.buildPaymentHeaders(payload)))
                        .build()).execute()) {

    final Optional<SettlementResponse> settlementResponse = X402V2Client.extractSettlementResponse(getHeaders(paidResponse));
    if (settlementResponse.isPresent()) {
        System.out.println("Settlement response received: " + settlementResponse.get());
    }

} catch (IOException e) {
    System.err.println("IOException during HTTP request to " + tipUrl + ": " + e.getMessage());
    System.exit(-1);
}

To use our Java client SDK in your Maven project, add:

or, in your Gradle project, add:

Last updated