From 3d0a69b0a137efc4864f07fb77b8669aa017e17b Mon Sep 17 00:00:00 2001
From: Ake <10195782+akegaviar@users.noreply.github.com>
Date: Wed, 3 Jun 2026 11:09:41 +0800
Subject: [PATCH 1/3] Document TRON gRPC service scope
The gRPC section listed the endpoint, auth, and proto setup but not
which gRPC services the endpoint actually serves. Verified against a
live TRON mainnet node:
- protocol.Wallet and protocol.Database respond
- protocol.WalletSolidity and protocol.WalletExtension return
UNIMPLEMENTED (Method not found) on every method
Add an 'Available services' table stating the endpoint maps to the
full node API, note the difference from setups that expose a separate
solidity gRPC port, and point readers to the HTTP /walletsolidity API
for solidified data.
---
docs/tron-tooling.mdx | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/docs/tron-tooling.mdx b/docs/tron-tooling.mdx
index d0e72d94..d990beb8 100644
--- a/docs/tron-tooling.mdx
+++ b/docs/tron-tooling.mdx
@@ -11,7 +11,7 @@ description: "TRON blockchain development tools guide. Use TronWeb.js, gRPC, web
* `/jsonrpc` — Ethereum-compatible JSON-RPC (read-only operations)
* `/wallet` — TRON HTTP API (full node operations including transactions)
* `/walletsolidity` — TRON HTTP API (confirmed data from solidity node)
- * **gRPC** — high-performance binary protocol for efficient data access
+ * **gRPC** — high-performance binary protocol for efficient data access (full node API; see [available services](#available-services))
Note that the TRON nodes provided are full only (non-archive), which makes some of the methods unsupported.
@@ -57,6 +57,19 @@ gRPC endpoints use x-token authentication. Pass your token in the request metada
Find your gRPC endpoint and x-token in the Chainstack console under your TRON node's **Access and credentials** section.
+### Available services
+
+The TRON proto files define several gRPC services, but a Chainstack TRON node serves the **full node** services only:
+
+| Service | Status on Chainstack |
+| --- | --- |
+| `protocol.Wallet` | Available — the full node API: accounts, blocks, contracts, and transaction operations |
+| `protocol.Database` | Available — block metadata helpers |
+| `protocol.WalletSolidity` | Not available — calls return `UNIMPLEMENTED: Method not found` |
+| `protocol.WalletExtension` | Not available — calls return `UNIMPLEMENTED: Method not found` |
+
+This differs from setups that expose a separate solidity gRPC port (for example, port `50061` on a self-hosted java-tron node). On Chainstack, the gRPC endpoint maps to the full node API — in your generated client, use the `Wallet` stub. For solidified (confirmed) data, use the HTTP `/walletsolidity` API on the same node endpoint — see [TRON methods](/docs/tron-methods) for availability.
+
### Proto files
TRON gRPC does not support server reflection, so you need the protocol buffer definitions to make calls. Get them from the official TRON protocol repository:
From f5fc12af9325b55608fd895e2f1799c152934a5a Mon Sep 17 00:00:00 2001
From: Ake <10195782+akegaviar@users.noreply.github.com>
Date: Wed, 3 Jun 2026 12:02:45 +0800
Subject: [PATCH 2/3] Add reflection caveat and Monitor row to TRON gRPC
service scope
Verified live: the endpoint serves gRPC server reflection (v1 and
v1alpha), and the reflection list advertises every service from the
TRON protos including ones that are not routed (WalletSolidity,
WalletExtension, Monitor). Fix the stale 'no server reflection' claim
and warn against inferring availability from reflection.
---
docs/tron-tooling.mdx | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/docs/tron-tooling.mdx b/docs/tron-tooling.mdx
index d990beb8..a7fa5282 100644
--- a/docs/tron-tooling.mdx
+++ b/docs/tron-tooling.mdx
@@ -67,12 +67,19 @@ The TRON proto files define several gRPC services, but a Chainstack TRON node se
| `protocol.Database` | Available — block metadata helpers |
| `protocol.WalletSolidity` | Not available — calls return `UNIMPLEMENTED: Method not found` |
| `protocol.WalletExtension` | Not available — calls return `UNIMPLEMENTED: Method not found` |
+| `protocol.Monitor` | Not available — calls return `UNIMPLEMENTED: Method not found` |
This differs from setups that expose a separate solidity gRPC port (for example, port `50061` on a self-hosted java-tron node). On Chainstack, the gRPC endpoint maps to the full node API — in your generated client, use the `Wallet` stub. For solidified (confirmed) data, use the HTTP `/walletsolidity` API on the same node endpoint — see [TRON methods](/docs/tron-methods) for availability.
+
+ ### Reflection advertises more than is served
+
+ The endpoint supports gRPC server reflection, and the reflection list includes every service from the TRON protos — including `protocol.WalletSolidity`, `protocol.WalletExtension`, and `protocol.Monitor`, which are not routed. Don't infer availability from reflection or from the proto definitions; the table above reflects actual behavior.
+
+
### Proto files
-TRON gRPC does not support server reflection, so you need the protocol buffer definitions to make calls. Get them from the official TRON protocol repository:
+The endpoint supports server reflection for discovery, but to generate typed clients you need the protocol buffer definitions. Get them from the official TRON protocol repository:
```shell
git clone https://github.com/tronprotocol/protocol.git
From 3023238ee60d26fab2be053ef42d94e065d8cb2e Mon Sep 17 00:00:00 2001
From: Ake <10195782+akegaviar@users.noreply.github.com>
Date: Wed, 3 Jun 2026 12:20:22 +0800
Subject: [PATCH 3/3] Address review: soften availability wording
- 'currently serves' + 'Not available yet' instead of 'full node
services only' and per-row error strings
- Keep the UNIMPLEMENTED error string once in prose for searchability
---
docs/tron-tooling.mdx | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/tron-tooling.mdx b/docs/tron-tooling.mdx
index a7fa5282..4764224a 100644
--- a/docs/tron-tooling.mdx
+++ b/docs/tron-tooling.mdx
@@ -11,7 +11,7 @@ description: "TRON blockchain development tools guide. Use TronWeb.js, gRPC, web
* `/jsonrpc` — Ethereum-compatible JSON-RPC (read-only operations)
* `/wallet` — TRON HTTP API (full node operations including transactions)
* `/walletsolidity` — TRON HTTP API (confirmed data from solidity node)
- * **gRPC** — high-performance binary protocol for efficient data access (full node API; see [available services](#available-services))
+ * **gRPC** — high-performance binary protocol for efficient data access (see [available services](#available-services))
Note that the TRON nodes provided are full only (non-archive), which makes some of the methods unsupported.
@@ -59,22 +59,22 @@ gRPC endpoints use x-token authentication. Pass your token in the request metada
### Available services
-The TRON proto files define several gRPC services, but a Chainstack TRON node serves the **full node** services only:
+The TRON proto files define several gRPC services. Here's what a Chainstack TRON node currently serves:
| Service | Status on Chainstack |
| --- | --- |
| `protocol.Wallet` | Available — the full node API: accounts, blocks, contracts, and transaction operations |
| `protocol.Database` | Available — block metadata helpers |
-| `protocol.WalletSolidity` | Not available — calls return `UNIMPLEMENTED: Method not found` |
-| `protocol.WalletExtension` | Not available — calls return `UNIMPLEMENTED: Method not found` |
-| `protocol.Monitor` | Not available — calls return `UNIMPLEMENTED: Method not found` |
+| `protocol.WalletSolidity` | Not available yet |
+| `protocol.WalletExtension` | Not available yet |
+| `protocol.Monitor` | Not available yet |
-This differs from setups that expose a separate solidity gRPC port (for example, port `50061` on a self-hosted java-tron node). On Chainstack, the gRPC endpoint maps to the full node API — in your generated client, use the `Wallet` stub. For solidified (confirmed) data, use the HTTP `/walletsolidity` API on the same node endpoint — see [TRON methods](/docs/tron-methods) for availability.
+Calling a service that isn't currently served returns the gRPC `UNIMPLEMENTED` status (`Method not found`). Note that this is different from setups that expose a separate solidity gRPC port (for example, port `50061` on a self-hosted java-tron node) — on Chainstack, use the `Wallet` stub in your generated client. For solidified (confirmed) data, use the HTTP `/walletsolidity` API on the same node endpoint — see [TRON methods](/docs/tron-methods) for availability.
### Reflection advertises more than is served
- The endpoint supports gRPC server reflection, and the reflection list includes every service from the TRON protos — including `protocol.WalletSolidity`, `protocol.WalletExtension`, and `protocol.Monitor`, which are not routed. Don't infer availability from reflection or from the proto definitions; the table above reflects actual behavior.
+ The endpoint supports gRPC server reflection, and the reflection list includes every service from the TRON protos, including services that are not yet served. Don't infer availability from reflection or from the proto definitions; the table above reflects actual behavior.
### Proto files