# Examples of links and parameters

### 1. General Information

The HAPP application supports modern protocols designed for security and censorship circumvention: VLESS, VMess, Shadowsocks, Socks5, Trojan, and Hysteria2 (including the `hy2` scheme).

***

### 2. Ways to Add Configurations

* Manual Entry: Accessed via the "+" button on the main screen. This allows for granular configuration of every protocol parameter.
* URL/QR Import: Automatic recognition of schemes (`vless://`, `vmess://`, etc.) from the clipboard or via the camera.
* Subscriptions:
  * *Standard:* URLs pointing to text-based lists of configurations.
  * *JSON Arrays:* Advanced data sets including pre-configured keys, routing rules, and Reality parameters.

***

### 3. Specifics of Working with JSON Configurations

When a server configuration is imported into the HAPP app in JSON format, the app handles it uniquely when interacting with the XRAY core.

#### 3.1. Direct Passthrough Principle (1:1)

When the XRAY core is launched, this JSON configuration is passed exactly as is.

> Important: In this mode, standard HAPP routing rules and interface settings are not applied to the JSON file. The configuration operates strictly according to its source code.

#### 3.2. Indirect Management via HAPP

Despite the direct passthrough, the application maintains control over the core's environment through routing profiles:

* GEO File Management: You can control which Geo-data files are passed to the core for execution.
* Optimization (Trimmed GEO Files): By enabling this feature, the core receives only necessary fragments of the databases (with selected tags), saving system resources.
* DNS Tunneling: Remote DNS settings are inherited from the app's active routing profile and can be adjusted by the user to adapt the system behavior.

***

### 4. Advanced Parameters (URI Scheme)

#### 4.1. Hysteria 2 (`hy2://`)

| **Parameter** | **Description**                                         |
| ------------- | ------------------------------------------------------- |
| `auth`        | Authentication data (`username:password` for userpass). |
| `port`        | Multi-port support: e.g., `1234,5000-6000,7044`.        |
| `obfs`        | Obfuscation type (e.g., `salamander`).                  |
| `mportHopInt` | Interval (seconds) between port hopping.                |

#### 4.2. Fragmentation and Noises

Tools designed to bypass Deep Packet Inspection (DPI). Local server settings take priority only if the app's global settings are disabled.

* Fragmentation: `fragment=length,interval,packets[,maxSplit]`
  * *Example:* `fragment=1-10,5-20,tlshello`
* Noises (requires fragmentation): `noises=type,packet,delay[,applyTo]`
  * *Example:* `noises=rand,50-150,10-50,ip`

***

### 5. Visualization and Metadata

To organize your server list, use tags at the end of the URL after the `#` symbol:

1. Title (`title`): `#MyServer` (up to 30 characters).
2. Description (`serverDescription`): Replaces the technical subtitle (e.g., "VMess") with custom text.
   * *Format:* `#Title?serverDescription=<base64_text>`
   * *In JSON:* Use the field `"meta": {"serverDescription": "Your text"}`.

***

### 6. Socks5 Proxy Examples

The app parses three different recording formats:

* Plain text: `socks://user:pass@1.2.3.4:443`
* Partial Base64: `socks://<base64_user_pass>@1.2.3.4:443#Name`
* Full Base64: `socks://<full_string_base64>`


---

# 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://www.happ.su/main/dev-docs/examples-of-links-and-parameters.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.
