# TRON Node Connection Guide

CatFee provides high-performance TRON node infrastructure for developers, wallets, exchanges, DApps, and on-chain service providers.

With CatFee TRON nodes, you can connect to the TRON network through **secure gRPC over TLS**, using standard TRON protocol interfaces with low latency, high availability, and simple API-key authentication.

***

### Overview

CatFee TRON nodes are designed for production-grade access to the TRON network.

Our service supports:

```
Secure gRPC over HTTP/2
TLS-encrypted connections
Standard TRON wallet and walletSolidity services
API-key authentication
Low-latency access across Asia and global regions
High availability with backend load balancing
```

All CatFee TRON nodes are accessed through the `*.catblockchain.com` domain system and use port `443` by default.

***

### Node Endpoint

After purchasing a TRON node package, you can find your node endpoint and API key in the CatFee dashboard:

```
TRON Node → Package
```

A typical node endpoint looks like this:

```
tron-demo-yourNodeId.catblockchain.com
```

Connection information:

| Item                  | Value                                    |
| --------------------- | ---------------------------------------- |
| Host                  | `tron-demo-yourNodeId.catblockchain.com` |
| Port                  | `443`                                    |
| Protocol              | `gRPC over TLS`                          |
| Transport             | `HTTP/2`                                 |
| Authentication Header | `X-CATFEE-TOKEN: YOUR_API_KEY`           |
| Supported Services    | `wallet`, `walletSolidity`               |

***

### Authentication

Every request to a CatFee TRON node must include your CatFee node API key.

Use the following request header:

```
X-CATFEE-TOKEN: YOUR_API_KEY
```

Replace `YOUR_API_KEY` with the key assigned to your node package.

***

### Supported TRON Services

CatFee supports standard TRON gRPC services.

| Service          | Description                                                                                           |
| ---------------- | ----------------------------------------------------------------------------------------------------- |
| `wallet`         | Used for real-time data, transaction creation, broadcasting, and querying unconfirmed or latest state |
| `walletSolidity` | Used for confirmed block data and finalized on-chain records                                          |

In general:

```
Use wallet for creating, broadcasting, and querying real-time transactions.
Use walletSolidity for confirmed block data and historical records.
```

Both services are available through the same node host and port.

***

### Security and TLS Requirements

CatFee nodes only accept encrypted connections.

Your client must use:

```
gRPC over HTTP/2
TLS v1.2 or TLS v1.3
Port 443
```

Plain-text gRPC connections are not supported.

Do not use insecure gRPC options such as:

```
createInsecure()
secure=False
plaintext=True
```

CatFee nodes use valid CA-issued certificates, so most clients can rely on the system default trust store. No self-signed certificate is required.

***

### Client Configuration Recommendations

For best stability, we recommend the following client settings:

| Setting        | Recommendation                            |
| -------------- | ----------------------------------------- |
| TLS            | Enabled                                   |
| HTTP/2         | Enabled                                   |
| Timeout        | 5–10 seconds                              |
| Authentication | Pass `X-CATFEE-TOKEN` in request metadata |
| Retry Strategy | Use controlled retries with backoff       |
| Concurrency    | Keep within your package quota            |

If your request rate exceeds your plan limit, the node may return:

```
HTTP 429
```

This means the request rate is too high. Reduce concurrency or upgrade your package.

***

## cURL Example

CatFee TRON nodes use **gRPC over HTTP/2 + TLS**, not a REST JSON API.

This means `curl` can be used to test connectivity, but the response body will be **protobuf binary data**, not readable JSON.

The following example calls:

```
protocol.Wallet/GetNowBlock
```

This method uses an empty request body.

***

### Test `GetNowBlock` with cURL

Replace the following placeholders:

```
YOUR_NODE_HOST = your CatFee TRON node domain
YOUR_API_KEY   = your CatFee node API key
```

Run:

```bash
printf '\x00\x00\x00\x00\x00' | curl --http2 -v \
  -X POST "https://YOUR_NODE_HOST/protocol.Wallet/GetNowBlock" \
  -H "Content-Type: application/grpc" \
  -H "TE: trailers" \
  -H "X-CATFEE-TOKEN: YOUR_API_KEY" \
  --data-binary @- \
  --output getnowblock.bin
```

Example using the CatFee node domain format:

```bash
printf '\x00\x00\x00\x00\x00' | curl --http2 -v \
  -X POST "https://tron-demo-yourNodeId.catblockchain.com/protocol.Wallet/GetNowBlock" \
  -H "Content-Type: application/grpc" \
  -H "TE: trailers" \
  -H "X-CATFEE-TOKEN: YOUR_API_KEY" \
  --data-binary @- \
  --output getnowblock.bin
```

