Appearance
gRPC
Native gRPC access, TLS end-to-end on the standard gateway host — two entry ports:
rpc.nodes.koshelek.ru:8443 # full gRPC — all streaming shapes
rpc.nodes.koshelek.ru:443 # unary + server-streaming (shared with HTTPS)Unlike JSON-RPC there is no per-chain path — in gRPC the request path is the protocol (/protocol.Wallet/GetNowBlock), so both entries route by proto package prefix straight to the right chain's gRPC port. gRPC is served for TRON:
| Chain | Proto packages routed | Descriptors |
|---|---|---|
| TRON | protocol.* | bring the java-tron protos |
Which port to use
| Call type | :8443 | :443 |
|---|---|---|
| Unary (single request → single response) | ✓ | ✓ |
| Server-streaming (single request → response stream) | ✓ | ✓ |
| Client-streaming / bidirectional | ✓ | ✗ — times out |
:8443 is a dedicated gRPC proxy that streams every call shape end-to-end. :443 is the shared API gateway; it buffers the request stream, so only calls that half-close immediately (unary, server-streaming — every TRON Wallet method) complete there. Deployments may run without the :8443 entry — if it doesn't answer, everything still works on :443.
The gateway does not expose server reflection on either port: grpcurl list, grpcui and evans need the descriptors passed explicitly (-proto / -protoset or compiled SDK stubs).
Authentication
The same API key as HTTPS on both ports, sent as gRPC metadata with the key name apikey (no -plaintext — both endpoints are TLS). Unauthenticated calls are rejected at the gateway; rate limits count unary calls and stream opens.
TRON
java-tron's wallet gRPC (protocol.* package). Supply the java-tron protos (or a protoset compiled from them) on either port:
bash
# with the protos checked out (github.com/tronprotocol/protocol):
grpcurl -H "apikey: $YOUR_API_KEY" \
-import-path ./protocol -proto api/api.proto \
rpc.nodes.koshelek.ru:443 protocol.Wallet/GetNowBlock(Note: bytes fields — addresses, hashes — are base64 in grpcurl's JSON, not base58/hex. For address-parameterized calls the HTTP API's hex-string form is usually less fiddly.)
SDKs with compiled stubs (grpc-go, @grpc/grpc-js, grpcio) work on either port — point them at rpc.nodes.koshelek.ru:443 with TLS credentials and the apikey metadata on every call.
The REST-style HTTP API (POST /tron/wallet/<method>) remains available for everything that doesn't need gRPC semantics.
Everything else
Only the chains in the table above expose gRPC — for other chains the package prefix simply doesn't route, and their protocols are HTTP-native anyway (Endpoints). Streaming/subscription workloads on non-gRPC chains are covered by WebSockets.