> For the complete documentation index, see [llms.txt](https://docs.bosonnetwork.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bosonnetwork.io/build-applications/build-apps.md).

# Overview

This section is for developers building applications on Boson: choosing how the application reaches the network, setting up the SDK, working with the DHT, and using the services a super node offers.

***

## What every application needs

1. **An identity.** An Ed25519 key pair: a user key, and for each device the application runs on, a device key. See [Identity and Keys](/build-applications/java-sdk/identity-keys.md).
2. **A way to reach the network.** A DHT node of its own, a light node through a super node, or plain HTTPS.
3. **For services, an account on a super node.** Messaging, storage, NAT traversal and the Web Gateway serve users registered on their super node.

***

## Choosing how to reach the network

| Option                       | DHT                                            | Environment                                                        | Create with                     |
| ---------------------------- | ---------------------------------------------- | ------------------------------------------------------------------ | ------------------------------- |
| **Full node**                | Joins the DHT over UDP                         | Desktop and server applications, anything that can use UDP         | `Node.kadNode(config)`          |
| **Light node** (`HiggsNode`) | Through a super node's Web Gateway, over HTTPS | JVM applications that should not run a DHT node, or cannot use UDP | `HiggsNode.builder()...build()` |
| **HTTP / REST**              | Through a Web Gateway, over HTTPS              | Any language, including browsers                                   | Plain HTTPS requests            |

* [Full Node](/build-applications/java-sdk/full-node.md)
* [Light Node](/build-applications/java-sdk/light-node.md)
* [HTTP / REST Integration](/build-applications/http-rest.md)

Both Java options implement the same `Node` interface, so the rest of the application does not depend on the choice.

***

## Java SDK

The SDK is on Maven Central as `io.bosonnetwork`:

| Artifact                    | Provides                                                       |
| --------------------------- | -------------------------------------------------------------- |
| `boson-api`                 | `Node`, `Id`, `Value`, `PeerInfo`, identities and cryptography |
| `boson-dht`                 | The full DHT node                                              |
| `boson-higgs`               | `HiggsNode`                                                    |
| `boson-director-client`     | `DirectorClient`, for accounts and devices                     |
| `boson-messaging-client`    | `MessagingClient`                                              |
| `boson-ion-store-client`    | `IonStore`                                                     |
| `boson-active-proxy-client` | `ActiveProxyClient`                                            |

See [Java SDK Setup](/build-applications/java-sdk.md).

***

## Service clients

| Service          | Client              | Transport | For                                                                |
| ---------------- | ------------------- | --------- | ------------------------------------------------------------------ |
| Director         | `DirectorClient`    | HTTPS     | Creating an account, registering devices, profile, plan            |
| Photon Messaging | `MessagingClient`   | MQTTS     | End-to-end encrypted messaging, channels, several devices per user |
| Ion Store        | `IonStore`          | HTTPS     | Storing and sharing files and binary objects                       |
| Active Proxy     | `ActiveProxyClient` | TCP       | Making a service behind NAT reachable                              |

See [Service Clients](/build-applications/services.md).

***

## Where to go next

* [Java SDK Setup](/build-applications/java-sdk.md)
* [Values and Peers](/build-applications/java-sdk/values-and-peers.md)
* [Identity and Keys](/build-applications/java-sdk/identity-keys.md)
* [Service Clients](/build-applications/services.md)
* [Best Practices](/build-applications/best-practices.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bosonnetwork.io/build-applications/build-apps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