If the request is successful, you should see a response similar to:

```
< HTTP/2 200
< content-type: application/grpc
< grpc-status: 0
```

The response will be saved to:

```bash
getnowblock.bin
```

Because this is a protobuf binary response, it cannot be read directly as JSON with `cat`.

***

### Why the Request Body Is `\x00\x00\x00\x00\x00`

gRPC messages include a 5-byte frame header:

```
1 byte  : compression flag
4 bytes : message length
```

For an empty request body, the gRPC frame is:

```
00 00 00 00 00
```

That is why the example uses:

```bash
printf '\x00\x00\x00\x00\x00'
```

This works for gRPC methods such as `GetNowBlock`, which do not require request parameters.

***

## Recommended Tool: grpcurl

For development and debugging, CatFee recommends using `grpcurl` when you want readable output.

Example:

```bash
grpcurl \
  -H "X-CATFEE-TOKEN: YOUR_API_KEY" \
  -d '{}' \
  YOUR_NODE_HOST:443 \
  protocol.Wallet/GetNowBlock
```

If server reflection is not enabled, provide the official TRON `.proto` files locally:

```bash
grpcurl \
  -proto api/api.proto \
  -proto core/Tron.proto \
  -H "X-CATFEE-TOKEN: YOUR_API_KEY" \
  -d '{}' \
  YOUR_NODE_HOST:443 \
  protocol.Wallet/GetNowBlock
```

***

## Common TRON gRPC Interfaces

CatFee TRON nodes support standard TRON gRPC interfaces, including but not limited to:

```
GetAccount
GetTransactionById
CreateTransaction
BroadcastTransaction
TriggerSmartContract
GetNowBlock
GetBlockByNum
```

You can use CatFee nodes with existing TRON-compatible SDKs, services, and backend systems.

***

## Performance and Limits

| Item                   | Description                            |
| ---------------------- | -------------------------------------- |
| Protocol               | gRPC over TLS / HTTP/2                 |
| Port                   | `443`                                  |
| Authentication         | `X-CATFEE-TOKEN`                       |
| Standard Package Limit | Default `20 req/s`                     |
| Latency                | Average latency under `100 ms` in Asia |
| Availability           | Load-balanced backend infrastructure   |
| Confirmed Data         | Available through `walletSolidity`     |

For higher concurrency, enterprise access, private deployment, or custom security requirements, contact the CatFee team.

***

## FAQ

### Does CatFee support plain-text gRPC?

No.

For security reasons, CatFee only supports encrypted gRPC connections over TLS. Plain-text gRPC connections will be rejected.

***

### Do I need a custom certificate?

No.

CatFee nodes use standard CA-issued certificates. In most cases, your client can use the system default certificate trust store.

***

### What is the difference between `wallet` and `walletSolidity`?

`wallet` provides access to real-time TRON node data. It is commonly used for creating transactions, broadcasting transactions, and querying latest or unconfirmed state.

`walletSolidity` provides confirmed on-chain data. It is commonly used for stable block data, historical transaction records, and finalized state queries.

***

### What does HTTP 429 mean?

HTTP `429` means your request rate has exceeded your current package quota.

You can resolve this by:

```
Reducing request concurrency
Adding retry and backoff logic
Upgrading your CatFee node package
```

***

### Does CatFee support mutual TLS or IP whitelist access?

By default, CatFee uses one-way TLS.

For enterprise customers, CatFee can provide custom security configurations, including mutual TLS, IP whitelist access, and dedicated infrastructure.

***

### Does CatFee support high availability?

Yes.

CatFee node domains under `*.catblockchain.com` are backed by multiple backend instances with automatic load balancing and redundancy.

***

## Technical Support

For integration support, enterprise packages, higher request limits, or custom security requirements, contact CatFee:

```
Telegram Support: @CatFee_James
Official Website: https://catfee.io
TRON Node Page: https://catfee.io/blockchain/tron-node
```

***

## Summary

CatFee TRON nodes provide secure, stable, and production-ready access to the TRON network.

With CatFee, developers get:

```
Secure TLS-encrypted gRPC access
Standard TRON protocol compatibility
Simple API-key authentication
Low-latency node connectivity
Load-balanced high availability
Enterprise-ready scalability
```

Start building on TRON with CatFee’s reliable node infrastructure.


---

# 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.catfee.io/en/getting-started/tron-node-guide.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.
