# Client

## Client Access in Subnets

Some subnets are designed not just for peer-to-peer coordination between nodes, but also for **serving external clients** — such as user-facing applications like chatbots, dashboards, or streaming interfaces.

In these cases, the subnet must support a way for **clients to connect and make RPC calls** without becoming full DHT participants.

#### What is a Client?

A **client** is a lightweight node that:

* Connects to the subnet’s DHT
* **Is not stored** in other nodes’ routing tables
* Can **call RPC methods** on full nodes (e.g., to request inference or submit inputs)
* Does **not host protocols or participate in consensus, scoring, or validation**

This makes clients ideal for frontend apps, API services, or read-only integrations.

***

#### Security Considerations

For secure access:

* Only nodes with a **valid proof-of-stake** should be allowed to call RPC methods on the subnet.
* If the subnet provides a public interface (like a web-based chatbot), **at least one full node should host the frontend**.
* Optionally, subnets can define a **custom "client role"** or staking requirement to enable external developers to build frontends in return for rewards or incentives.

{% hint style="info" %}
This is why Hypertensor subnet nodes require 3 peer IDs: the main peer ID, the bootstrap peer ID, and the client peer ID. This way, those who connect can be verified to have a proof-of-stake.
{% endhint %}

#### The Subnet Template comes with built-in client logic:

* [Session Manager](/subnet-template/client/sessions.md)
* [Routing](/subnet-template/client/routing.md)


---

# Agent Instructions: 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:

```
GET https://docs.hypertensor.org/subnet-template/client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
